Re: [rust-dev] [ANN] Initial Alpha of Cargo
On Tue, Jun 24 2014, Yehuda Katz wrote: I'm happy to announce that Cargo is now ready to try out! That's great news! Thanks for all your work and for making Rust more accessible to newcomers like myself. -- Petar Radosevic | @wunki ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
The FAQ says: Our solution: Cargo allows a package to specify a script to run before invoking |rustc|. We plan to add support for platform-specific configuration, so you can use |make| on Linux and |cmake| on BSD, for example. Just to make it perfectly clear, this will force a Cygwin dependency on cargo in practice. One popular package using autotools is enough to make it mandatory. Is this a conscious tradeoff? ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
On 24/06/14 20:41, György Andrasek wrote: The FAQ says: Our solution: Cargo allows a package to specify a script to run before invoking |rustc|. We plan to add support for platform-specific configuration, so you can use |make| on Linux and |cmake| on BSD, for example. Just to make it perfectly clear, this will force a Cygwin dependency on cargo in practice. One popular package using autotools is enough to make it mandatory. Is this a conscious tradeoff? Just to be clear: what's the trade-off here? That is, what is the alternative: not supporting running external scripts at all? Huon ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
On Tue, Jun 24, 2014 at 7:52 AM, Corey Richardson co...@octayn.net wrote: There is an Ubuntu PPA available at https://launchpad.net/~cmrx64/+archive/cargo, for use on travis or otherwise. cargo : Depends: libc6 ( 2.16) but 2.19-0ubuntu6 is installed. Only for Ubuntu 14.04? -- Sebastien Douche sdou...@gmail.com Twitter: @sdouche / G+: +sdouche ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
On 06/24/2014 01:05 PM, Huon Wilson wrote: Just to be clear: what's the trade-off here? That is, what is the alternative: not supporting running external scripts at all? The alternative is to use a proper scripting language for configuration, so people don't need *external* scripts: waf (python), paludis (bash), cabal (haskell), cmake. Yes, it's a lot of work to essentially port the relevant parts of autotools, but it might be a better idea in the long run. ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
It wasn't clear from the documentation I read, but are multi-package repositories supported? The manifest format, in particular, doesn't seem to mention it (unless the manifest format is also incomplete). -SL ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
El 24/06/14 12:05, Huon Wilson escribió: On 24/06/14 20:41, György Andrasek wrote: The FAQ says: Our solution: Cargo allows a package to specify a script to run before invoking |rustc|. We plan to add support for platform-specific configuration, so you can use |make| on Linux and |cmake| on BSD, for example. Just to make it perfectly clear, this will force a Cygwin dependency on cargo in practice. One popular package using autotools is enough to make it mandatory. Is this a conscious tradeoff? Just to be clear: what's the trade-off here? That is, what is the alternative: not supporting running external scripts at all? You don't need a Cygwin dependency if you use Go for this task. It's a simple language, multi-platform and with binary distribution for systems most used (Windows, Mac OS X, Linux). ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
Using Go (or Python or whatever) for this implies either the build system needs to include compiled binaries (not good) or the system doing the build needs to have a Go (or xyz) interpreter installed. So cross-platform build configurations will require an external dependency (or writing separate scripts for each target platform) if external scripts are used. On Tuesday 24 Jun 2014 16:56:31 John Mija wrote: El 24/06/14 12:05, Huon Wilson escribió: On 24/06/14 20:41, György Andrasek wrote: The FAQ says: Our solution: Cargo allows a package to specify a script to run before invoking |rustc|. We plan to add support for platform-specific configuration, so you can use |make| on Linux and |cmake| on BSD, for example. Just to make it perfectly clear, this will force a Cygwin dependency on cargo in practice. One popular package using autotools is enough to make it mandatory. Is this a conscious tradeoff? Just to be clear: what's the trade-off here? That is, what is the alternative: not supporting running external scripts at all? You don't need a Cygwin dependency if you use Go for this task. It's a simple language, multi-platform and with binary distribution for systems most used (Windows, Mac OS X, Linux). ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
This is very well presented for an alpha. Nicely done. So excited to see projects start using it. On 06/23/2014 10:50 PM, Yehuda Katz 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@mozilla.org https://mail.mozilla.org/listinfo/rust-dev ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
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. -Kevin On Jun 23, 2014, at 10:50 PM, Yehuda Katz wyc...@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@mozilla.org https://mail.mozilla.org/listinfo/rust-dev smime.p7s Description: S/MIME cryptographic signature ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
I've been (very slowly) working on a pure rust build system ( https://github.com/erickt/rbuild) that we might be able to someday use to do complex builds without needing other external language or build system. On Tue, Jun 24, 2014 at 11:22 AM, Daniel Micay danielmi...@gmail.com wrote: On 24/06/14 12:15 PM, Diggory Hardy wrote: Using Go (or Python or whatever) for this implies either the build system needs to include compiled binaries (not good) or the system doing the build needs to have a Go (or xyz) interpreter installed. So cross-platform build configurations will require an external dependency (or writing separate scripts for each target platform) if external scripts are used. Yeah, it makes absolutely no sense to use Go for this. It would have no advantage over using Rust for this task and would add an unnecessary dependency along with requiring people to learn another language... ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
On 24/06/14 03:06 PM, Erick Tryzelaar wrote: I've been (very slowly) working on a pure rust build system (https://github.com/erickt/rbuild) that we might be able to someday use to do complex builds without needing other external language or build system. Well, +1 for that because it's very cool. However, I don't see a problem with depending on tooling like `make` in a portable library. In my opinion, the only sane way to do Rust development on Windows is via msys2. You get a sane development environment with a reasonable terminal and shell, along with a nice package manager for updating the whole thing along with installing / upgrading many libraries / tools from the msys2 repositories. It also makes it trivial to install tools like gdb, make, sed or python. Otherwise, you'll have the hopeless struggle of manually building tooling / libraries and dealing with upgrades / rebuilds yourself rather than through a package manager. The important part is for the produced binaries to be standalone, and mingw-w64 provides that. The only major weakness is the lack of compatibility with Windows C++ headers and the C++ ABI, although there is ongoing work towards providing that. Rust can't call into C++ directly anyway, so it's not an enormous obstacle. signature.asc Description: OpenPGP digital signature ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
[rust-dev] [ANN] Initial Alpha of Cargo
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@mozilla.org https://mail.mozilla.org/listinfo/rust-dev
Re: [rust-dev] [ANN] Initial Alpha of Cargo
There is an Ubuntu PPA available at https://launchpad.net/~cmrx64/+archive/cargo, for use on travis or otherwise. On Mon, Jun 23, 2014 at 10:50 PM, Yehuda Katz wyc...@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@mozilla.org https://mail.mozilla.org/listinfo/rust-dev -- http://octayn.net/ ___ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev