]> git.proxmox.com Git - cargo.git/log
cargo.git
8 years agoAuto merge of #2456 - jespino:remove-deprecated-code, r=alexcrichton
bors [Wed, 9 Mar 2016 17:33:06 +0000 (09:33 -0800)]
Auto merge of #2456 - jespino:remove-deprecated-code, r=alexcrichton

Remove deprecated usage of SliceConcatExt::connect

I think this can be changed to .join (the deprecation was in the 1.3 version)

8 years agoAuto merge of #2455 - jespino:remove-completed-todo, r=alexcrichton
bors [Wed, 9 Mar 2016 17:20:11 +0000 (09:20 -0800)]
Auto merge of #2455 - jespino:remove-completed-todo, r=alexcrichton

Removing finished TODO

I think this TODO is finished (The only public field in all the file is the Layout::path) If this is part of the TODO, i can set it as private and create a getter).

8 years agoRemove deprecated usage of SliceConcatExt::connect
Jesús Espino [Wed, 9 Mar 2016 08:12:57 +0000 (09:12 +0100)]
Remove deprecated usage of SliceConcatExt::connect

8 years agoRemoving finished TODO
Jesús Espino [Wed, 9 Mar 2016 08:18:23 +0000 (09:18 +0100)]
Removing finished TODO

8 years agoAuto merge of #2450 - jespino:remove-unwraps-crates-io, r=alexcrichton
bors [Tue, 8 Mar 2016 20:45:10 +0000 (12:45 -0800)]
Auto merge of #2450 - jespino:remove-unwraps-crates-io, r=alexcrichton

Remove unwraps from crates-io lib

8 years agoAuto merge of #2449 - jespino:multiple-search-params, r=alexcrichton
bors [Tue, 8 Mar 2016 19:59:05 +0000 (11:59 -0800)]
Auto merge of #2449 - jespino:multiple-search-params, r=alexcrichton

Multiple search params

8 years agoAllow multiple search query params
Jesús Espino [Tue, 8 Mar 2016 08:27:09 +0000 (09:27 +0100)]
Allow multiple search query params

8 years agoRemove unwraps from crates-io lib
Jesús Espino [Tue, 8 Mar 2016 16:40:39 +0000 (17:40 +0100)]
Remove unwraps from crates-io lib

8 years agoAuto merge of #2444 - jespino:issue-2402-2, r=alexcrichton
bors [Tue, 8 Mar 2016 16:10:18 +0000 (08:10 -0800)]
Auto merge of #2444 - jespino:issue-2402-2, r=alexcrichton

