Code Monkey home page Code Monkey logo

docs.rs's Issues

Update rust nightly

It appears my package can't be compiled because of the outdated version of rust nightly. I checked the logs here and someone in IRC suggested this was due to nightly being old.

Sort crate version numerically

It would be nice if the versions of a single crate could be sorted numerically instead of via string comparison, i.e. that we don't get '1.1 < 1.10 < 1.2' but rather '1.1 < 1.2 < 1.10'.

E.g. the current version of arrayvec isn't immediately obvious from the directory listing:

0.1.0/                                             13-Feb-2016 15:27                   -
0.1.1/                                             13-Feb-2016 15:27                   -
0.1.2/                                             13-Feb-2016 15:27                   -
0.2.0/                                             13-Feb-2016 15:27                   -
0.3.0/                                             13-Feb-2016 15:27                   -
0.3.1/                                             13-Feb-2016 15:26                   -
0.3.10/                                            13-Feb-2016 15:25                   -
0.3.11/                                            13-Feb-2016 15:25                   -
0.3.12/                                            13-Feb-2016 15:24                   -
0.3.13/                                            01-Feb-2016 05:55                   -
0.3.14/                                            06-Feb-2016 00:34                   -
0.3.15/                                            06-Feb-2016 19:37                   -
0.3.16/                                            29-Feb-2016 23:32                   -
0.3.2/                                             13-Feb-2016 15:26                   -
0.3.3/                                             13-Feb-2016 15:26                   -
0.3.4/                                             13-Feb-2016 15:26                   -
0.3.6/                                             13-Feb-2016 15:26                   -
0.3.7/                                             13-Feb-2016 15:25                   -
0.3.8/                                             13-Feb-2016 15:25                   -
0.3.9/                                             13-Feb-2016 15:25                   -

What should happen if crate name conflicting with internal link like https://docs.rs/releases and https://docs.rs/about

