On 01/28/2014 04:33 AM, Lee Braiden wrote:
On 28/01/14 08:36, György Andrasek wrote:
I never quite understood the problem `rustpkg` was meant to solve. For
building Rust code, `rustc --out-dir build` is good enough. For
running tests and benchmarks, `rustc` is good enough. For downloading
things, I still need to feed it a github address, which kinda takes
away any value it could have over `git clone` or git submodules.
What I would actually need from a build system, i.e. finding
{C,C++,Rust} libraries, building {C,C++,Rust} libraries/executables
and linking them to said {C,C++,Rust} libraries, it doesn't do. It
also doesn't bootstrap rustc.
I agree with this. What I'd want is much more like apt (add
repositories, update lists of available packages from those
repositories, manage priorities between repositories, say that one
repository should be preferred over another for a particular package,
working in specific prefixes (/usr/local, /usr, /,
~/Projects/something-requiring-old-libs), but rust-specific and platform
independent.
Have you ever used Composer https://getcomposer.org/? I know that
Jordi Boggiano, one of the authors, has been involved with the Rust
community in the past. Some Composer features that I think are critical
for the new Rust package manager include:
- Tags and branches are automatically recognized from git to create
versions.
- Version specifiers aren't just limited to this version exactly, but
allow you to match on a range of versions (though Semantic Versioning is
encouraged).
- Packages have vendor prefixes (like rust/flate or
leafstorm/mycoollibrary) to help avoid name conflicts and allow for
forking, but these aren't linked to the way packages are retrieved.
- There's a central repository, but it's really easy to add random git
repositories to the composer.json, or to create your own repositories
for internal use.
- It automatically generates a lock file that allows you to reinstall
exactly the same versions of the dependencies across machines.
- Everything is installed per-project, so no conflicts across projects.
(Though the new rustpkg may want to not do this exactly because of
compile times.)
If I had more time and more Rust experience, I would be interested in
implementing a Composer-like package manager for Rust. Unfortunately I
have little of both. :-(
--
Thanks,
Matthew Frazier
http://leafstorm.us
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev