[rust-dev] [ANN] Initial Alpha of Cargo

Kevin Ballard kevin at sb.org
Tue Jun 24 11:45:05 PDT 2014

This is pretty awesome. I notice that http://crates.io doesn’t link to the GitHub repo though. Seems like that might be a useful thing to add.


> On Jun 23, 2014, at 10:50 PM, Yehuda Katz <wycats at gmail.com> wrote:
> Folks,
> I'm happy to announce that Cargo is now ready to try out!
> The Cargo repository is now at https://github.com/rust-lang/cargo and you can learn all about it at http://crates.io/. Don't forget to check out the FAQ at http://crates.io/faq.
> You can build Cargo from master using the latest `rustc` and running `make install`. It assumes a `rustc` and `git` on the path, so you won't need to recompile Cargo every time you update the nightly.
> Cargo is still under heavy development and features are coming quickly. At the moment, all dependencies are downloaded from Github, but we are working on a Cargo registry that you will be able to publish packages to. There are more details about that in the FAQ.
> The next features we're planning on working on are:
> `cargo package <name>` to create a new package skeleton
> Supporting refs other than `master` from git packages
> Support for environments (such as development, production and test) as well as a `cargo test` command. This includes per-environment dependencies.
> Support for per-platform configuration.
> More deterministic builds using a shrinkwrap file (like the bundler Gemfile.lock or shrinkwrap.json in npm).
> Since people have asked often, we plan to transparently support duplicates of the same package name and version in the following conditions:
> From different git repositories or different branches of the same git repository
> In versions less than 1.0 for packages from the Cargo registry
> For different major versions for packages from the Cargo registry
> By default, we will encourage package authors to comply with semantic versioning and not introduce breaking changes in minor versions by using the single highest available minor version for each depended-on major version of a package from the Cargo registry.
> For example, if I have three packages:
> uno depends on json 1.3.6
> dos depends on json 1.4.12
> tres depends on json 2.1.0
> Cargo will use json 1.4.12 for uno and dos, and json 2.1.0 for tres. This makes good use of Rust's symbol mangling support, while also avoiding unnecessary code bloat.
> This will tend to produce significantly smaller binary sizes than encouraging libraries to depend on precise versions of published packages. We tried to strike a good balance between isolating unstable code and avoiding binary bloat in stable libraries. As the ecosystem grows, we'll watch carefully and see if any tweaks are necessary.
> Yehuda Katz
> (ph) 718.877.1325
> _______________________________________________
> Rust-dev mailing list
> Rust-dev at mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140624/1801b133/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4118 bytes
Desc: not available
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140624/1801b133/attachment.p7s>

More information about the Rust-dev mailing list