For example, if someone publish a crate named releases or about (which currently doesn't exist), their docs should be served in https://docs.rs/releases and https://docs.rs/about respectively right? But currently those page was used as a listing and about page.

Possible solutions: move those internal page under something that isn't a valid crate name.

EDIT: https://docs.rs/about/0.1.1 already exist.

Link to crates.io for each crate

On the crate page there seem to be no link to the same crate on crates.io. I think there should be one. Maybe add it to the Crate/Links section?

Cross-crate source links don't resolve.

Thanks for making a great service.

Here's a tricky one:

itertools 0.5.0 reexports either::Either from the either crate. The either crate has correctly and neatly set up its doc(html_root_url) to point to its docs.rs page.

itertools::Either on docs.rs: https://docs.rs/itertools/0.5.0/itertools/enum.Either.html

The [src] link from that page is cross crate: https://docs.rs/either/1/either/enum.Either.html?gotosrc=10

And it does not resolve correctly, it ends up with redirecting to https://docs.rs/either/1/either/undefined

Platform switch should attempt to preserve current module

Being in some module and then attempting to switch to a different platform (try unknown-linux-gnu) throws you back to the root of documentation.

It would be nice if an attempt was made to not forget the module user is in when switching the platform.

A naive implementation strategy could be something along the lines of: Given an URI like https://docs.rs/{crate}/{version}/{platform}/{...path} try to load https://docs.rs/{crate}/{version}/{new-platform}/{...path} and if that fails, load the crate root documentation.

Purge badges cached by GitHub's proxy

Docs.rs' badge handler started sending CacheControl header since c97a95a. Some projects started using docs.rs badges before this commit and GitHub's image proxy service camo cached this badges for an unknown time period. This badges needs to be purged from camo, and then docs.rs badges can start working properly in GitHub.

If you started using docs.rs badges before 3rd September or your badge keeps showing an old version, you can simply PURGE badge from GitHub's proxy server with:

curl -X PURGE {camo-url-of-badge}

Add gitlab statistics similar to github

If crate's git repo is hosted on github docs.rs shows projects stats fetched from github.com. This ticket is for having similar arrangement for gitlab.com as well

Crate failed to build

Docs.rs may have failed to build some crates for various reasons (missing dependency on build machine or bad configuration etc).

You can report them into this issue.

Dual path/crates.io dependencies cause failures.

Some crates, in particular winapi, will have dependencies in the form of foo = { version = "0.2", path = "some/where" }. Building such crates from a git checkout is fine since all the path dependencies are in the repo and can be found. Building such crates from crates.io is also fine, since even though the other crates aren't in the archive, cargo will only use the versions from crates.io to build it and not the path dependencies. This pattern is useful as it allows rapid iteration of interdependent crates, while still allowing it to be uploaded to crates.io.

When built on crates.fyi, it is working with the archive downloaded from crates.io, and then attempts to build it with path dependencies, resulting in build failures as it looks for the other crates in locations that don't exist.

Some examples:
winapi and its failure.

Could not find `Cargo.toml` in `/home/updater/winapi-0.2.7/lib/runtimeobject`

kernel32 and its failure

INFO - LocalDependencyIoError(Error { repr: Os { code: 13, message: "Permission denied" } })

Show owners, not only authors

On the "Crate" tab, I love the link to the author in the sidebar, and I love that the author link goes to a page listing all the other things that person has authored.

What I'd really like is the same thing for "owners" in crates.io, basically this crates.io issue.

For example, I'd love to be able to see all the crates that the pistondevelopers github organization is listed as an owner on. This would let me discover crates that are officially supported to work well together, as well as find other crates by authors who I trust.

Invalid version requirement

Some crates (google-*) failed to build with an error:

2016/09/11 15:38:19 [ERROR] cratesfyi::docbuilder::queue: Failed to build package google-licensing1-cli-0.3.6+20150901 from queue: the given version requirement is invalid

google-* crates are using a versioning scheme like: 0.3.6+20160617. cratesfyi's build_doc cannot handle this version string.

Idea: Show small badge to jump to newest version

Imagine you're browsing the slightly outdated docs of some project: https://docs.rs/regex/0.1.75/regex/

There could be a small badge that's visible in that case (maybe yellow or orange) that lets you jump to the current version (“Version 0.1.77 is the most recent release”).

It's important for this feature that the badge is not shown if you're already at the newest release.

Versioned links are going to be very useful, but this could be a small help if you have users arrive to stale docs via old links without them being aware of it.

Update rustc version.

Currently cratesfyi is using a much older version of rustc, and so some projects which rely on those features aren't working.
Example

github (repository) links are hard to find

It would be really useful if there was a link to the (github) repository from a crate's page on docs.rs! Maybe they are there somewhere, but I can't find them.
Those would improve usability quite a bit and stump me as a user a lot less in my flow, if I didn't have to leave the docs.rs page in order to check out a crate's GH page!
(It's very nice though for some use cases I imagine that there is a "source" tab already integrated in docs.rs! Keep up the good work!)

Markdown Reference Links are Broken

The Markdown reference style link syntax seems to not be recognised by whatever you use for crate information page (where the README is displayed).

A Markdown reference style link looks like this:

[I'm a reference-style link][link]

[link]: example.org

This issue breaks README's like mine.

Idea: quick dropdown menu to switch between versions

It wasn't immediately obvious on how to switch between versions of docs until switching it via the "Crates" tab.

Hence, I think it might be more convenient to switch between versions via a dropdown menu. This dropdown menu may be placed next to the "Platform" dropdown menu.

Linkify bare URLs

I've noticed that my README contains the following markdown:

* http://mearie.org/projects/esotope/bfc/
* http://calmerthanyouare.org/2015/01/07/optimizing-brainfuck.html
* [http://xn--2-umb.com/10/brainfuck-using-llvm](http://xn--2-umb.com/10/brainfuck-using-llvm)

On GitHub, this gives me three links, but on docs.rs, only the third bullet is rendered as an anchor tag.

Link to the readme: https://docs.rs/crate/bfc

Can you update the rust nightly every night?

We have a project that follows along rust nightly in a very rolling fashion and sometimes we depend on rust nightly being a certain minimum version. As such, it would be nice if docs.rs could also always have the respective newest rust nightly.

Set a specific feature during doc generation

Use case: if your library depends on some native library or otherwise does something funky during build, it won't be exposed on docs.rs.

The build could check for the presence of a docs feature in the Cargo.toml file, for example like this:

cargo read-manifest | rq 'select"$.features"|map(o)=>{_.keys(o)}|spread|some(x)=>{"docs"==x}'

(Shameless plug: rq)

Setting this docs feature would allow the library to "defuse" itself, by not running a build script or not trying to link a native library.

crates.fyi links don't work anymore

It would be nice if we could still replace the crates.io with crates.fyi to find the correct docs.rs page. E.g.
https://crates.fyi/crates/serde/ -> https://docs.rs/serde/.

README detection

Currently, docs.rs is looking for readme field in Cargo.toml to find out if a crate contains any readme. But looks like many crates have README's in their root directory but doesn't have any readme field in Cargo.toml.

docs.rs should automatically detect readmes instead of trusting crate owner.

Set default target for certain crates, also features

For certain crates I'd like it if I could set the default target, so that when someone looks up a certain crate, they'd get the documentation I want them to get by default. Particularly useful for crates that only define things for certain targets, such as winapi.

Also useful would be a way to tell docs.rs which features to enable when building a crate. winapi 0.3 will have almost everything disabled by default, and then opting in with features, but that would end up with docs.rs generating useless documentation.

Support Generating Docs for the Latest Git Revision

Would you be able to support generating documentation for the latest Git revision of crate?

This would be nice for many crates that are a work-in-progress, and as such don't have many of the latest features pushed up into a release on crates.io.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.