Adding --limit usage suggestion on search results (#2402)

8 years agoAdding --limit usage suggestion on search results (#2402)
Jesús Espino [Mon, 7 Mar 2016 08:19:40 +0000 (09:19 +0100)]
Adding --limit usage suggestion on search results (#2402)

8 years agoAuto merge of #2435 - alexcrichton:docs, r=alexcrichton
bors [Mon, 7 Mar 2016 21:10:05 +0000 (21:10 +0000)]
Auto merge of #2435 - alexcrichton:docs, r=alexcrichton

The API docs for Cargo live at doc.crates.io/cargo, not doc.crates.io in
general.

8 years agoAuto merge of #2439 - jespino:issue-2402, r=alexcrichton
bors [Sun, 6 Mar 2016 18:18:40 +0000 (18:18 +0000)]
Auto merge of #2439 - jespino:issue-2402, r=alexcrichton

8 years agoAdd limit parameter to search command (fix issue #2402)
Jesús Espino [Fri, 4 Mar 2016 17:34:30 +0000 (18:34 +0100)]
Add limit parameter to search command (fix issue #2402)

8 years agoAuto merge of #2438 - jseyfried:subcommands, r=alexcrichton
bors [Fri, 4 Mar 2016 18:22:25 +0000 (18:22 +0000)]
Auto merge of #2438 - jseyfried:subcommands, r=alexcrichton

This PR moves the subcommands in `src/bin` into their own directory and ensures future compatibility with the corrected search paths for non-inline modules (see [Rust PR #32006](https://github.com/rust-lang/rust/pull/32006)).
r? @alexcrichton

8 years agoEnsure future compatibility with fixed module search paths (see rust PR #32006)
Jeffrey Seyfried [Fri, 4 Mar 2016 18:18:06 +0000 (18:18 +0000)]
Ensure future compatibility with fixed module search paths (see rust PR #32006)

8 years agoAuto merge of #2423 - alexcrichton:fix-pkgid-hash, r=brson
bors [Fri, 4 Mar 2016 00:56:13 +0000 (00:56 +0000)]
Auto merge of #2423 - alexcrichton:fix-pkgid-hash, r=brson

All crates being compiled by Cargo are identified by a unique `PackageId` instance. This ID incorporates information such as the name, version, and source from where the crate came from. Package ids are allowed to have path sources to depend on local crates on the filesystem. The package id itself encodes the path of where the crate came from.

Historically, however, the "path source" from where these packages are learned had some interesting logic. Specifically one specific source would be able to return many packages within. In other words, a path source would recursively walk crate definitions and the filesystem attempting to find crates. Each crate returned from a source has the same source id, so consequently all packages from one source path would have the same source path id.

This in turn leads to confusing an surprising behavior, for example:

* When crates are compiled the status message indicates the path of the crate root, not the crate being compiled
* When viewed from two different locations (e.g. two different crate roots) the same package would have two different source ids because the id is based on the root location.

This hash mismatch has been [papered over](https://github.com/rust-lang/cargo/pull/1697) in the past to try to fix some spurious recompiles, but it unfortunately [leaked back in](https://github.com/rust-lang/cargo/pull/2279). This is clearly indicative of the "hack" being inappropriate so instead these commits fix the root of the problem.

---

In short, these commits ensure that the package id for a package defined locally has a path that points precisely at that package. This was a relatively invasive change and had ramifications on a few specific portions which now require a bit of extra code to support.

The fundamental change here was to change `PathSource` to be non-recursive by default in terms of what packages it thinks it contains. There are still two recursive use cases, git repositories and path overrides, which are used for backwards compatibility. This meant, however, that the packaging step for crate no longer has knowledge of other crates in a repository to filter out files from. Some specific logic was added to assist in discovering a git repository as well as filtering out sibling packages.

Another ramification of this patch, however, is that special care needs to be taken when decoding a lockfile. We now need all path dependencies in the lockfile to point precisely at where the path dependency came from, and this information is not encoded in the lock file. The decoding support was altered to do a simple probe of the filesystem to recursively walk path dependencies to ensure that we can match up packages in a lock file to where they're found on the filesystem.

Overall, however, this commit closes #1697 and also addresses servo/servo#9794 where this issue was originally reported.

8 years agoAdd a regression test for the issue being fixed
Alex Crichton [Tue, 1 Mar 2016 16:25:22 +0000 (08:25 -0800)]
Add a regression test for the issue being fixed

When compiling a package from two separate locations it should be cached the
same way both times.

8 years agoFix all tests with recent changes
Alex Crichton [Tue, 1 Mar 2016 16:24:43 +0000 (08:24 -0800)]
Fix all tests with recent changes

The package id for path dependencies now has another path component pointing
precisely to the package being compiled, so lots of tests need their output
matches to get updated.

8 years agoFix some packaging logic in path sources
Alex Crichton [Tue, 1 Mar 2016 16:20:16 +0000 (08:20 -0800)]
Fix some packaging logic in path sources

Currently the packaging logic depends on the old recursive nature of path
sources for a few points:

* Discovery of a git repository of a package.
* Filtering out of sibling packages for only including the right set of files.

For a non-recursive path source (now essentially the default) we can no longer
assume that we have a listing of all packages. Subsequently this logic was
tweaked to allow:

* Instead of looking for packages at the root of a repo, we instead look for a
  Cargo.toml at the root of a git repository.
* We keep track of all Cargo.toml files found in a repository and prune out all
  files which appear to be ancestors of that package.

8 years agoFix decoding lock files with path dependencies
Alex Crichton [Tue, 1 Mar 2016 06:20:47 +0000 (22:20 -0800)]
Fix decoding lock files with path dependencies

With the previous changes a path dependency must have the precise path to it
listed in its package id. Currently when decoding a lockfile, however, all path
dependencies have the same package id, which unfortunately causes a mismatch.

This commit alters the decoding of a lockfile to perform some simple path
traversals to probe the filesystem to understand where path dependencies are and
set the right package id for the found packages.

8 years agoEnsure overrides use recursive path sources
Alex Crichton [Tue, 1 Mar 2016 06:19:24 +0000 (22:19 -0800)]
Ensure overrides use recursive path sources

This mirrors the behavior that they have today. The `load` method for path
sources will by default return a non-recursive `PathSource` which unfortunately
isn't what we want here.

8 years agoRemove hacks when hashing package ids
Alex Crichton [Tue, 1 Mar 2016 06:17:28 +0000 (22:17 -0800)]
Remove hacks when hashing package ids

Right now there's a few hacks here and there to "correctly" hash package ids by
taking a package's root path into account instead of the path store in the
package id. The purpose of this was to solve issues where the same package
referenced from two locations ended up having two different hashes.

This hack leaked, however, into the implementation of fingerprints which in
turned ended up causing spurious rebuilds. Fix this problem once and for all by
just defining hashing on package ids the natural and expected way.

8 years agoRemove usage of PathSource::for_path
Alex Crichton [Tue, 1 Mar 2016 06:13:11 +0000 (22:13 -0800)]
Remove usage of PathSource::for_path

This does much more I/O than Package::for_path and this is also on its way out.

8 years agoUpdate documentation link for API docs
Alex Crichton [Thu, 3 Mar 2016 21:09:52 +0000 (13:09 -0800)]
Update documentation link for API docs

The API docs for Cargo live at doc.crates.io/cargo, not doc.crates.io in
general.

8 years agoAuto merge of #2434 - alexcrichton:bump, r=brson
bors [Thu, 3 Mar 2016 19:42:44 +0000 (19:42 +0000)]
Auto merge of #2434 - alexcrichton:bump, r=brson

8 years agoBump to 0.10.0
Alex Crichton [Thu, 3 Mar 2016 19:12:10 +0000 (11:12 -0800)]
Bump to 0.10.0

8 years agoAuto merge of #2433 - alexcrichton:fix-lines-match, r=alexcrichton
bors [Thu, 3 Mar 2016 18:20:20 +0000 (18:20 +0000)]
Auto merge of #2433 - alexcrichton:fix-lines-match, r=alexcrichton

Right now we only match a suffix of the line, assuming all lines start with
`[..]`. Instead this ensures that the first match is anchored at the start.

8 years agoFix output matching in tests
Alex Crichton [Thu, 3 Mar 2016 18:18:02 +0000 (10:18 -0800)]
Fix output matching in tests

Right now we only match a suffix of the line, assuming all lines start with
`[..]`. Instead this ensures that the first match is anchored at the start.

8 years agoAuto merge of #2430 - birkenfeld:doc-menu, r=alexcrichton
bors [Thu, 3 Mar 2016 01:22:57 +0000 (01:22 +0000)]
Auto merge of #2430 - birkenfeld:doc-menu, r=alexcrichton

crates.io pull request: https://github.com/rust-lang/crates.io/pull/276

8 years agoDoc header: change Documentation to Docs to conform with PR to crates.io
Georg Brandl [Wed, 2 Mar 2016 18:54:54 +0000 (19:54 +0100)]
Doc header: change Documentation to Docs to conform with PR to crates.io

8 years agoAuto merge of #2406 - alexcrichton:download-less, r=brson
bors [Mon, 29 Feb 2016 19:32:24 +0000 (19:32 +0000)]
Auto merge of #2406 - alexcrichton:download-less, r=brson

Currently Cargo will download an entire resolution graph all at once when in fact most packages may not be relevant to a compilation. For example target-specific dependencies and dev-dependencies are unconditionally downloaded regardless of whether they're actually needed or not.

This commit alters the internals of Cargo to avoid downloading everything immediately and just switches to lazily downloading packages. This involved adding a new `LazyCell` primitive (similar to the one in use on crates.io) and also propagates `CargoResult` in a few more locations.

Overall this ended up being a pretty large refactoring so the commits are separated in bite-sized chunks as much as possible with the end goal being this PR itself.

Closes #2394

8 years agoAuto merge of #2419 - dikaiosune:master, r=alexcrichton
bors [Fri, 26 Feb 2016 22:33:44 +0000 (22:33 +0000)]
Auto merge of #2419 - dikaiosune:master, r=alexcrichton

Resolves #2417. I also reorganized the order of the items on the page and moved a little bit of text around. I think it's clearer, but critique is more than welcome.

8 years agoDisambiguating docs about when environment variables are set.
Adam Perry [Fri, 26 Feb 2016 22:15:41 +0000 (15:15 -0700)]
Disambiguating docs about when environment variables are set.
Providing an example of fetching env vars at runtime in a buildscript.
Reordering the list so that examples pertain to the correct sections.

8 years agoAuto merge of #2418 - alexcrichton:update-git2, r=alexcrichton
bors [Fri, 26 Feb 2016 21:50:11 +0000 (21:50 +0000)]
Auto merge of #2418 - alexcrichton:update-git2, r=alexcrichton

This crate was recently updated to the next release of libgit2, and I've noticed
historically that a noop `cargo build` was slow in the git2-rs repository.
Curious to see if the new libgit2 version helped speed things up at all, I
tested it out.

Before this commit, a noop `cargo build` produced 599108 syscalls. After this
commit, a noop build produced 86925 syscalls, an 85% reduction in the number of
syscalls! Needless to say it's much faster.

8 years agoUpdate dependency on git2
Alex Crichton [Fri, 26 Feb 2016 21:47:56 +0000 (13:47 -0800)]
Update dependency on git2

This crate was recently updated to the next release of libgit2, and I've noticed
historically that a noop `cargo build` was slow in the git2-rs repository.
Curious to see if the new libgit2 version helped speed things up at all, I
tested it out.

Before this commit, a noop `cargo build` produced 599108 syscalls. After this
commit, a noop build produced 86925 syscalls, an 85% reduction in the number of
syscalls! Needless to say it's much faster.

8 years agoAuto merge of #2397 - alexcrichton:config-verbose, r=brson
bors [Fri, 26 Feb 2016 19:43:08 +0000 (19:43 +0000)]
Auto merge of #2397 - alexcrichton:config-verbose, r=brson

This commit adds configuration keys for:

    [term]
    verbose = true
    color = 'auto'

These are all meant to be proxies for the command line flags but configured on a
global basis if desired.

8 years agoAdd configuration keys for -v, --color
Alex Crichton [Fri, 19 Feb 2016 07:26:25 +0000 (23:26 -0800)]
Add configuration keys for -v, --color

This commit adds configuration keys for:

    [term]
    verbose = true
    color = 'auto'

These are all meant to be proxies for the command line flags but configured on a
global basis if desired.

8 years agoStop downloading all packages immediately
Alex Crichton [Mon, 22 Feb 2016 05:02:20 +0000 (21:02 -0800)]
Stop downloading all packages immediately

Instead delay all downloads until just before they're needed. This should ensure
that we don't download any more packages than we really need to.

8 years agoAuto merge of #2398 - alexcrichton:config-env-var, r=brson
bors [Fri, 26 Feb 2016 19:11:13 +0000 (19:11 +0000)]
Auto merge of #2398 - alexcrichton:config-env-var, r=brson

This commit adds a more principled system to rationalize what ends up being a
configuration value versus an environment variable. This problem is solved by
just saying that they're one and the same! Similar to Bundler, this commit
supports overriding the `foo.bar` configuration value with the `CARGO_FOO_BAR`
environment variable.

Currently this is used as part of the `get_string` and `get_i64` methods on
`Config`. This means, for example, that the following environment variables can
now be used to configure Cargo:

* CARGO_BUILD_JOBS
* CARGO_HTTP_TIMEOUT
* CARGO_HTTP_PROXY

Currently it's not supported to encode a list in an environment variable, so for
example `CARGO_PATHS` would not be read when reading the global `paths`
configuration value.

cc #2362
cc #2395 -- intended to close this in tandem with #2397

8 years agoAuto merge of #2415 - kamalmarhubi:doc-env-var-cargo-manifest-dir, r=alexcrichton
bors [Thu, 25 Feb 2016 18:47:09 +0000 (18:47 +0000)]
Auto merge of #2415 - kamalmarhubi:doc-env-var-cargo-manifest-dir, r=alexcrichton

8 years agodoc: Include CARGO_MANIFEST_DIR as being set for crates
Kamal Marhubi [Thu, 25 Feb 2016 17:57:52 +0000 (12:57 -0500)]
doc: Include CARGO_MANIFEST_DIR as being set for crates

8 years agoAuto merge of #2411 - sbeckeriv:cargo-cache-doc-update-1609, r=alexcrichton
bors [Thu, 25 Feb 2016 17:39:25 +0000 (17:39 +0000)]
Auto merge of #2411 - sbeckeriv:cargo-cache-doc-update-1609, r=alexcrichton

Per https://github.com/rust-lang/cargo/issues/1609 "clarify how the cache works"

Added in a single line that states that the cached packages are only
removed by running the clean command.

Please let me know if this is the wrong spot, incorrect information or just silly.
Thanks
becker

8 years agoAuto merge of #2414 - sbeckeriv:document-bit-env-flag-1375, r=alexcrichton
bors [Thu, 25 Feb 2016 17:07:27 +0000 (17:07 +0000)]
Auto merge of #2414 - sbeckeriv:document-bit-env-flag-1375, r=alexcrichton

Per https://github.com/rust-lang/cargo/issues/1375

Just add a note around the python script BIT flag.

8 years agoFix name
Stephen Becker IV [Thu, 25 Feb 2016 06:45:08 +0000 (22:45 -0800)]
Fix name

And move line below code block per merge request.

8 years agoAdd a note for the 32 bit flag
Stephen Becker IV [Thu, 25 Feb 2016 05:27:27 +0000 (21:27 -0800)]
Add a note for the 32 bit flag

Per https://github.com/rust-lang/cargo/issues/1375

Just add a note around the python script flag

8 years agoUpdated text based on pull request
Stephen Becker IV [Thu, 25 Feb 2016 03:35:02 +0000 (19:35 -0800)]
Updated text based on pull request

8 years agoAuto merge of #2407 - alexcrichton:better-failed-auth-error, r=brson
bors [Thu, 25 Feb 2016 00:40:22 +0000 (00:40 +0000)]
Auto merge of #2407 - alexcrichton:better-failed-auth-error, r=brson

This commit is an attempt to improve the error message from failed
authentication attempts as well as attempting more usernames. Right now we only
attempt one username, but there are four different possible choices we could
select (including $USER which we weren't previously trying).

This commit tweaks a bunch of this logic and just in general refactors the
with_authentication function.

Closes #2399

8 years agoAuth with more usernames and improve errors
Alex Crichton [Mon, 22 Feb 2016 03:36:35 +0000 (19:36 -0800)]
Auth with more usernames and improve errors

This commit is an attempt to improve the error message from failed
authentication attempts as well as attempting more usernames. Right now we only
attempt one username, but there are four different possible choices we could
select (including $USER which we weren't previously trying).

This commit tweaks a bunch of this logic and just in general refactors the
with_authentication function.

Closes #2399

8 years agoAuto merge of #2400 - JIghtuse:master, r=alexcrichton
bors [Wed, 24 Feb 2016 17:12:29 +0000 (17:12 +0000)]
Auto merge of #2400 - JIghtuse:master, r=alexcrichton

Fixes #2378

8 years agoClarify third party subcommand failure error message
Boris Egorov [Tue, 23 Feb 2016 17:44:54 +0000 (23:44 +0600)]
Clarify third party subcommand failure error message

Fixes #2378

8 years agoAdd information package caching.
Stephen Becker IV [Wed, 24 Feb 2016 07:23:39 +0000 (23:23 -0800)]
Add information package caching.

Per https://github.com/rust-lang/cargo/issues/1609
Added in a single line that states that the cached packages are only
removed by running the clean command.

8 years agoAuto merge of #2369 - alexcrichton:no-more-ar, r=alexcrichton
bors [Wed, 24 Feb 2016 01:06:16 +0000 (01:06 +0000)]
Auto merge of #2369 - alexcrichton:no-more-ar, r=alexcrichton

This is largely no longer needed as we bundle llvm-ar and use that (and it's
cross platform). Note that the underlying support still exists in Cargo as the
flag hasn't been removed from the compiler outright, and older compilers may
still be in use. Just no need to document it so prominently when it's no longer
needed!

8 years agoAuto merge of #2404 - JIghtuse:no_rebuilds_for_local_install, r=alexcrichton
bors [Mon, 22 Feb 2016 18:27:31 +0000 (18:27 +0000)]
Auto merge of #2404 - JIghtuse:no_rebuilds_for_local_install, r=alexcrichton

Fixes #2143

8 years agoAvoid unnecessary rebuild on local installation
Boris Egorov [Sat, 20 Feb 2016 09:18:29 +0000 (15:18 +0600)]
Avoid unnecessary rebuild on local installation

Fixes #2143

8 years agoMove Context::get_package to returning a Result
Alex Crichton [Mon, 22 Feb 2016 04:58:08 +0000 (20:58 -0800)]
Move Context::get_package to returning a Result

The propagate all the `try!`-s needed upwards

8 years agoImplement a fallible PackageSet::get
Alex Crichton [Sat, 20 Feb 2016 18:36:09 +0000 (10:36 -0800)]
Implement a fallible PackageSet::get

This function will lazily download the package specified and fill a cell with
that package. Currently this is always infallible because the `PackageSet` is
initialized with all packages, but eventually this will not be true.

8 years agoGo through `layout` to get doc dir output directories
Alex Crichton [Fri, 19 Feb 2016 22:14:23 +0000 (14:14 -0800)]
Go through `layout` to get doc dir output directories

8 years agoMerge the get/download methods on the Source trait
Alex Crichton [Fri, 19 Feb 2016 21:49:14 +0000 (13:49 -0800)]
Merge the get/download methods on the Source trait

Nothing currently implements the ability to more efficiently download a set of
packages at any one point in time, and the download/get distinction isn't really
used at all. We can always refactor later, but currently there's no benefit, nor
can it really be seen what the possible benefit is, so let's just merge these
two methods into one and have them operate on one id at a time.

8 years agoRemove SourceSet
Alex Crichton [Fri, 19 Feb 2016 21:37:55 +0000 (13:37 -0800)]
Remove SourceSet

This isn't used anywhere

8 years agoRemove the ability to list packages in PackageSet
Alex Crichton [Fri, 19 Feb 2016 21:34:27 +0000 (13:34 -0800)]
Remove the ability to list packages in PackageSet

If we download lazily, that's excessively wasteful!

8 years agoMove the `get_package` step later when calculating deps
Alex Crichton [Fri, 19 Feb 2016 21:16:14 +0000 (13:16 -0800)]
Move the `get_package` step later when calculating deps

Future calls to `get_package` may end up actually downloading a package, so we
want to defer this as late as possible to ensure that we don't download
anything.

8 years agoRefactor build script output state initialization
Alex Crichton [Fri, 19 Feb 2016 19:15:39 +0000 (11:15 -0800)]
Refactor build script output state initialization

Like with the previous refactor, remove the need to list all packages in a
package set as we only need to lazily do this for the actual packages being
compiled. Whenever a build script is requested to be executed is when we
actually go and try to see if an override was in play.

8 years agoRefactor links validation to not use PackageSet
Alex Crichton [Fri, 19 Feb 2016 19:02:17 +0000 (11:02 -0800)]
Refactor links validation to not use PackageSet

Eventually we may not have the entire set of packages resident in memory, so
refactor the implementation to validate the `links` attribute in a demand driven
way rather than all at once up front.

8 years agoFuse SourceMap and PackageSet
Alex Crichton [Fri, 19 Feb 2016 18:53:57 +0000 (10:53 -0800)]
Fuse SourceMap and PackageSet

This commit moves the SourceMap structure into the PackageSet structure, and
simultaneously massively cuts down on the API surface area of PackageSet. It's
intended that eventually a PackageSet will be a lazily loaded set of packages so
we don't have to download everything all at once, and this is the commit in
preparation of that.

8 years agoRead configuration from environment variables
Alex Crichton [Fri, 19 Feb 2016 08:07:22 +0000 (00:07 -0800)]
Read configuration from environment variables

This commit adds a more principled system to rationalize what ends up being a
configuration value versus an environment variable. This problem is solved by
just saying that they're one and the same! Similar to Bundler, this commit
supports overriding the `foo.bar` configuration value with the `CARGO_FOO_BAR`
environment variable.

Currently this is used as part of the `get_string` and `get_i64` methods on
`Config`. This means, for example, that the following environment variables can
now be used to configure Cargo:

* CARGO_BUILD_JOBS
* CARGO_HTTP_TIMEOUT
* CARGO_HTTP_PROXY

Currently it's not supported to encode a list in an environment variable, so for
example `CARGO_PATHS` would not be read when reading the global `paths`
configuration value.

cc #2362
cc #2395 -- intended to close this in tandem with #2397

8 years agoMake Config::get private
Alex Crichton [Fri, 19 Feb 2016 07:58:27 +0000 (23:58 -0800)]
Make Config::get private

Don't actually want to expose this, callers need to use the more concrete
methods anyway.

8 years agoRefactor configuration return values
Alex Crichton [Fri, 19 Feb 2016 07:51:52 +0000 (23:51 -0800)]
Refactor configuration return values

Wrap up the value/definition pair in a generic structure so we can extend it
well later.

8 years agoAuto merge of #2393 - WiSaGaN:bugfix/tests-mod-naming, r=alexcrichton
bors [Thu, 18 Feb 2016 17:12:57 +0000 (17:12 +0000)]
Auto merge of #2393 - WiSaGaN:bugfix/tests-mod-naming, r=alexcrichton

In the default `lib.rs` provided by `cargo-new`, the "test" module is named "test" while Rust convention is using "tests" as the name of the module: https://doc.rust-lang.org/book/testing.html#the-tests-module
The plural form also conforms with the style used in special directories at project root such as "examples" and "tests".
This pull request conforms to the existing style.

8 years agoFix naming of tests mod in cargo new
Wangshan Lu [Thu, 18 Feb 2016 10:47:28 +0000 (18:47 +0800)]
Fix naming of tests mod in cargo new

8 years agoAuto merge of #2390 - vi:conditionalize_adding_cargo_lock_to_gitignore, r=alexcrichton
bors [Wed, 17 Feb 2016 19:23:14 +0000 (19:23 +0000)]
Auto merge of #2390 - vi:conditionalize_adding_cargo_lock_to_gitignore, r=alexcrichton

For cargo new, it depends on --bin option

For cargo init, it depends on detected files
(--bin option may be used or may be ignored)

No tests conver this code so far.

8 years agocargo init: Implement test for conditional Cargo.lock ignoring
Vitaly _Vi Shukela [Wed, 17 Feb 2016 19:03:57 +0000 (22:03 +0300)]
cargo init: Implement test for conditional Cargo.lock ignoring

8 years agoAuto merge of #2391 - alexcrichton:update, r=alexcrichton
bors [Wed, 17 Feb 2016 18:50:52 +0000 (18:50 +0000)]
Auto merge of #2391 - alexcrichton:update, r=alexcrichton

Fixes compile on nightly

8 years agoUpdate tar-rs dependency
Alex Crichton [Wed, 17 Feb 2016 18:50:05 +0000 (10:50 -0800)]
Update tar-rs dependency

Fixes compile on nightly

8 years agoAuto merge of #2389 - vu3rdd:doc-init, r=alexcrichton
bors [Wed, 17 Feb 2016 17:02:27 +0000 (17:02 +0000)]
Auto merge of #2389 - vu3rdd:doc-init, r=alexcrichton

The commit documents the 'cargo init' sub-command in the usage string and in the manpage.

8 years agocargo new/init: Conditionalize adding Cargo.lock to gitignore
Vitaly _Vi Shukela [Wed, 17 Feb 2016 15:45:51 +0000 (18:45 +0300)]
cargo new/init: Conditionalize adding Cargo.lock to gitignore

For cargo new, it depends on --bin option

For cargo init, it depends on detected files
(--bin option may be used or may be ignored)

No tests conver this code so far.

8 years agodocument "cargo init"
Ramakrishnan Muthukrishnan [Wed, 17 Feb 2016 08:11:00 +0000 (13:41 +0530)]
document "cargo init"

8 years agoAuto merge of #2328 - alexcrichton:target-specific-deps, r=brson
bors [Tue, 16 Feb 2016 18:51:49 +0000 (18:51 +0000)]
Auto merge of #2328 - alexcrichton:target-specific-deps, r=brson

This commit is an implementation of [RFC 1361][rfc] which is an extension of
Cargo's `target` section in `Cargo.toml` to allow the use of `#[cfg]`-like
expressions for target-specific dependencies. Now that the compiler has been
extended with `--print cfg` each invocation of Cargo will scrape this output and
learn about the relevant `#[cfg]` directives in play for the target being
compiled. Cargo will then use these directives to decide whether a dependency
should be activated or not.

This should allow definition of dependencies along the lines of:

    [target.'cfg(unix)'.dependencies]
    [target.'cfg(target_os = "linux")'.dependencies]
    [target.'cfg(windows)'.dependencies]

Which is much more ergonomic and robust than listing all the triples out!

8 years agoImplement cfg-based target-specific dependencies
Alex Crichton [Tue, 26 Jan 2016 00:54:10 +0000 (16:54 -0800)]
Implement cfg-based target-specific dependencies

This commit is an implementation of [RFC 1361][rfc] which is an extension of
Cargo's `target` section in `Cargo.toml` to allow the use of `#[cfg]`-like
expressions for target-specific dependencies. Now that the compiler has been
extended with `--print cfg` each invocation of Cargo will scrape this output and
learn about the relevant `#[cfg]` directives in play for the target being
compiled. Cargo will then use these directives to decide whether a dependency
should be activated or not.

This should allow definition of dependencies along the lines of:

    [target.'cfg(unix)'.dependencies]
    [target.'cfg(target_os = "linux")'.dependencies]
    [target.'cfg(windows)'.dependencies]

Which is much more ergonomic and robust than listing all the triples out!

8 years agoAuto merge of #2387 - alexcrichton:update, r=alexcrichton
bors [Sun, 14 Feb 2016 07:23:18 +0000 (07:23 +0000)]
Auto merge of #2387 - alexcrichton:update, r=alexcrichton

The new bundled rust version supports unwinding on 32-bit MSVC!

8 years agoUpdate some dependencies, plus the rust version
Alex Crichton [Sun, 14 Feb 2016 07:21:22 +0000 (23:21 -0800)]
Update some dependencies, plus the rust version

The new bundled rust version supports unwinding on 32-bit MSVC!

8 years agoAuto merge of #2365 - japaric:env-gt-config, r=alexcrichton
bors [Fri, 12 Feb 2016 23:03:56 +0000 (23:03 +0000)]
Auto merge of #2365 - japaric:env-gt-config, r=alexcrichton

This patches fixes the precedence in these cases:

- CARGO_TARGET_ROOT is now preferred over build.target-dir
- RUSTC is now preferred over build.rustc
- RUSTDOC is now preferred over build.rustdoc

r? @alexcrichton

8 years agoAuto merge of #2384 - jseyfried:master, r=alexcrichton
bors [Fri, 12 Feb 2016 22:09:11 +0000 (22:09 +0000)]
Auto merge of #2384 - jseyfried:master, r=alexcrichton

r? @alexcrichton

8 years agoRemove non-inline modules in blocks
Jeffrey Seyfried [Fri, 12 Feb 2016 21:31:27 +0000 (21:31 +0000)]
Remove non-inline modules in blocks

8 years agoAuto merge of #2382 - carols10cents:pointer-to-release-notes, r=alexcrichton
bors [Fri, 12 Feb 2016 18:46:13 +0000 (18:46 +0000)]
Auto merge of #2382 - carols10cents:pointer-to-release-notes, r=alexcrichton

Connects to #1919 - just adds a note and a link to rust's release notes :) :runner:

8 years agoAdd a note about release notes being in Rust's release notes
Carol (Nichols || Goulding) [Fri, 12 Feb 2016 01:04:04 +0000 (20:04 -0500)]
Add a note about release notes being in Rust's release notes

8 years agoAuto merge of #2370 - alexcrichton:windows-jobs, r=brson
bors [Thu, 11 Feb 2016 19:51:06 +0000 (19:51 +0000)]
Auto merge of #2370 - alexcrichton:windows-jobs, r=brson

Currently it's somewhat surprising if you're using cargo and it's then ctrl-c'd.
The child processes that Cargo spawned are likely to still be running around in
the background as they're not killed as well, and this could cause output spew
or future build failures.

This situation is handled by default on Unix because ctrl-c will end up sending
a signal to the entire *process group*, which kills everything, but on Windows
we're not as lucky (just Cargo itself is killed). By using job objects on
Windows we can ensure that the entire tree dies instead of just the top Cargo
process.

cc #2343

8 years agoUse job objects on windows for ctrl-c to work
Alex Crichton [Mon, 8 Feb 2016 19:28:53 +0000 (11:28 -0800)]
Use job objects on windows for ctrl-c to work

Currently it's somewhat surprising if you're using cargo and it's then ctrl-c'd.
The child processes that Cargo spawned are likely to still be running around in
the background as they're not killed as well, and this could cause output spew
or future build failures.

This situation is handled by default on Unix because ctrl-c will end up sending
a signal to the entire *process group*, which kills everything, but on Windows
we're not as lucky (just Cargo itself is killed). By using job objects on
Windows we can ensure that the entire tree dies instead of just the top Cargo
process.

cc #2343

8 years agoRemove config references to the `ar` tool
Alex Crichton [Mon, 8 Feb 2016 17:52:08 +0000 (09:52 -0800)]
Remove config references to the `ar` tool

This is largely no longer needed as we bundle llvm-ar and use that (and it's
cross platform). Note that the underlying support still exists in Cargo as the
flag hasn't been removed from the compiler outright, and older compilers may
still be in use. Just no need to document it so prominently when it's no longer
needed!

8 years agofix: prefer env variables over config files
Jorge Aparicio [Sat, 6 Feb 2016 20:25:52 +0000 (15:25 -0500)]
fix: prefer env variables over config files

This patches fixes the precedence in these cases:

- CARGO_TARGET_ROOT is now preferred over build.target-dir
- RUSTC is now preferred over build.rustc
- RUSTDOC is now preferred over build.rustdoc

8 years agoAuto merge of #2315 - alexcrichton:decode-some-signals, r=brson
bors [Fri, 5 Feb 2016 21:29:28 +0000 (21:29 +0000)]
Auto merge of #2315 - alexcrichton:decode-some-signals, r=brson

Instead of text that looks like

    Process failed (signal: 11)

the text now looks like:

    Process failed (signal: 11, SIGSEGV: invalid memory reference)

Closes #2315

8 years agoAuto merge of #2359 - matklad:metadata-no-deps, r=alexcrichton
bors [Fri, 5 Feb 2016 20:52:49 +0000 (20:52 +0000)]
Auto merge of #2359 - matklad:metadata-no-deps, r=alexcrichton

closes #2356. The output is not exactly the same as with `read-manifest`, because I wanted to include the `version` field.

Tests and implementation is a copy-paste from `read-manifest` except that [this line](https://github.com/rust-lang/cargo/blob/master/src/bin/read_manifest.rs#L36) is omited, because `root_package` [does update anyway](https://github.com/rust-lang/cargo/blob/master/src/cargo/sources/path.rs#L51).

8 years agometadata: add --no-deps option
Aleksey Kladov [Fri, 5 Feb 2016 00:56:49 +0000 (03:56 +0300)]
metadata: add --no-deps option

The intention is to eventually deprecate `cargo read-manifest`

8 years agoAuto merge of #2335 - fpgaminer:config-target, r=alexcrichton
bors [Fri, 5 Feb 2016 18:32:07 +0000 (18:32 +0000)]
Auto merge of #2335 - fpgaminer:config-target, r=alexcrichton

Fixed #2332.

This PR adds `build.target` to the Cargo config file, which behaves in the same way as passing `--target` to Cargo.  Example `.cargo/config`:

```
[build]
target = "thumbv6m-none-eabi"
```

Similar to how `--jobs` overrides `build.jobs`, `--target` will override `build.target`.

I added documentation to `config.md`, and a test to `test_cargo_cross_compile.rs`.  I couldn't get cross compile working on my machine for `cargo test`.  Hopefully travis passes it.

This is my first PR against Cargo; sorry if I missed any procedures.

8 years agoAuto merge of #2357 - matklad:no-more-warnings-in-tests, r=alexcrichton
bors [Fri, 5 Feb 2016 17:28:04 +0000 (17:28 +0000)]
Auto merge of #2357 - matklad:no-more-warnings-in-tests, r=alexcrichton

Warnings from unrelated tests can be a little disturbing. Maybe we should be stricter about them?

You can always temporary `#![allow(unused, warnings)]` in the module you are writing if you are in the middle of a new development and don't want the compiler putting a spoke in the wheel.

8 years agoAuto merge of #2360 - jedireza:copy-change, r=alexcrichton
bors [Fri, 5 Feb 2016 17:14:29 +0000 (17:14 +0000)]
Auto merge of #2360 - jedireza:copy-change, r=alexcrichton

8 years agoFix typo on build script page
jedireza [Fri, 5 Feb 2016 14:22:56 +0000 (14:22 +0000)]
Fix typo on build script page

8 years agotests: deny warnings
Aleksey Kladov [Fri, 5 Feb 2016 01:05:41 +0000 (04:05 +0300)]
tests: deny warnings

8 years agoAuto merge of #2355 - alexcrichton:fix-ordering-bug, r=brson
bors [Tue, 2 Feb 2016 21:12:37 +0000 (21:12 +0000)]
Auto merge of #2355 - alexcrichton:fix-ordering-bug, r=brson

Cargo needs to ensure that if a build script prints a `-L` path that it's the
first `-L` path passed to the compiler. That way the build script can be sure
that any output it generated is the first to be considered by the compiler.

Closes #2354

8 years agoFix DAG ordering of passed -L flags
Alex Crichton [Tue, 2 Feb 2016 19:42:57 +0000 (11:42 -0800)]
Fix DAG ordering of passed -L flags

Cargo needs to ensure that if a build script prints a `-L` path that it's the
first `-L` path passed to the compiler. That way the build script can be sure
that any output it generated is the first to be considered by the compiler.

Closes #2354

8 years agoAuto merge of #2353 - debris:bench_no_run, r=alexcrichton
bors [Tue, 2 Feb 2016 16:13:02 +0000 (16:13 +0000)]
Auto merge of #2353 - debris:bench_no_run, r=alexcrichton

Closes #2350