]> git.proxmox.com Git - cargo.git/log
cargo.git
9 years agoAdd --open flag to cargo doc
Pierre Krieger [Wed, 1 Oct 2014 06:53:05 +0000 (08:53 +0200)]
Add --open flag to cargo doc

10 years agoauto merge of #650 : plcstpierre/cargo/master, r=alexcrichton
bors [Tue, 30 Sep 2014 02:45:09 +0000 (02:45 +0000)]
auto merge of #650 : plcstpierre/cargo/master, r=alexcrichton

At least fixing https://github.com/alexcrichton/git2-rs/issues/10

10 years agoBump version of dependencies
Pier-Luc Caron St-Pierre [Tue, 30 Sep 2014 02:06:39 +0000 (22:06 -0400)]
Bump version of dependencies

10 years agoauto merge of #628 : alexcrichton/cargo/issue-537, r=brson
bors [Tue, 30 Sep 2014 00:00:10 +0000 (00:00 +0000)]
auto merge of #628 : alexcrichton/cargo/issue-537, r=brson

This is rebased on https://github.com/rust-lang/cargo/pull/617 as I wanted to use one of the functions added in the patch. Otherwise the details are in the commits.

10 years agoImprove the error message for ambiguous specs
Alex Crichton [Sat, 27 Sep 2014 04:45:51 +0000 (21:45 -0700)]
Improve the error message for ambiguous specs

10 years agoDeprecate `cargo update foo`
Alex Crichton [Sat, 27 Sep 2014 04:24:31 +0000 (21:24 -0700)]
Deprecate `cargo update foo`

To maintain consistency with `cargo {build,test,bench,clean}` the `update`
subcommand now takes a specific package via the `-p` argument instead of as a
positional argument.

10 years agoAdd cargo {test,bench} -p <spec>
Alex Crichton [Wed, 24 Sep 2014 01:10:27 +0000 (18:10 -0700)]
Add cargo {test,bench} -p <spec>

This functionality allows running tests and benchmarks on any upstream
dependencies in the dependency graph. This is most useful for path sources all
developed in tandem (see Servo for instance).

In terms of built artifacts, this will actually preserve as many artifacts as
possible. That means that if you test a low-level dependency with the high-level
artifacts already built, the high-level artifacts will not get removed. This
means that it's possible to accidentally have a low-level dependency to depend
on a higher level one just because it's lib is picked up via -L, but this is
generally a necessary evil to get testing to not rebuild packages too often.

Closes #483

10 years agoAllow specifying what to build as part of `cargo build`
Alex Crichton [Tue, 23 Sep 2014 16:16:25 +0000 (09:16 -0700)]
Allow specifying what to build as part of `cargo build`

This allows selectively building one dependency within a dependency graph for
debugging its build or such.

Closes #537

10 years agoAllow selectively cleaning packages
Alex Crichton [Tue, 23 Sep 2014 16:03:34 +0000 (09:03 -0700)]
Allow selectively cleaning packages

This adds a new argument to `cargo clean` which will enable selectively cleaning
particular packages. The command only cleans the package specified, no other
(not the dependencies of the package).

cc #537

10 years agoauto merge of #647 : dotdash/cargo/entry, r=alexcrichton
bors [Mon, 29 Sep 2014 14:00:13 +0000 (14:00 +0000)]
auto merge of #647 : dotdash/cargo/entry, r=alexcrichton

10 years agoUse the new Entry API for HashMaps
Björn Steinbrink [Mon, 29 Sep 2014 12:41:52 +0000 (14:41 +0200)]
Use the new Entry API for HashMaps

10 years agoauto merge of #645 : bkoropoff/cargo/fix-infinite-recursion, r=alexcrichton
bors [Sun, 28 Sep 2014 23:00:13 +0000 (23:00 +0000)]
auto merge of #645 : bkoropoff/cargo/fix-infinite-recursion, r=alexcrichton

Insert necessary explicit derefs.

10 years agoFix infinite recursion in CargoError impl for Box<CargoError>
Brian Koropoff [Sun, 28 Sep 2014 21:39:06 +0000 (14:39 -0700)]
Fix infinite recursion in CargoError impl for Box<CargoError>

Insert necessary explicit derefs.

10 years agoauto merge of #624 : alexcrichton/cargo/issue-484, r=wycats
bors [Thu, 25 Sep 2014 16:50:29 +0000 (16:50 +0000)]
auto merge of #624 : alexcrichton/cargo/issue-484, r=wycats

This commit adds a flag, --precise, to cargo update. This flag is used to update
a dependency to precisely an exact revision (or branch) as part of an update
step. For git repositories the argument is some form of reference, while
registry packages this will be a version number.

The flag --precise forces a non-aggressive update and will fail if the
--aggresive flag is specified.

Closes #484

r? @wycats

10 years agoAllow updating to a precise revision
Alex Crichton [Tue, 23 Sep 2014 14:30:16 +0000 (07:30 -0700)]
Allow updating to a precise revision

This commit adds a flag, --precise, to cargo update. This flag is used to update
a dependency to precisely an exact revision (or branch) as part of an update
step. For git repositories the argument is some form of reference, while
registry packages this will be a version number.

The flag --precise forces a non-aggressive update and will fail if the
--aggresive flag is specified.

Closes #484

10 years agoauto merge of #625 : alexcrichton/cargo/no-more-deprecated, r=brson
bors [Thu, 25 Sep 2014 15:51:37 +0000 (15:51 +0000)]
auto merge of #625 : alexcrichton/cargo/no-more-deprecated, r=brson

This flag has been deprecated in favor of `cargo update` for quite some time
now.

r? @brson

10 years agoauto merge of #635 : alexcrichton/cargo/update, r=alexcrichton
bors [Thu, 25 Sep 2014 15:40:30 +0000 (15:40 +0000)]
auto merge of #635 : alexcrichton/cargo/update, r=alexcrichton

Also stop denying all warnings and only deny some common warnings. Allow
warnings such as deprecation.

Closes #634

10 years agoUpdate to rust master
Alex Crichton [Thu, 25 Sep 2014 15:16:19 +0000 (08:16 -0700)]
Update to rust master

Also stop denying all warnings and only deny some common warnings. Allow
warnings such as deprecation.

Closes #634

10 years agoRemove the deprecated -u flag
Alex Crichton [Tue, 23 Sep 2014 14:33:23 +0000 (07:33 -0700)]
Remove the deprecated -u flag

This flag has been deprecated in favor of `cargo update` for quite some time
now.

10 years agoauto merge of #617 : alexcrichton/cargo/issue-597, r=brson
bors [Wed, 24 Sep 2014 23:45:16 +0000 (23:45 +0000)]
auto merge of #617 : alexcrichton/cargo/issue-597, r=brson

Ensure that the dynamic linker search path contains the location of the output
directories for these dependencies when compiling with plugins.

Closes #597

10 years agoauto merge of #632 : EduardoBautista/cargo/fix-width-in-safari, r=alexcrichton
bors [Wed, 24 Sep 2014 13:58:39 +0000 (13:58 +0000)]
auto merge of #632 : EduardoBautista/cargo/fix-width-in-safari, r=alexcrichton

Text is not responsive under 629px in Safari.

10 years agoauto merge of #627 : dotdash/cargo/rustup, r=alexcrichton
bors [Wed, 24 Sep 2014 09:13:40 +0000 (09:13 +0000)]
auto merge of #627 : dotdash/cargo/rustup, r=alexcrichton

10 years agoFit text within window in Safari when under 629px in width
Eduardo Bautista [Wed, 24 Sep 2014 06:33:35 +0000 (01:33 -0500)]
Fit text within window in Safari when under 629px in width

10 years agoFix building with current rustc
Björn Steinbrink [Tue, 23 Sep 2014 18:27:48 +0000 (20:27 +0200)]
Fix building with current rustc

10 years agoauto merge of #509 : alexcrichton/cargo/features, r=wycats
bors [Tue, 23 Sep 2014 01:53:52 +0000 (01:53 +0000)]
auto merge of #509 : alexcrichton/cargo/features, r=wycats

This feature was outlined in #385 [1], and documentation has been included as
part of this commit.

[1]: https://github.com/rust-lang/cargo/issues/385#issuecomment-53917539

Closes #385

10 years agoImplement `features`
Alex Crichton [Wed, 3 Sep 2014 18:52:47 +0000 (11:52 -0700)]
Implement `features`

This feature was outlined in #385 [1], and documentation has been included as
part of this commit.

[1]: https://github.com/rust-lang/cargo/issues/385#issuecomment-53917539

10 years agoauto merge of #618 : alexcrichton/cargo/issue-593, r=wycats
bors [Tue, 23 Sep 2014 01:34:57 +0000 (01:34 +0000)]
auto merge of #618 : alexcrichton/cargo/issue-593, r=wycats

This gives cargo a way to uniquely reference a package within a dependency graph. This is currently only used for `cargo update` and `cargo pkgid`, but this will extend in the future to possible configuration keys in the manifest, other commands like `clean`, etc.

Closes #593

10 years agoAdd some HTML docs for pkgid specs
Alex Crichton [Mon, 22 Sep 2014 00:59:19 +0000 (17:59 -0700)]
Add some HTML docs for pkgid specs

10 years agoAdd a pkgid id command and update docopt docs
Alex Crichton [Mon, 22 Sep 2014 00:42:46 +0000 (17:42 -0700)]
Add a pkgid id command and update docopt docs

10 years agoHook up `cargo update` to pkgids
Alex Crichton [Mon, 22 Sep 2014 00:22:26 +0000 (17:22 -0700)]
Hook up `cargo update` to pkgids

10 years agoImplement a package id specification format
Alex Crichton [Mon, 22 Sep 2014 00:11:36 +0000 (17:11 -0700)]
Implement a package id specification format

10 years agoauto merge of #614 : alexcrichton/cargo/issue-613, r=brson
bors [Mon, 22 Sep 2014 20:58:34 +0000 (20:58 +0000)]
auto merge of #614 : alexcrichton/cargo/issue-613, r=brson

As described in #613, this commit switches the semantics of `cargo update foo`
to updating *only* `foo`, not any of its dependencies. A new flag,
`--aggressive` was added to restore the old behavior.

The behavior of attempting to only unlock `foo`, and then if resolve fails
unlock all dependencies of `foo` is unimplemented as it's not super relevant
right now when the majority of dependencies are git dependencies and resolution
cannot fail for version-related reasons.

Closes #613

10 years agoauto merge of #622 : steveklabnik/cargo/update_semver, r=alexcrichton
bors [Mon, 22 Sep 2014 18:58:36 +0000 (18:58 +0000)]
auto merge of #622 : steveklabnik/cargo/update_semver, r=alexcrichton

This closes the loop on my work of getting semver related stuff out of cargo.

This is also built on top of my other PR, so it's not really ready until that actually merges. But it can stand for review now :)

10 years agoauto merge of #623 : alexcrichton/cargo/update_to_head, r=alexcrichton
bors [Mon, 22 Sep 2014 18:20:24 +0000 (18:20 +0000)]
auto merge of #623 : alexcrichton/cargo/update_to_head, r=alexcrichton

10 years agoDon't use a bundled gcc on windows
Alex Crichton [Mon, 22 Sep 2014 18:18:18 +0000 (11:18 -0700)]
Don't use a bundled gcc on windows

10 years agoRemove version_req.rs in favor of SemVer.
Steve Klabnik [Mon, 22 Sep 2014 17:09:27 +0000 (13:09 -0400)]
Remove version_req.rs in favor of SemVer.

This removes all of the stuff that was in Cargo but should have been in
SemVer, as far as I know.  :confetti-ball:

10 years agomove to new interface
Steve Klabnik [Mon, 22 Sep 2014 16:52:41 +0000 (12:52 -0400)]
move to new interface

10 years agoupdate semver to 0.1.0
Steve Klabnik [Mon, 22 Sep 2014 16:39:33 +0000 (12:39 -0400)]
update semver to 0.1.0

10 years agoupdate to HEAD
Steve Klabnik [Mon, 22 Sep 2014 16:27:36 +0000 (12:27 -0400)]
update to HEAD

10 years agoauto merge of #616 : iliekturtles/cargo/patch-2, r=alexcrichton
bors [Mon, 22 Sep 2014 01:13:37 +0000 (01:13 +0000)]
auto merge of #616 : iliekturtles/cargo/patch-2, r=alexcrichton

Closes #615.

Current links are 404. Updated to the i686-w64 nightlies.

10 years agoAllow plugins to have native dylib dependencies
Alex Crichton [Sun, 21 Sep 2014 22:15:00 +0000 (15:15 -0700)]
Allow plugins to have native dylib dependencies

Ensure that the dynamic linker search path contains the location of the output
directories for these dependencies when compiling with plugins.

Closes #597

10 years agoFix Rust and Cargo nightly Windows links.
Mike Boutin [Sun, 21 Sep 2014 22:07:18 +0000 (18:07 -0400)]
Fix Rust and Cargo nightly Windows links.

Closes #615.

10 years agoauto merge of #605 : brson/cargo/https, r=alexcrichton
bors [Sun, 21 Sep 2014 21:39:47 +0000 (21:39 +0000)]
auto merge of #605 : brson/cargo/https, r=alexcrichton

10 years agoMake `cargo update` more conservative.
Alex Crichton [Sun, 21 Sep 2014 21:27:30 +0000 (14:27 -0700)]
Make `cargo update` more conservative.

As described in #613, this commit switches the semantics of `cargo update foo`
to updating *only* `foo`, not any of its dependencies. A new flag,
`--aggressive` was added to restore the old behavior.

The behavior of attempting to only unlock `foo`, and then if resolve fails
unlock all dependencies of `foo` is unimplemented as it's not super relevant
right now when the majority of dependencies are git dependencies and resolution
cannot fail for version-related reasons.

Closes #613

10 years agoauto merge of #612 : alexcrichton/cargo/nocapture, r=wycats
bors [Sun, 21 Sep 2014 21:19:06 +0000 (21:19 +0000)]
auto merge of #612 : alexcrichton/cargo/nocapture, r=wycats

There are some competing concerns when it comes to the output of compiling
dependencies:

* Not capturing anything leads to getting drowned in unrelated output
* Capturing requires coloration be compromised because of the way windows
  terminal colors are implemented.
* Path dependencies are often developed in tandem with the rest of a package,
  and capturing their output is not always desired.

To address these concerns, cargo previously captured output of dependent
compilations and then re-printed it to the screen if an error occurred. This
patch modifies the behavior to as follows:

* No output is captured. This preserves any coloration rustc provides.
* All dependencies are compiled with `-Awarnings`. This should suppress any
  extraneous output from the compiler and it is considered a bug otherwise if
  the compiler prints a warnings when `-Awarnings` is specified.
* All *path* dependencies (`path="..."`, overrides, etc) are *not* compiled with
  `-Awarnings`. The reason for this is that you are always in control of these
  packages and probably want to see warnings anyway.

Closes #490
Closes #496

10 years agoStop capturing output of all dependencies
Alex Crichton [Sun, 21 Sep 2014 17:22:46 +0000 (10:22 -0700)]
Stop capturing output of all dependencies

There are some competing concerns when it comes to the output of compiling
dependencies:

* Not capturing anything leads to getting drowned in unrelated output
* Capturing requires coloration be compromised because of the way windows
  terminal colors are implemented.
* Path dependencies are often developed in tandem with the rest of a package,
  and capturing their output is not always desired.

To address these concerns, cargo previously captured output of dependent
compilations and then re-printed it to the screen if an error occurred. This
patch modifies the behavior to as follows:

* No output is captured. This preserves any coloration rustc provides.
* All dependencies are compiled with `-Awarnings`. This should suppress any
  extraneous output from the compiler and it is considered a bug otherwise if
  the compiler prints a warnings when `-Awarnings` is specified.
* All *path* dependencies (`path="..."`, overrides, etc) are *not* compiled with
  `-Awarnings`. The reason for this is that you are always in control of these
  packages and probably want to see warnings anyway.

Closes #490
Closes #496

10 years agoauto merge of #611 : alexcrichton/cargo/update, r=alexcrichton
bors [Sun, 21 Sep 2014 20:31:12 +0000 (20:31 +0000)]
auto merge of #611 : alexcrichton/cargo/update, r=alexcrichton

10 years agoUpdate to rust master
Alex Crichton [Sun, 21 Sep 2014 16:27:08 +0000 (09:27 -0700)]
Update to rust master

10 years agoauto merge of #604 : klutzy/cargo/win-make-install, r=alexcrichton
bors [Fri, 19 Sep 2014 18:14:37 +0000 (18:14 +0000)]
auto merge of #604 : klutzy/cargo/win-make-install, r=alexcrichton

Since `Makefile` passes `--destdir="$$(DESTDIR)/"` to `install.sh`,
`make install` tries to install libraries to
`$CFG_DESTDIR$CFG_PREFIX/$CFG_LIBDIR_RELATIVE` which is usually
`//path/to/usr/$CFG_LIBDIR_RELATIVE`.

The POSIX spec [1] states that if path begins with `//` it is
implementation-defined.
Usual systems treat them as normal abaolute path, but cygwin and MSYS
does not! They use `//hostname/path` syntax for network drives.
This caused `make install` issue on Windows.

This patch removes `/` of destdir to solve the issue.

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_12

10 years agoauto merge of #591 : alexcrichton/cargo/snapshots, r=alexcrichton
bors [Fri, 19 Sep 2014 17:39:25 +0000 (17:39 +0000)]
auto merge of #591 : alexcrichton/cargo/snapshots, r=alexcrichton

10 years agoRegister new snapshots
Alex Crichton [Fri, 19 Sep 2014 17:04:39 +0000 (10:04 -0700)]
Register new snapshots

Closes #606
Closes #607

10 years agoChange downloads to HTTPS
Brian Anderson [Fri, 19 Sep 2014 02:16:19 +0000 (19:16 -0700)]
Change downloads to HTTPS

10 years agoFix `make install` on Windows
klutzy [Thu, 18 Sep 2014 17:34:35 +0000 (02:34 +0900)]
Fix `make install` on Windows

Since `Makefile` passes `--destdir="$$(DESTDIR)/"` to `install.sh`,
`make install` tries to install libraries to
`$CFG_DESTDIR$CFG_PREFIX/$CFG_LIBDIR_RELATIVE` which is usually
`//path/to/usr/$CFG_LIBDIR_RELATIVE`.

The POSIX spec [1] states that if path begins with `//` it is
implementation-defined.
Usual systems treat them as normal abaolute path, but cygwin and MSYS
does not! They use `//hostname/path` syntax for network drives.
This caused `make install` issue on Windows.

This patch removes `/` of destdir to solve the issue.

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_12

10 years agoauto merge of #603 : brson/cargo/win, r=alexcrichton,alexcrichton,me
bors [Fri, 19 Sep 2014 01:43:36 +0000 (01:43 +0000)]
auto merge of #603 : brson/cargo/win, r=alexcrichton,alexcrichton,me

10 years agoauto merge of #600 : alexcrichton/cargo/update-ssl, r=brson
bors [Fri, 19 Sep 2014 00:58:38 +0000 (00:58 +0000)]
auto merge of #600 : alexcrichton/cargo/update-ssl, r=brson

This *should* help with #598, but I'd like to confirm that it's fixed with a
snapshot before marking it as fixed.

10 years agoauto merge of #596 : alexcrichton/cargo/update-git2, r=brson
bors [Thu, 18 Sep 2014 23:58:40 +0000 (23:58 +0000)]
auto merge of #596 : alexcrichton/cargo/update-git2, r=brson

This brings in a commit which enables global template options by default as part
of initializing new git repositories, allowing a templates to be used as part of
`cargo new`.

Closes #498

10 years agoUpdate windows downloads
Brian Anderson [Thu, 18 Sep 2014 23:57:29 +0000 (16:57 -0700)]
Update windows downloads

10 years agoauto merge of #599 : epdtry/cargo/profile-codegen-units, r=alexcrichton
bors [Thu, 18 Sep 2014 18:43:40 +0000 (18:43 +0000)]
auto merge of #599 : epdtry/cargo/profile-codegen-units, r=alexcrichton

If the profile sets `codegen-units`, the value will be passed to `rustc`'s `-C codegen-units` option.  If no value is set, then no argument will be passed, so `rustc` will use its default settings.

10 years agoUpdate openssl-static-sys for ubuntu 10.04
Alex Crichton [Thu, 18 Sep 2014 17:56:38 +0000 (10:56 -0700)]
Update openssl-static-sys for ubuntu 10.04

This *should* help with #598, but I'd like to confirm that it's fixed with a
snapshot before marking it as fixed.

10 years agoadd codegen-units option to profile section
Stuart Pernsteiner [Thu, 18 Sep 2014 17:49:43 +0000 (10:49 -0700)]
add codegen-units option to profile section

10 years agoUpdate git2-rs
Alex Crichton [Thu, 18 Sep 2014 15:51:00 +0000 (08:51 -0700)]
Update git2-rs

This brings in a commit which enables global template options by default as part
of initializing new git repositories, allowing a templates to be used as part of
`cargo new`.

Closes #498

10 years agoauto merge of #589 : alexcrichton/cargo/fix-win64, r=alexcrichton
bors [Wed, 17 Sep 2014 20:15:50 +0000 (20:15 +0000)]
auto merge of #589 : alexcrichton/cargo/fix-win64, r=alexcrichton

See comments in the makefile

10 years agoSet PWD in a unix fashion for distcheck
Alex Crichton [Wed, 17 Sep 2014 19:30:58 +0000 (12:30 -0700)]
Set PWD in a unix fashion for distcheck

See comments in the makefile

10 years agoauto merge of #586 : alexcrichton/cargo/fix-win64, r=brson
bors [Wed, 17 Sep 2014 17:43:29 +0000 (17:43 +0000)]
auto merge of #586 : alexcrichton/cargo/fix-win64, r=brson

Right now the win64 snapshot builders are failing to produce a snapshot, and
I've managed to track it down to a path length issue. Windows paths have a
maximum of 260 characters, and the characters add up pretty fast for a path
like:

    c:\bot\slave\cargo-nightly-win-64
      \build\target\x86_64-w64-mingw32
      \cargo-integration-test\home\.cargo
      \git\checkouts\meta-dep-<hash>\
      \$SHA\.git\...

The normal builders aren't failing I presume because `cargo-nightly-win-64` is
longer than `cargo-win64-64` (we must be *right up* against the limit). I've
confirmed that this shortening fixes the tests on the bots.

10 years agoShorten the cargo integration test directory name
Alex Crichton [Wed, 17 Sep 2014 15:30:35 +0000 (08:30 -0700)]
Shorten the cargo integration test directory name

Right now the win64 snapshot builders are failing to produce a snapshot, and
I've managed to track it down to a path length issue. Windows paths have a
maximum of 260 characters, and the characters add up pretty fast for a path
like:

    c:\bot\slave\cargo-nightly-win-64
      \build\target\x86_64-w64-mingw32
      \cargo-integration-test\home\.cargo
      \git\checkouts\meta-dep-<hash>\
      \$SHA\.git\...

The normal builders aren't failing I presume because `cargo-nightly-win-64` is
longer than `cargo-win64-64` (we must be *right up* against the limit). I've
confirmed that this shortening fixes the tests on the bots.

10 years agoFix some more deprecation warnings
Alex Crichton [Wed, 17 Sep 2014 15:27:41 +0000 (08:27 -0700)]
Fix some more deprecation warnings

10 years agoauto merge of #585 : alexcrichton/cargo/update, r=alexcrichton
bors [Wed, 17 Sep 2014 13:55:31 +0000 (13:55 +0000)]
auto merge of #585 : alexcrichton/cargo/update, r=alexcrichton

10 years agoUpdate the toml dependency
Alex Crichton [Wed, 17 Sep 2014 13:52:40 +0000 (06:52 -0700)]
Update the toml dependency

10 years agoUpdate to new iter names to fix building with current rustc
Björn Steinbrink [Wed, 17 Sep 2014 09:08:27 +0000 (11:08 +0200)]
Update to new iter names to fix building with current rustc

10 years agoauto merge of #583 : alexcrichton/cargo/local-cargo, r=brson
bors [Wed, 17 Sep 2014 03:39:40 +0000 (03:39 +0000)]
auto merge of #583 : alexcrichton/cargo/local-cargo, r=brson

10 years agoContinue to tweak the win64 build process on the bots
Alex Crichton [Wed, 17 Sep 2014 03:31:20 +0000 (20:31 -0700)]
Continue to tweak the win64 build process on the bots

10 years agoAdd an option to bootstrap from a local cargo
Alex Crichton [Wed, 17 Sep 2014 01:49:18 +0000 (18:49 -0700)]
Add an option to bootstrap from a local cargo

10 years agoauto merge of #580 : alexcrichton/cargo/fix-cargo-doc, r=brson
bors [Wed, 17 Sep 2014 00:28:36 +0000 (00:28 +0000)]
auto merge of #580 : alexcrichton/cargo/fix-cargo-doc, r=brson

There's no "doc-all" profile, so it needs to be canonicalized when finding the
name of the profile to pass to a build command.

10 years agoauto merge of #570 : alexcrichton/cargo/fetch, r=brson
bors [Tue, 16 Sep 2014 23:33:21 +0000 (23:33 +0000)]
auto merge of #570 : alexcrichton/cargo/fetch, r=brson

This command is used to download all dependencies of a package ahead of time to
ensure that no more network communication will be necessary as part of a build.

cc #358

10 years agoImplement a `cargo fetch` command
Alex Crichton [Thu, 11 Sep 2014 18:50:57 +0000 (11:50 -0700)]
Implement a `cargo fetch` command

This command is used to download all dependencies of a package ahead of time to
ensure that no more network communication will be necessary as part of a build.

cc #358

10 years agoauto merge of #541 : alexcrichton/cargo/cargo-upload, r=brson
bors [Tue, 16 Sep 2014 22:49:51 +0000 (22:49 +0000)]
auto merge of #541 : alexcrichton/cargo/cargo-upload, r=brson

This PR implements the plumbing necessary for uploading packages to a registry, downloading packages, depending on those packages, etc. All APIs (upload/download) are tied to the current implementation of [the registry](https://github.com/alexcrichton/cargo-registry).

Most of the design-level details in this PR are in the first commit. The later commits are largely adding tests, polishing it off, and making it work on windows.

Dependency-wise, this picks up a dependency on `curl-rust`, albeit a small fork until the upstream linkage changes are merged. Linkage details can be found [here](https://github.com/carllerche/curl-rust/pull/16). I'll probably have to do some configuration of the bots to get this to work (or hopefully not!).

r? @wycats

10 years agoTweak filesystem hierarchy format
Alex Crichton [Tue, 16 Sep 2014 22:11:47 +0000 (15:11 -0700)]
Tweak filesystem hierarchy format

10 years agoTweak the 32-bit windows triple
Alex Crichton [Tue, 16 Sep 2014 19:05:37 +0000 (12:05 -0700)]
Tweak the 32-bit windows triple

10 years agoFix cargo doc with custom build commands
Alex Crichton [Tue, 16 Sep 2014 14:47:39 +0000 (07:47 -0700)]
Fix cargo doc with custom build commands

There's no "doc-all" profile, so it needs to be canonicalized when finding the
name of the profile to pass to a build command.

10 years agoUpdate deps
Alex Crichton [Thu, 11 Sep 2014 23:57:25 +0000 (16:57 -0700)]
Update deps

10 years agoFix tests on windows
Alex Crichton [Tue, 9 Sep 2014 19:35:31 +0000 (12:35 -0700)]
Fix tests on windows

10 years agoUse a different curl-rust for now
Alex Crichton [Tue, 9 Sep 2014 14:41:20 +0000 (07:41 -0700)]
Use a different curl-rust for now

Waiting on fixes to be merged upstream

10 years agoMore and more tests (cargo upload)
Alex Crichton [Tue, 9 Sep 2014 14:23:09 +0000 (07:23 -0700)]
More and more tests (cargo upload)

10 years agoAdd tests exercising the registry source
Alex Crichton [Tue, 9 Sep 2014 05:26:14 +0000 (22:26 -0700)]
Add tests exercising the registry source

10 years agoAdd proxy configurations
Alex Crichton [Tue, 9 Sep 2014 02:38:32 +0000 (19:38 -0700)]
Add proxy configurations

10 years agoTest the output of `cargo package`
Alex Crichton [Tue, 9 Sep 2014 02:38:16 +0000 (19:38 -0700)]
Test the output of `cargo package`

10 years agoImplement Sha256 bindings
Alex Crichton [Mon, 8 Sep 2014 23:01:38 +0000 (16:01 -0700)]
Implement Sha256 bindings

These are used to verify the downloads of packages from the registry.

10 years agoImplement a registry source
Alex Crichton [Fri, 18 Jul 2014 15:40:45 +0000 (08:40 -0700)]
Implement a registry source

# cargo upload

The cargo-upload command will take the local package and upload it to the
specified registry. The local package is uploaded as a tarball compressed with
gzip under maximum compression. Most of this is done by just delegating to
`cargo package` The host to upload to is specified, in order of priority, by a
command line `--host` flag, the `registry.host` config key, and then the default
registry. The default registry is still `example.com`

The registry itself is still a work in progress, but the general plumbing for a
command such as this would look like:

1. Ensure the local package has been compressed into an archive.
2. Fetch the relevant registry and login token from config files.
3. Ensure all dependencies for a package are listed as coming from the same
   registry.
4. Upload the archive to the registry with the login token.
5. The registry will verify the package is under 2MB (configurable).
6. The registry will upload the archive to S3, calculating a checksum in the
   process.
7. The registry will add an entry to the registry's index (a git repository).
   The entry will include the name of the package, the version uploaded, the
   checksum of the upload, and then the list of dependencies (name/version req)
8. The local `cargo upload` command will succeed.

# cargo login

Uploading requires a token from the api server, and this token follows the same
config chain for the host except that there is no fallback. To implement login,
the `cargo login` command is used. With 0 arguments, the command will request
that a site be visited for a login token, and with an argument it will set the
argument as the new login token.

The `util::config` module was modified to allow writing configuration as well as
reading it. The support is a little lacking in that comments are blown away, but
the support is there at least.

# RegistrySource

An implementation of `RegistrySource` has been created (deleting the old
`DummyRegistrySource`). This implementation only needs a URL to be constructed,
and it is assumed that the URL is running an instance of the cargo registry.

## RegistrySource::update

Currently this will unconditionally update the registry's index (a git
repository). Tuning is necessary to prevent updating the index each time (more
coming soon).

## RegistrySource::query

This is called in the resolve phase of cargo. This function is given a
dependency to query for, and the source will simply look into the index to see
if any package with the name is present. If found, the package's index file will
be loaded and parsed into a list of summaries.

The main optimization of this function is to not require the entire registry to
ever be resident in memory. Instead, only necessary packages are loaded into
memory and parsed.

## RegistrySource::download

This is also called during the resolve phase of cargo, but only when a package
has been selected to be built (actually resolved). This phase of the source will
actually download and unpack the tarball for the package.

Currently a configuration file is located in the root of a registry's index
describing the root url to download packages from.

This function is optimized for two different metrics:

1. If a tarball is downloaded, it is not downloaded again. It is assumed that
   once a tarball is successfully downloaded it will never change.
2. If the unpacking destination has a `.cargo-ok` file, it is assumed that the
   unpacking has already occurred and does not need to happen again.

With these in place, a rebuild should take almost no time at all.

## RegistrySource::get

This function is simply implemented in terms of a PathSource's `get` function by
creating a `PathSource` for all unpacked tarballs as part of the `download`
stage.

## Filesystem layout

There are a few new directories as part of the `.cargo` home folder:

* `.cargo/registry/index/$hostname-$hash` - This is the directory containing the
  actual index of the registry. `$hostname` comes from its url, and `$hash` is
  the hash of the entire url.

* `.cargo/registry/cache/$hostname-$hash/$pkg-$vers.tar.gz` - This is a
  directory used to cache the downloads of packages from the registry.

* `.cargo/registry/src/$hostname-$hash/$pkg-$vers` - This is the location of the
  unpacked packages. They will be compiled from this location.

# New Dependencies

Cargo has picked up a new dependency on the `curl-rust` package in order to send
HTTP requests to the registry as well as send HTTP requests to download
tarballs.

10 years agoauto merge of #581 : alexcrichton/cargo/manpage, r=brson
bors [Tue, 16 Sep 2014 17:43:43 +0000 (17:43 +0000)]
auto merge of #581 : alexcrichton/cargo/manpage, r=brson

Closes #578

10 years agoAdd a manpage
Alex Crichton [Tue, 16 Sep 2014 16:38:35 +0000 (09:38 -0700)]
Add a manpage

Closes #578

10 years agoauto merge of #558 : alexcrichton/cargo/issue-553, r=brson
bors [Mon, 15 Sep 2014 19:13:42 +0000 (19:13 +0000)]
auto merge of #558 : alexcrichton/cargo/issue-553, r=brson

10 years agoPass profile env vars to build commands
Alex Crichton [Thu, 11 Sep 2014 15:09:47 +0000 (08:09 -0700)]
Pass profile env vars to build commands

Closes #553

10 years agoRun tests with the --target flag
Alex Crichton [Thu, 11 Sep 2014 15:01:41 +0000 (08:01 -0700)]
Run tests with the --target flag

10 years agoauto merge of #574 : rust-lang/cargo/fix-win64, r=brson
bors [Mon, 15 Sep 2014 17:44:47 +0000 (17:44 +0000)]
auto merge of #574 : rust-lang/cargo/fix-win64, r=brson

These commits fix all tests and installation utilities on win64. I've confirmed that these are a green build on the bots.

10 years agoRewrite git tests to not rely on the CLI
Alex Crichton [Fri, 12 Sep 2014 15:02:14 +0000 (08:02 -0700)]
Rewrite git tests to not rely on the CLI

The CLI has started to have differences on windows than on other systems, and
instead of coding against multiple CLI versions, instead just rewrite everything
to use libgit2.

10 years agoauto merge of #537 : markberger/cargo/510-hg-flag, r=alexcrichton
bors [Mon, 15 Sep 2014 16:43:46 +0000 (16:43 +0000)]
auto merge of #537 : markberger/cargo/510-hg-flag, r=alexcrichton

Allows the client to initialize a mercurial repo when creating a new cargo project with `cargo new --hg`. This would close #510.

This is my first time writing code in rust outside of a toy program so please feel free to tear it apart or suggest an alternative solution.

10 years agoTweak the install script for windows nightlies
Alex Crichton [Fri, 12 Sep 2014 03:06:39 +0000 (20:06 -0700)]
Tweak the install script for windows nightlies

10 years agoauto merge of #576 : alexcrichton/cargo/update, r=alexcrichton
bors [Mon, 15 Sep 2014 15:35:26 +0000 (15:35 +0000)]
auto merge of #576 : alexcrichton/cargo/update, r=alexcrichton

10 years agoUpdate to rust master
Alex Crichton [Mon, 15 Sep 2014 15:31:21 +0000 (08:31 -0700)]
Update to rust master

10 years agoCreate hg repo with --hg flag on cargo new
Mark J. Berger [Fri, 5 Sep 2014 15:23:57 +0000 (08:23 -0700)]
Create hg repo with --hg flag on cargo new