Coder Social home page Coder Social logo

rust-lang / crates.io Goto Github PK

View Code? Open in Web Editor NEW
2.8K 60.0 576.0 48.44 MB

The Rust package registry

Home Page: https://crates.io

License: Apache License 2.0

JavaScript 24.88% HTML 0.17% CSS 3.57% Shell 0.20% Rust 65.04% PLpgSQL 1.02% Dockerfile 0.05% Handlebars 4.77% Jinja 0.07% Procfile 0.01% Just 0.06% Python 0.15%
rust

crates.io's Introduction

crates.io logo

๐Ÿฆ€ Overview

Welcome to the GitHub repository for crates.io, the official package registry for the Rust programming language.

crates.io serves as a central registry for sharing "crates", which are packages or libraries written in Rust that you can use to enhance your projects. This repository contains the source code and infrastructure for the crates.io website, including both frontend and backend components.

This service is maintained for you by the crates.io team, with support from the Rust Foundation. File hosting is donated by Amazon Web Services, with CDN services donated by Fastly.

๐Ÿ› ๏ธ Contributing

We welcome contributions from the community! Whether you're fixing a bug, implementing a new feature, or improving documentation, your contributions help make crates.io better for everyone.

crates.io is built with Rust for the backend services. More specifically, the axum web framework and diesel for database access, with a custom-built background worker system. The frontend is an Ember.js application written in JavaScript.

Please review our contribution guidelines before submitting your pull request. The same document also contains instructions on how to set up a local development environment.

๐Ÿชฒ Issue Tracker

If you encounter any bugs or have technical issues with crates.io, please feel free to open an issue in our issue tracker. Our team will review and address these as fast as we can.

For feature suggestions, enhancements, or general discussions about crates.io, we encourage you to utilize GitHub Discussions instead. Visit the Discussions tab to engage with the community, share your ideas, and participate in ongoing conversations. Your input is valuable in shaping the future of crates.io, and we look forward to hearing your thoughts!

โ˜Ž๏ธ Contact

For any questions or inquiries about crates.io, feel free to reach out to us via:

We're here to help and eager to hear from you!

๐Ÿค— Code of Conduct

Respect and inclusivity are core values of the Rust community. Our Code of Conduct outlines the standards of behavior expected from all participants. By adhering to these guidelines, we aim to create a welcoming space where individuals from diverse backgrounds can collaborate and learn from one another. We appreciate your commitment to upholding these principles and fostering a positive community atmosphere.

If you have a Code of Conduct concern, please contact the moderators using the links in the Code of Conduct.

โš–๏ธ License

Licensed under either of these:

crates.io's People

Contributors

alexcrichton avatar arlosi avatar baileyn avatar bors avatar bors-voyager[bot] avatar carols10cents avatar cvx avatar dependabot-preview[bot] avatar eth3lbert avatar greenkeeperio-bot avatar hi-rustin avatar johntitor avatar jtgeibel avatar kivikakk avatar kureuil avatar kzys avatar lawngnome avatar locks avatar natboehm avatar pietroalbini avatar renovate-bot avatar renovate[bot] avatar sgrif avatar smarnach avatar sorin-davidoi avatar stefanpenner avatar steveklabnik avatar turbo87 avatar vignesh-sankaran avatar wycats avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crates.io's Issues

Support *-sys packages larger than 10MB (somehow)

(Continuing a discussion started here.)

The cld2 library is a natural-language detection library from Google, and it does some pretty cool stuff. I've packaged it as two Rust libraries, cld2 and cld2-sys. But because the upstream cld2 library is packaged by very few Linux distributions, I've chosen to distribute the source code with the cld2-sys package and build it using the Rust gcc library. So far, so goodโ€”all this works quite nicely.

But I can't upload the package to crates.io because it contains statistical language models, and those models are just too big:

$ du -sh target/package/cld2-sys-0.0.1.crate 
35M target/package/cld2-sys-0.0.1.crate

I can shrink this down somewhat (by omitting everything I don't need for the build), but I almost certainly can't get it under the 10MB limit. I can think of a couple of ways to address this issue:

  1. Accept that certain *-sys packages will be larger than 10MB, and provide some way to override the limit selectively.
  2. Store compressed source code in an S3 bucket, and ask build.rs to download it. But this introduces a dependency on an outside data source that may go away.

Any thoughts on the best way to handle this? Thank you for your advice, and for a great package-management system!

sorting by downloads

I don't know if it's only me or the sorting page for crates a bit weird. When we sort by downloads I think it would be nice that we remove the filter by alphabet above. Because it's rarely for someone to expect number of downloads by alphabets.

Consider rejecting stable releases while the language is changing

Rust itself is still changing, so a crate cannot really guarantee the kind of backward compatibility that cargo assumes for deduplicating dependencies etc. People may not realise this and so accidentally upload something that is forced to break semver as the language changes (or else be forced to do a lot of major version releases, which is unlikely to be what someone wants & is better served by 0.x releases).

This limit would of course be removed closer to 1.0 after associated types and unboxed closures etc. land.

Manual download has weird affect on stats in UI

In the browser UI, it uses JS to update the counter. But if you refresh the page the counter goes back down.

Also I'm not sure if this was a coincidence or not, but once I did a download by depending in a project, it seemed to only then register the manual download. Future manual/programmatic downloads seem to be eaten, but that might be cargo being smart enough to notice the same user/browser/ip/project re-requesting it.

(testing with the dining philosophers package)

Adjust page title to reflect contents

Currently every page has title Cargo, it would be useful for tabbed navigation to have page titles like

  • All Crates 'D' โ€“ Cargo
  • Dashboard โ€“ Cargo
  • cfor โ€“ Cargo

(I looked into this very briefly, but I don't know how to ember.js.)

Document how to cargo publish to local installation

I'm currently having a hard time figuring out how to push to my local crates.io installation. The --token part is pretty clear, but I don't know what to use as --host. I tried setting it to my local rust server http://localhost:8888, but from what I can see in the log it tries to do some kind of git request. So I forked the central https://github.com/rust-lang/crates.io-index repository, adjusting the https://github.com/rust-lang/crates.io-index/blob/master/config.json file to point to my local rust server, but I'm still getting an error:

cargo publish --host https://github.com/ralph/crates.io-index --token XrD3BRBV4IH1yxBw5sNMVWjS66ruVEbq --verbose                                                                                      โŽ โœฑ
    Updating registry `https://github.com/ralph/crates.io-index`
Warning: manifest has no description or license. See http://doc.crates.io/manifest.html#package-metadata for more info.
   Uploading zcolor v0.0.1 (file:///Users/ralph/Documents/work/rust/color-rs)
http error: Couldn't connect to server

(That's my local crates.io token in the snippet.)

I'm trying to push the color-rs package (https://github.com/bjz/color-rs) from the Guide (http://doc.crates.io/guide.html), btw., but have the package name changed to zcolor.

Can you help me publish to my local crates.io? I'd like to have a few packages in there, in order to be able to play with the Ember code.

Also, is there a better way to get sample data?

Make API key more easily available after creating a new account

Not very discoverable, especially since this is probably the first thing you're interested in getting after registering. Resetting it should definitely be in there, but that's certainly not where I would expect to go for "what is my API key".

Possible solution: redirect new logins and/or registrations to there.

Non-ASCII crate names donโ€™t seem to work

$ cargo new รกccรชnts
$ cd รกccรชnts
$ cargo publish
    Updating registry `https://github.com/rust-lang/crates.io-index`
Warning: manifest has no license. See http://doc.crates.io/manifest.html#package-metadata for more info.
   Uploading รกccรชnts v0.0.0 (file:///home/me/%C3%A1cc%C3%AAnts)
failed to get a 200 OK response: Response {500, content-length: 30, server: nginx, via: 1.1 vegur, connection: keep-alive, date: Sat, 22 Nov 2014 01:35:10 GMT, Error 404: Not Found
Not Found]

Iโ€™m not sure if this a Cargo bug or a crates.io bug. Should non-ASCII crate names be allowed at all (at this stage)?

Feature request: way to set up a mirror

I'm so excited crates.io has arrived!! ๐ŸŽ‰ Great work, Alex and everyone!!!

This is a longer-term feature request... one thing that has been an occasional yet painful experience with rubygems.org or npmjs.org is when they're down. At various points in time, my coworkers and I have tried to set up mirrors under our control of both of these and it never went very smoothly, neither on the setup or usage side of things.

I would love love love to have mirroring be something officially supported and encouraged for the health of the community, but I realize this is a difficult problem too :)

Thank you for your work!! โค๏ธ

Packages really should be namespaced

Right now it's far too easy to grab a package name and hold it hostage, even if the name is generally recognized as belonging to another project, or even if you don't actually have anything to publish yet. For example, both bindgen and irc have been claimed, apparently by @mahkoh (which isn't even exposed in the interface).

The proper solution to this is to namespace packages. They can be namespace using the GitHub user/organization name of the publisher. This way everyone can publish their own package, without worrying about collisions, and without any confusion when depending on a package as to whether it's the "official" package or not (well, for packages whose repositories are hosted on GitHub, which is likely to be most of them).

Packages with multiple owners can be deal with as follows:

  • Anyone added as an owner to a package can still have their own namespaced version of the package, i.e. if the user bob adds the user alice as an owner to bob/crypto, then alice can still have an independent alice/crypto package. This is important because the new owner might have already had a package with that name, and that needs to be preserved. Similarly, they may wish to keep a parallel fork for other reasons, or may wish to simply be able to use that name later if they are removed from the ownership list at a later date.
  • People who are owners on a package under someone else's namespace can publish using an extra flag to cargo publish that identifies the namespace. Similarly, .cargo/config could learn how to record the namespace of a given package (presumably identified by path) to avoid having to remember to use the flag every time. I don't think it makes sense to put the owner name into Cargo.toml because you probably don't want to commit this to git (if for no other reason than anyone who forks your git repo will not want that owner information because they can't publish your package).
  • Any original owner who is removed from the owner list of a package does not regain use of the name. Because crates.io wants to be a permanent archive, the namespaced package name must continue to identify that package. However, it should be rare for someone to want to be removed from the owner list of a package under their namespace, so that's unlikely to be an issue.
  • Any package that wishes to switch namespaces, because of an ownership transfer, can simply be published to the new namespace. The existing package will remain the old namespace, for archival reasons.

We may wish to more formally support the idea of moving a package to another namespace. That could be accomplished as follows:

  • Copy the entire history of the package to the new namespace. This means anyone depending on any existing version of the package at the old namespace can update to the new namespace and get the same package.
  • "close" the old namespaced package, such that no new versions can be submitted, and display this on the package page, with information on where the new package can be found.
  • When updating Cargo.lock, any package that is found that is closed can continue to be used, but cargo should display a warning telling the user that the package has moved and they should update their Cargo.toml.
  • We may wish to support the ability for a user to reopen a "closed" package, but that should be rare enough that it can be handled manually. My recommendation would be to at least require any new published package be at least one "breaking change" higher than the highest version that existed when it was closed (so any ~ version specs will not pick up the new version).

With these changes in place, we could still support un-namespaced packages. These would be manually curated so as to ensure that nobody takes a name that is reasonably understood to refer to some other package (such as taking bindgen). These top-level packages would really be aliases for the namespaced version, and Cargo.lock would identify the namespace that it resolves to (and cargo would either warn or error when updating a lockfile if any top-level package resolves to a different namespace than before).

This would serve as a weaker form of the archival guarantee of namespaced packages. A top-level package can change to identify a different package than before, if it makes sense to do so (e.g. an error was made, or an unofficial package gets claimed by the actual owning organization). For this reason it is recommended that libraries always use the namespaced name (since they aren't supposed to check their Cargo.lock into version control), but binaries are free to use the top-level name (since cargo will warn/error if the namespace resolution changes). This top-level naming is intended to be primarily useful for people trying to find packages. And the web UI can be updated to make it easier to avoid mistakes, by using the full namespaced name in the "Depend" code snippet.

Move links before stats

Statistics are amusing, but not essential IMO. On a crateโ€™s page The download graph is pretty big, making anything below it easy to miss or dismiss as unimportant footer boilerplate.

Links however are much more useful, especially to the documentation. Please move the โ€œLinksโ€ section (and the other sections next to it currently next to it) to before the stats.

No static html fallback when viewing from browsers without JS

I often end up viewing various pages from links and emacs.

The current site is completely non-functional in these browsers, this is quite
a serious regression compared to Pypi or Hackage.

This also makes the site unusable for people using the tor browser.

UI improvement for "loading..." screen

The "loading..." screen is ugly and I see it a lot. It should use a traditional spinner and should also be debounced so it only comes up when loading is taking a particularly long time.

Crates with inter-dependencies

I'm currently in the following situation:

  • I have a crate named glium, and a crate named glium_macros
  • glium is a dependency of glium_macros with a path source (glium_macros generates code that uses glium)
  • glium_macros is a dev-dependency of glium with a path source (because the macros are used in the examples and the tests)

This system currently works (for example cargo test works), but I can't publish them.
If I try to publish glium, cargo complains that it can't find glium_macros. If I try to publish glium_macros, cargo complains that it can't find glium.

Even cargo publish --no-verify doesn't work.

improve front page branding/title/tagline

A number of improvements needed for front page branding, title, and tagline.

Things I like about the tagline:

  • "crates" in the tagline -- they're in the domain so we should own the terminology. It should become part of the lingua franca like "gems" are in the Ruby community
  • "Rust" in the tagline -- since "rust" isn't in the domain, and the language is new, it should be made immediately clear that's what this is about
  • "community" in the tagline -- of course! critical
  • "community's" expresses explicit ownership (pun intended) by the community -- ๐Ÿ‘

Things I don't like:

  • The title takes up too much page real estate.
  • The chunky swiss font title is bland.
  • Because of the domain name, it's not clear how people should refer to the web site in everyday conversation. People should be able to blur the distinction between cargo the CLI tool, cargo the registry, cargo the web site, and cargo the ecosystem. They should all just be one integrated UX. So we should explicitly brand the page as Cargo. Right now the CARGO heading and logo are separated from the title of the hero unit. They should be brought together so it says: "CARGO: $tagline"
  • "hosting service" is unnecessarily internal and verbose; "host" is better (rubygems.org does this too)

I think we could go with "Cargo: the Rust community's crate host". That's not a much shorter tagline but shrinking the font is probably all that's needed.

Not logged in after first authorization on github

After first clicking the "Log in with GitHub" button and authorizing crates.io on Github, I was not logged in until I clicked the button a second time. This only happened once, I can not reproduce it now, even when revoking crates.io in my Github settings.

Unify page structure between guide and front page

The guide has a generic description of Cargo ("Cargo downloads your...") as its heading at the top. The two pages should look more like screens of the same app. This might just mean eliminating that heading, or pulling it into the beginning of the guide text itself. And there should be a standard header that brands every screen in the app identically.

inconsistent installation instructions

The front page button has a link to a tarball but at the bottom of the page is a "downloads" link that goes to a screen with installation instructions. We need one consistent installation process. Also "Downloads" is a confusing name for that link.

Pagination is strewn around

Error on `cargo build`

$ cargo build
    Updating git repository `https://github.com/rust-lang/time`
    Updating git repository `https://github.com/wycats/rust-civet`
    Updating git repository `https://github.com/conduit-rust/conduit-middleware`
    Updating git repository `https://github.com/conduit-rust/conduit-json-parser`
    Updating git repository `https://github.com/conduit-rust/conduit-test`
    Updating git repository `https://github.com/sfackler/rust-postgres`
    Updating git repository `https://github.com/conduit-rust/conduit-cookie`
    Updating git repository `https://github.com/conduit-rust/route-recognizer.rs.git`
    Updating git repository `https://github.com/conduit-rust/conduit.git`
    Updating git repository `https://github.com/alexcrichton/pkg-config-rs`
    Updating git repository `https://github.com/alexcrichton/libz-sys`
    Updating git repository `https://github.com/DiamondLovesYou/libressl-pnacl-sys.git`
    Updating git repository `https://github.com/DiamondLovesYou/cargo-pnacl-helper.git`
    Updating git repository `https://github.com/Jurily/rust-xxhash`
   Compiling civet-sys v0.0.1 (https://github.com/wycats/rust-civet#51627308)
   Compiling gcc v0.0.1 (https://github.com/alexcrichton/gcc-rs#f25b3ba9)
   Compiling pkg-config v0.0.1 (https://github.com/alexcrichton/pkg-config-rs#d24a08d8)
   Compiling route-recognizer v0.1.0 (https://github.com/conduit-rust/route-recognizer.rs.git#fd07a7fb)
   Compiling semver v0.1.1 (https://github.com/rust-lang/semver#0e53c5ff)
   Compiling r2d2 v0.0.0 (https://github.com/sfackler/r2d2#8337055e)
   Compiling encoding_index_tests v0.1.0 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
   Compiling xxhash v0.0.1 (https://github.com/Jurily/rust-xxhash#6027ce91)
   Compiling mime-types v0.5.0 (https://github.com/conduit-rust/mime-types.git#81c8911c)
   Compiling uuid v0.0.2 (https://github.com/rust-lang/uuid#410aa2f5)
   Compiling libssh2-sys v0.0.1 (https://github.com/alexcrichton/ssh2-rs#922531da)
   Compiling libgit2-sys v0.0.1 (https://github.com/alexcrichton/git2-rs#c601ad02)
   Compiling libz-sys v0.0.1 (https://github.com/alexcrichton/libz-sys#37926b78)
   Compiling curl-sys v0.1.0 (https://github.com/carllerche/curl-rust#c5dc6132)
   Compiling openssl-sys v0.0.1 (https://github.com/sfackler/rust-openssl#af5533d9)
   Compiling time v0.0.2 (https://github.com/rust-lang/time#b58210c9)
   Compiling miniz-sys v0.0.2 (https://github.com/alexcrichton/flate2-rs#044e4dc2)
   Compiling encoding-index-korean v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
   Compiling encoding-index-japanese v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
   Compiling encoding-index-simpchinese v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
   Compiling encoding-index-tradchinese v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
   Compiling encoding-index-singlebyte v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
   Compiling phf v0.0.0 (https://github.com/sfackler/rust-phf#aa3e2d0a)
   Compiling conduit v0.5.0 (https://github.com/conduit-rust/conduit.git#53307ac9)
   Compiling encoding v0.2.1 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:427:73: 427:81 error: unknown format trait `s`
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:427                     panic!("{:s} cannot reencode a replacement string", trapname);
                                                                                                                                                                    ^~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:440:57: 440:66 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:440                     escapes.push_str(format!("&#{:d};", ch as int)[]);
                                                                                                                                                    ^~~~~~~~~
error: aborting due to 2 previous errors
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:598:46: 598:70 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:598                 'g' => write!(fmt, "{:02d}", (year % 100 + 100) % 100),
                                                                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:599:46: 599:58 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:599                 'V' => write!(fmt, "{:02d}", days / 7 + 1),
                                                                                                                              ^~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:659:51: 659:83 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:659               'C' => return write!(fmt, "{:02d}", (tm.tm_year as int + 1900) / 100),
                                                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:678:51: 678:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:678               'd' => return write!(fmt, "{:02d}", tm.tm_mday),
                                                                                                                                   ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:679:50: 679:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:679               'e' => return write!(fmt, "{:2d}", tm.tm_mday),
                                                                                                                                  ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:680:51: 680:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:680               'f' => return write!(fmt, "{:09d}", tm.tm_nsec),
                                                                                                                                   ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:690:51: 690:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:690               'H' => return write!(fmt, "{:02d}", tm.tm_hour),
                                                                                                                                   ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:695:46: 695:47 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:695                 return write!(fmt, "{:02d}", h)
                                                                                                                              ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:697:51: 697:65 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:697               'j' => return write!(fmt, "{:03d}", tm.tm_yday + 1),
                                                                                                                                   ^~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:698:50: 698:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:698               'k' => return write!(fmt, "{:2d}", tm.tm_hour),
                                                                                                                                  ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:703:45: 703:46 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:703                 return write!(fmt, "{:2d}", h)
                                                                                                                             ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:705:51: 705:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:705               'M' => return write!(fmt, "{:02d}", tm.tm_min),
                                                                                                                                   ^~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:706:51: 706:64 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:706               'm' => return write!(fmt, "{:02d}", tm.tm_mon + 1),
                                                                                                                                   ^~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:724:51: 724:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:724               'S' => return write!(fmt, "{:02d}", tm.tm_sec),
                                                                                                                                   ^~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:734:51: 734:84 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:734               'U' => return write!(fmt, "{:02d}", (tm.tm_yday - tm.tm_wday + 7) / 7),
                                                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:749:34: 749:81 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:749                                  (tm.tm_yday - (tm.tm_wday - 1 + 7) % 7 + 7) / 7)
                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:753:51: 753:83 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:753               'y' => return write!(fmt, "{:02d}", (tm.tm_year as int + 1900) % 100),
                                                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760:60: 760:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760                 return write!(fmt, "{}{:02d}{:02d}", sign, h, m);
                                                                                                                                            ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760:63: 760:64 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760                 return write!(fmt, "{}{:02d}{:02d}", sign, h, m);
                                                                                                                                               ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802:63: 802:71 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802                     write!(fmt, "{}{}{:02d}:{:02d}", s, sign, h as int, m as int)
                                                                                                                                               ^~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802:73: 802:81 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802                     write!(fmt, "{}{}{:02d}:{:02d}", s, sign, h as int, m as int)
                                                                                                                                                         ^~~~~~~~
error: aborting due to 21 previous errors
Build failed, waiting for other jobs to finish...
Could not compile `encoding`.

To learn more, run the command again with --verbose.
$ rustc -v
rustc 0.13.0-nightly (399ff259e 2014-11-20 00:27:07 +0000)
$ cargo -V
cargo 0.0.1-pre-nightly (b3ce593 2014-11-19 07:12:26 +0000)


$ cargo build --verbose
    Updating git repository `https://github.com/alexcrichton/flate2-rs`
    Updating git repository `https://github.com/carllerche/curl-rust`
    Updating git repository `https://github.com/alexcrichton/oauth2-rs`
    Updating git repository `https://github.com/sfackler/r2d2-postgres`
    Updating git repository `https://github.com/conduit-rust/conduit-router`
    Updating git repository `https://github.com/alexcrichton/git2-rs`
    Updating git repository `https://github.com/conduit-rust/conduit-log-requests`
    Updating git repository `https://github.com/conduit-rust/conduit-test`
    Updating git repository `https://github.com/rust-lang/time`
    Updating git repository `https://github.com/rust-lang/semver`
    Updating git repository `https://github.com/conduit-rust/conduit-conditional-get`
    Updating git repository `https://github.com/conduit-rust/conduit-json-parser`
    Updating git repository `https://github.com/conduit-rust/conduit-middleware`
    Updating git repository `https://github.com/conduit-rust/conduit-static`
    Updating git repository `https://github.com/sfackler/rust-postgres`
    Updating git repository `https://github.com/conduit-rust/conduit-cookie`
    Updating git repository `https://github.com/servo/rust-url`
    Updating git repository `https://github.com/sfackler/rust-openssl`
    Updating git repository `https://github.com/wycats/rust-civet`
    Updating git repository `https://github.com/alexcrichton/gcc-rs`
    Updating git repository `https://github.com/DiamondLovesYou/libressl-pnacl-sys.git`
    Updating git repository `https://github.com/DiamondLovesYou/cargo-pnacl-helper.git`
    Updating git repository `https://github.com/alexcrichton/pkg-config-rs`
    Updating git repository `https://github.com/alexcrichton/libz-sys`
    Updating git repository `https://github.com/lifthrasiir/rust-encoding`
    Updating git repository `https://github.com/sfackler/rust-phf`
    Updating git repository `https://github.com/rust-lang/uuid`
    Updating git repository `https://github.com/Jurily/rust-xxhash`
    Updating git repository `https://github.com/sfackler/r2d2`
    Updating git repository `https://github.com/conduit-rust/route-recognizer.rs.git`
    Updating git repository `https://github.com/conduit-rust/conduit.git`
    Updating git repository `https://github.com/alexcrichton/ssh2-rs`
    Updating git repository `https://github.com/conduit-rust/conduit-utils.git`
    Updating git repository `https://github.com/conduit-rust/mime-types.git`
    Updating git repository `https://github.com/alexcrichton/cookie-rs.git`
       Fresh xxhash v0.0.1 (https://github.com/Jurily/rust-xxhash#6027ce91)
       Fresh semver v0.1.1 (https://github.com/rust-lang/semver#0e53c5ff)
       Fresh encoding_index_tests v0.1.0 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
       Fresh civet-sys v0.0.1 (https://github.com/wycats/rust-civet#51627308)
       Fresh mime-types v0.5.0 (https://github.com/conduit-rust/mime-types.git#81c8911c)
       Fresh pkg-config v0.0.1 (https://github.com/alexcrichton/pkg-config-rs#d24a08d8)
       Fresh route-recognizer v0.1.0 (https://github.com/conduit-rust/route-recognizer.rs.git#fd07a7fb)
       Fresh uuid v0.0.2 (https://github.com/rust-lang/uuid#410aa2f5)
       Fresh r2d2 v0.0.0 (https://github.com/sfackler/r2d2#8337055e)
       Fresh gcc v0.0.1 (https://github.com/alexcrichton/gcc-rs#f25b3ba9)
       Fresh phf v0.0.0 (https://github.com/sfackler/rust-phf#aa3e2d0a)
       Fresh conduit v0.5.0 (https://github.com/conduit-rust/conduit.git#53307ac9)
       Fresh encoding-index-japanese v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
       Fresh encoding-index-korean v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
       Fresh encoding-index-simpchinese v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
       Fresh encoding-index-tradchinese v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
       Fresh encoding-index-singlebyte v1.0.20140915 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
       Fresh conduit-middleware v0.5.0 (https://github.com/conduit-rust/conduit-middleware#27bf1e18)
       Fresh conduit-router v0.5.0 (https://github.com/conduit-rust/conduit-router#41201e6d)
   Compiling civet v0.1.0 (https://github.com/wycats/rust-civet#51627308)
     Running `rustc /Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs --crate-name civet --crate-type lib -g -C metadata=07c399fcd56279d6 -C extra-filename=-07c399fcd56279d6 --out-dir /Users/jlembeck/Dropbox/code/crates.io/target/deps --dep-info /Users/jlembeck/Dropbox/code/crates.io/target/.fingerprint/civet-07c399fcd56279d6/dep-lib-civet -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -L /Users/jlembeck/Dropbox/code/crates.io/target/deps --extern semver=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libsemver-f776e72d2191ceb0.rlib --extern civet-sys=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libcivet-sys-0c3eafc7eb8d334e.rlib --extern conduit=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libconduit-e0cba471358eca93.rlib -Awarnings -L /Users/jlembeck/Dropbox/code/crates.io/target/build/civet-sys-0c3eafc7eb8d334e/out`
       Fresh conduit-utils v0.5.0 (https://github.com/conduit-rust/conduit-utils.git#dd9020e7)
   Compiling encoding v0.2.1 (https://github.com/lifthrasiir/rust-encoding#6a5a9595)
     Running `rustc /Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/lib.rs --crate-name encoding --crate-type lib -g -C metadata=586c713b3cc7a464 -C extra-filename=-586c713b3cc7a464 --out-dir /Users/jlembeck/Dropbox/code/crates.io/target/deps --dep-info /Users/jlembeck/Dropbox/code/crates.io/target/.fingerprint/encoding-586c713b3cc7a464/dep-lib-encoding -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -L /Users/jlembeck/Dropbox/code/crates.io/target/deps --extern encoding-index-korean=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libencoding-index-korean-deaa17992fade0b3.rlib --extern encoding-index-singlebyte=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libencoding-index-singlebyte-bea7b3e2495b3c3b.rlib --extern encoding-index-tradchinese=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libencoding-index-tradchinese-31c5a3802fca9dba.rlib --extern encoding-index-japanese=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libencoding-index-japanese-483043e85d4a33ad.rlib --extern encoding-index-simpchinese=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libencoding-index-simpchinese-2dc900f172f1b6eb.rlib -Awarnings`
       Fresh conduit-json-parser v0.5.0 (https://github.com/conduit-rust/conduit-json-parser#6ea9084e)
       Fresh openssl-sys v0.0.1 (https://github.com/sfackler/rust-openssl#af5533d9)
       Fresh libz-sys v0.0.1 (https://github.com/alexcrichton/libz-sys#37926b78)
       Fresh miniz-sys v0.0.2 (https://github.com/alexcrichton/flate2-rs#044e4dc2)
   Compiling time v0.0.2 (https://github.com/rust-lang/time#b58210c9)
     Running `rustc /Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs --crate-name time --crate-type lib -g -C metadata=2727c1bbdfbd9ba1 -C extra-filename=-2727c1bbdfbd9ba1 --out-dir /Users/jlembeck/Dropbox/code/crates.io/target/deps --dep-info /Users/jlembeck/Dropbox/code/crates.io/target/.fingerprint/time-2727c1bbdfbd9ba1/dep-lib-time -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -Awarnings -L /Users/jlembeck/Dropbox/code/crates.io/target/build/time-2727c1bbdfbd9ba1/out -l time_helpers:static`
   Compiling openssl v0.0.1 (https://github.com/sfackler/rust-openssl#af5533d9)
     Running `rustc /Users/jlembeck/.cargo/git/checkouts/rust-openssl-4145800ab3594a0f/master/src/lib.rs --crate-name openssl --crate-type lib -g -C metadata=aae9fce4a01fef66 -C extra-filename=-aae9fce4a01fef66 --out-dir /Users/jlembeck/Dropbox/code/crates.io/target/deps --dep-info /Users/jlembeck/Dropbox/code/crates.io/target/.fingerprint/openssl-aae9fce4a01fef66/dep-lib-openssl -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -L /Users/jlembeck/Dropbox/code/crates.io/target/deps --extern openssl-sys=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libopenssl-sys-3e3038eb4813d419.rlib -Awarnings -L /usr/lib`
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:261:64: 261:68 error: unknown format trait `u`
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:261             try!(write!(&mut writer, "HTTP/1.1 {:u} {:s}\r\n", code, string).map_err(|_| ()));
                                                                                                                                                      ^~~~
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:261:70: 261:76 error: unknown format trait `s`
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:261             try!(write!(&mut writer, "HTTP/1.1 {:u} {:s}\r\n", code, string).map_err(|_| ()));
                                                                                                                                                            ^~~~~~
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:265:64: 265:68 error: unknown format trait `s`
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:265                     try!(write!(&mut writer, "{:s}: {:s}\r\n", *key, *header).map_err(|_| ()));
                                                                                                                                                      ^~~~
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:265:70: 265:77 error: unknown format trait `s`
/Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs:265                     try!(write!(&mut writer, "{:s}: {:s}\r\n", *key, *header).map_err(|_| ()));
                                                                                                                                                            ^~~~~~~
error: aborting due to 4 previous errors
   Compiling curl-sys v0.1.0 (https://github.com/carllerche/curl-rust#c5dc6132)
     Running `rustc lib.rs --crate-name curl-sys --crate-type lib -g -C metadata=151b74147b7ca2dd -C extra-filename=-151b74147b7ca2dd --out-dir /Users/jlembeck/Dropbox/code/crates.io/target/deps --dep-info /Users/jlembeck/Dropbox/code/crates.io/target/.fingerprint/curl-sys-151b74147b7ca2dd/dep-lib-curl-sys -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -L /Users/jlembeck/Dropbox/code/crates.io/target/deps --extern libz-sys=/Users/jlembeck/Dropbox/code/crates.io/target/deps/liblibz-sys-fcd7913c0ecc8ca2.rlib --extern openssl-sys=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libopenssl-sys-3e3038eb4813d419.rlib -Awarnings -l curl -L /usr/lib`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:598:46: 598:70 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:598                 'g' => write!(fmt, "{:02d}", (year % 100 + 100) % 100),
                                                                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:599:46: 599:58 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:599                 'V' => write!(fmt, "{:02d}", days / 7 + 1),
                                                                                                                              ^~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:659:51: 659:83 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:659               'C' => return write!(fmt, "{:02d}", (tm.tm_year as int + 1900) / 100),
                                                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:678:51: 678:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:678               'd' => return write!(fmt, "{:02d}", tm.tm_mday),
                                                                                                                                   ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:679:50: 679:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:679               'e' => return write!(fmt, "{:2d}", tm.tm_mday),
                                                                                                                                  ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:680:51: 680:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:680               'f' => return write!(fmt, "{:09d}", tm.tm_nsec),
                                                                                                                                   ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:690:51: 690:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:690               'H' => return write!(fmt, "{:02d}", tm.tm_hour),
                                                                                                                                   ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:695:46: 695:47 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:695                 return write!(fmt, "{:02d}", h)
                                                                                                                              ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:697:51: 697:65 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:697               'j' => return write!(fmt, "{:03d}", tm.tm_yday + 1),
                                                                                                                                   ^~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:698:50: 698:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:698               'k' => return write!(fmt, "{:2d}", tm.tm_hour),
                                                                                                                                  ^~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:703:45: 703:46 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:703                 return write!(fmt, "{:2d}", h)
                                                                                                                             ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:705:51: 705:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:705               'M' => return write!(fmt, "{:02d}", tm.tm_min),
                                                                                                                                   ^~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:706:51: 706:64 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:706               'm' => return write!(fmt, "{:02d}", tm.tm_mon + 1),
                                                                                                                                   ^~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:724:51: 724:60 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:724               'S' => return write!(fmt, "{:02d}", tm.tm_sec),
                                                                                                                                   ^~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:734:51: 734:84 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:734               'U' => return write!(fmt, "{:02d}", (tm.tm_yday - tm.tm_wday + 7) / 7),
                                                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:427:73: 427:81 error: unknown format trait `s`
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:427                     panic!("{:s} cannot reencode a replacement string", trapname);
                                                                                                                                                                    ^~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:440:57: 440:66 error: unknown format trait/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:749:34: 749:81 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:749                                  (tm.tm_yday - (tm.tm_wday - 1 + 7) % 7 + 7) / 7)
                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 `d`
/Users/jlembeck/.cargo/git/checkouts/rust-encoding-aceee0e55a114022/master/src/types.rs:440                     escapes.push_str(format!("&#{:d};", ch as int)[]);
                                                                                                                                                    ^~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:753:51: 753:83 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:753               'y' => return write!(fmt, "{:02d}", (tm.tm_year as int + 1900) % 100),
                                                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760:60: 760:61 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760                 return write!(fmt, "{}{:02d}{:02d}", sign, h, m);
                                                                                                                                            ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760:63: 760:64 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:760                 return write!(fmt, "{}{:02d}{:02d}", sign, h, m);
                                                                                                                                               ^
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802:63: 802:71 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802                     write!(fmt, "{}{}{:02d}:{:02d}", s, sign, h as int, m as int)
                                                                                                                                               ^~~~~~~~
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802:73: 802:81 error: unknown format trait `d`
/Users/jlembeck/.cargo/git/checkouts/time-d59bff975f117a1a/master/src/lib.rs:802                     write!(fmt, "{}{}{:02d}:{:02d}", s, sign, h as int, m as int)
                                                                                                                                                         ^~~~~~~~
error: aborting due to 21 previous errors
   Compiling libssh2-sys v0.0.1 (https://github.com/alexcrichton/ssh2-rs#922531da)
     Running `rustc lib.rs --crate-name libssh2-sys --crate-type lib -g -C metadata=cf42cea080951617 -C extra-filename=-cf42cea080951617 --out-dir /Users/jlembeck/Dropbox/code/crates.io/target/deps --dep-info /Users/jlembeck/Dropbox/code/crates.io/target/.fingerprint/libssh2-sys-cf42cea080951617/dep-lib-libssh2-sys -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -L /Users/jlembeck/Dropbox/code/crates.io/target/deps --extern libz-sys=/Users/jlembeck/Dropbox/code/crates.io/target/deps/liblibz-sys-fcd7913c0ecc8ca2.rlib --extern openssl-sys=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libopenssl-sys-3e3038eb4813d419.rlib -Awarnings -L /Users/jlembeck/Dropbox/code/crates.io/target/build/libssh2-sys-cf42cea080951617/out/lib -l ssh2:static -L /usr/lib`
error: aborting due to 2 previous errors
   Compiling libgit2-sys v0.0.1 (https://github.com/alexcrichton/git2-rs#c601ad02)
     Running `/Users/jlembeck/Dropbox/code/crates.io/target/build/libgit2-sys-ce6d220b35959092/build-script-build`
       Fresh flate2 v0.0.3 (https://github.com/alexcrichton/flate2-rs#044e4dc2)
Build failed, waiting for other jobs to finish...
Could not compile `civet`.

Caused by:
  Process didn't exit successfully: `rustc /Users/jlembeck/.cargo/git/checkouts/rust-civet-c04d89587d61e3a3/master/src/lib.rs --crate-name civet --crate-type lib -g -C metadata=07c399fcd56279d6 -C extra-filename=-07c399fcd56279d6 --out-dir /Users/jlembeck/Dropbox/code/crates.io/target/deps --dep-info /Users/jlembeck/Dropbox/code/crates.io/target/.fingerprint/civet-07c399fcd56279d6/dep-lib-civet -L /Users/jlembeck/Dropbox/code/crates.io/target/deps -L /Users/jlembeck/Dropbox/code/crates.io/target/deps --extern semver=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libsemver-f776e72d2191ceb0.rlib --extern civet-sys=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libcivet-sys-0c3eafc7eb8d334e.rlib --extern conduit=/Users/jlembeck/Dropbox/code/crates.io/target/deps/libconduit-e0cba471358eca93.rlib -Awarnings -L /Users/jlembeck/Dropbox/code/crates.io/target/build/civet-sys-0c3eafc7eb8d334e/out` (status=101)

bogus "about" link

There's an "about" thingy at the bottom of the page that looks like it should be a link but isn't.

populate is broken

Hi there, great work on creates.io so far!

I tried running the app on my local machine, but the populate script is broken atm. It complains about violated foreign key constraints:

task '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: ERROR: insert or update on table "version_downloads" violates foreign key constraint "fk_version_downloads_version_id"', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/libcore/result.rs:743

I don't know if you are supposed to run the populate script, but I thought I'd let you know. ๐Ÿ˜„

Stronger owner controls

Currently any owner can add and (more dangerously) remove any other one, which is open for abuse; e.g. add someone as an owner, have a falling out, and they can remove the main maintainer and squat the package name for themselves.

Possible improvements off the top of my head:

  • have a distinguished owner (the initial uploader by default) who cannot be removed as an owner by anyone but themselves and is in control of transferring distinguishedness to some other owner
  • keep a chronology of when owners were added, and owners can only be removed by people who have been owners longer (this is similar to the system reddit uses for moderators)

Feature request: Reverse index of packages that depend on this package

I love looking at examples of how to use a library, and libraries that use the library I'm interested in are a great source of those examples.

To that end, it'd be awesome if crates.io, since it has this information, could show on the page somewhere the list of libraries that depend on the one I'm currently looking at.

So for example, the gcc crate would show that the time crate has the gcc crate as a dependency. If I wanted to see a real world example of the gcc crate, I could go look at what the time crate is doing with it.

Thanks!!! ๐ŸŒด

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.