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

2014-06-24 Thread Petar Radosevic

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

2014-06-24 Thread György Andrasek

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

2014-06-24 Thread Huon Wilson

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

2014-06-24 Thread Sebastien Douche
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

2014-06-24 Thread György Andrasek

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

2014-06-24 Thread SiegeLord
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

2014-06-24 Thread John Mija


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

2014-06-24 Thread Diggory Hardy
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

2014-06-24 Thread Brian Anderson
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

2014-06-24 Thread Kevin Ballard
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

2014-06-24 Thread Erick Tryzelaar
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

2014-06-24 Thread Daniel Micay
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

2014-06-23 Thread Yehuda Katz
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

2014-06-23 Thread Corey Richardson
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