]> git.proxmox.com Git - cargo.git/log
cargo.git
7 years agoAsk for filter specifity instead of 'match'
Ben Wiederhake [Fri, 24 Mar 2017 21:21:29 +0000 (22:21 +0100)]
Ask for filter specifity instead of 'match'

7 years agoAdapt binaries to new cargo_compile API
Ben Wiederhake [Fri, 24 Mar 2017 08:28:35 +0000 (09:28 +0100)]
Adapt binaries to new cargo_compile API

Closes #3112.

7 years agoExtend Compile API to handle flags like --tests and --bins
Ben Wiederhake [Thu, 23 Mar 2017 22:45:23 +0000 (23:45 +0100)]
Extend Compile API to handle flags like --tests and --bins

7 years agoAuto merge of #3909 - JanLikar:fix/3876, r=alexcrichton
bors [Mon, 10 Apr 2017 14:42:41 +0000 (14:42 +0000)]
Auto merge of #3909 - JanLikar:fix/3876, r=alexcrichton

Improve "dirty" error message

Improve the error message stating the working directory has dirty files (files not yet committed).

Fix #3876.

7 years agoImprove "dirty" error message
Jan Likar [Sun, 9 Apr 2017 02:20:41 +0000 (04:20 +0200)]
Improve "dirty" error message

Improve the error message stating the working directory has dirty
files (files not yet committed).

Fix #3876.

7 years agoAuto merge of #3907 - waywardmonkeys:show-default-new, r=alexcrichton
bors [Sat, 8 Apr 2017 23:07:02 +0000 (23:07 +0000)]
Auto merge of #3907 - waywardmonkeys:show-default-new, r=alexcrichton

Indicate that --lib is default for new, init.

I often forget for a moment which is the default behavior: `--bin` or `--lib`. This makes it clear in the usage text.

7 years agoAuto merge of #3904 - tee-too:fix-3880, r=alexcrichton
bors [Sat, 8 Apr 2017 21:29:11 +0000 (21:29 +0000)]
Auto merge of #3904 - tee-too:fix-3880, r=alexcrichton

Sort tests so that unit tests are run before integration tests

Fix #3880

7 years agoAuto merge of #3906 - waywardmonkeys:typo-fixes, r=alexcrichton
bors [Sat, 8 Apr 2017 19:53:03 +0000 (19:53 +0000)]
Auto merge of #3906 - waywardmonkeys:typo-fixes, r=alexcrichton

Fix typos.

7 years agoIndicate that --lib is default for new, init.
Bruce Mitchener [Fri, 7 Apr 2017 09:37:34 +0000 (16:37 +0700)]
Indicate that --lib is default for new, init.

7 years agoFix typos.
Bruce Mitchener [Fri, 7 Apr 2017 09:32:11 +0000 (16:32 +0700)]
Fix typos.

7 years agoSort tests so that unit tests are run before integration tests
tee-too [Thu, 6 Apr 2017 14:18:07 +0000 (16:18 +0200)]
Sort tests so that unit tests are run before integration tests

Fix #3880

7 years agoAuto merge of #3898 - jmatraszek:fix_rust_40955, r=alexcrichton
bors [Wed, 5 Apr 2017 23:36:04 +0000 (23:36 +0000)]
Auto merge of #3898 - jmatraszek:fix_rust_40955, r=alexcrichton

Fix rust-lang/rust 40955

Proposed fix for rust-lang/rust#40955.

I could also work on adding some additional tests, so we have all cases covered and automatically tested.

7 years agoTouch up line lengths
Alex Crichton [Wed, 5 Apr 2017 23:35:39 +0000 (16:35 -0700)]
Touch up line lengths

7 years agoFix rust 40955
Jakub Matraszek [Tue, 4 Apr 2017 21:58:31 +0000 (23:58 +0200)]
Fix rust 40955

7 years agoAuto merge of #3854 - tee-too:fix-3499, r=alexcrichton
bors [Tue, 4 Apr 2017 18:01:01 +0000 (18:01 +0000)]
Auto merge of #3854 - tee-too:fix-3499, r=alexcrichton

Add `[target.'cfg(...)']` syntax for rustc(doc)flags in .cargo/config

Allow to use the Rust `cfg(...)` syntax to configure rust(doc)flags.
The flags are concatenated when a build matches several `cfg`, or
several `cfg` and a $triple.

Fix #3499.

7 years agoAdd `[target.'cfg(...)']` syntax for rustc(doc)flags in .cargo/config
tee-too [Mon, 3 Apr 2017 18:35:23 +0000 (20:35 +0200)]
Add `[target.'cfg(...)']` syntax for rustc(doc)flags in .cargo/config

Allow to use the Rust `cfg(...)` syntax to configure rust(doc)flags.
The flags are concatenated when a build matches several `cfg`, or
several `cfg` and a $triple.

Fix #3499.

7 years agoAuto merge of #3893 - nrc:config-values, r=alexcrichton
bors [Mon, 3 Apr 2017 22:30:12 +0000 (22:30 +0000)]
Auto merge of #3893 - nrc:config-values, r=alexcrichton

Allow a client to override values in a config

The use case here is that the RLS wants to set a project's `target-dir`, but can't do this using a config file (since the user might have their own, and it's a bit hacky) or via an environment variable (because there might be multiple instances of Cargo running on different directories in different threads.

ISTM that the best way to accomplish this is to allow the RLS to override values in the config before we make a workspace from it. However, since the config uses a `LazyCell` for the config values, this is not very nice (if something tries to read a config value before we set them, then there will be an error when we try to set them). However, this meets our needs and is pretty low impact, so it seems like the best solution for now. I'm open to other ideas though.

7 years agoAllow a client to override values in a config
Nick Cameron [Mon, 3 Apr 2017 02:08:15 +0000 (14:08 +1200)]
Allow a client to override values in a config

7 years agoAuto merge of #3842 - pwoolcoc:add-pijul-vcs-support, r=alexcrichton
bors [Sat, 1 Apr 2017 06:32:23 +0000 (06:32 +0000)]
Auto merge of #3842 - pwoolcoc:add-pijul-vcs-support, r=alexcrichton

Add Pijul support to Cargo

[Pijul](https://pijul.org) is a version control system written in Rust. This commit adds the ability to create a cargo project using pijul as the vcs for the project.

To use it, run `cargo new my-awesome-project --vcs=pijul`

7 years agoAuto merge of #3889 - alexcrichton:toml-fix, r=alexcrichton
bors [Sat, 1 Apr 2017 01:48:01 +0000 (01:48 +0000)]
Auto merge of #3889 - alexcrichton:toml-fix, r=alexcrichton

Update toml to fix a regression in backcompat

Related to rust-lang/rust#40956

7 years agoUpdate toml to fix a regression in backcompat
Alex Crichton [Sat, 1 Apr 2017 01:45:55 +0000 (18:45 -0700)]
Update toml to fix a regression in backcompat

Related to rust-lang/rust#40956

7 years agoAdd Pijul support to cargo
Paul Woolcock [Fri, 31 Mar 2017 15:35:58 +0000 (11:35 -0400)]
Add Pijul support to cargo

[Pijul](https://pijul.org) is a version control system written in Rust. This commit adds the ability to create a cargo project using pijul as the vcs for the project.

To use it, run `cargo new my-awesome-project --vcs=pijul`

7 years agoAuto merge of #3878 - ehiggs:revert-template-until-after-rfc, r=alexcrichton
bors [Fri, 31 Mar 2017 15:50:19 +0000 (15:50 +0000)]
Auto merge of #3878 - ehiggs:revert-template-until-after-rfc, r=alexcrichton

Revert template until after rfc

As discussed in #3860, templates was merged without going through the RFC process. @ssokolow has raised some useful comments which need to be settled before the template system can be put back in.

#3859 was another relevant issue.

7 years agoAuto merge of #3875 - matklad:unused-replace, r=alexcrichton
bors [Thu, 30 Mar 2017 18:10:07 +0000 (18:10 +0000)]
Auto merge of #3875 - matklad:unused-replace, r=alexcrichton

Fix false positive about unused replace

closes #3861
@chriscoomber thanks for the great repro!

7 years agoAuto merge of #3879 - jbendig:issue_3867, r=alexcrichton
bors [Thu, 30 Mar 2017 15:25:03 +0000 (15:25 +0000)]
Auto merge of #3879 - jbendig:issue_3867, r=alexcrichton

Fix `cargo run` panic when required-features not satisfied

This PR fixes #3867 which is made up of two parts.

The first part involves `cargo run` triggering an assertion after compiling. This is triggered by the single binary selected for compilation being filtered out when required-features is specified and said features are not enabled. The cleanest approach to me involves just sticking a flag into `CompileFilter::Everything`. The flag then triggers the already existing error message when required-features is not satisfied. I think this works best because it localizes what is really a `cargo run` quirk without requiring any boilerplate or duplicate code.

The second part shows `cargo run` bailing when two binaries exist, both with required-features, but only one is resolved to be compiled due to default features. I feel like the current approach is correct because it's consistent with what normally happens when there are multiple binaries. I'm open to changing this, but for now, I've added a test to enforce this behavior.

cc @BenWiederhake: I took a quick peek at your branch to fix #3112 and I noticed that it probably won't merge cleanly with this PR. Just an FYI in case it makes sense to have this merged.

7 years agoFix `cargo run` panic when required-features not satisfied
James Bendig [Wed, 29 Mar 2017 20:48:43 +0000 (15:48 -0500)]
Fix `cargo run` panic when required-features not satisfied

Fixes #3867

7 years agoCleanup of template patch reversion.
Ewan Higgs [Wed, 29 Mar 2017 20:23:46 +0000 (22:23 +0200)]
Cleanup of template patch reversion.

7 years agoRevert "Cargo templating for `new` and `init`"
Ewan Higgs [Wed, 29 Mar 2017 19:57:33 +0000 (21:57 +0200)]
Revert "Cargo templating for `new` and `init`"

This reverts commit 875a8aba7916b63c3c8464008a271f6082e23779.

7 years agoRevert "Upgrade handlebars to 0.25."
Ewan Higgs [Wed, 29 Mar 2017 19:54:39 +0000 (21:54 +0200)]
Revert "Upgrade handlebars to 0.25."

This reverts commit 0aad658f09590396b4c7fe6ce93eae322354fd06.

7 years agoRevert "Fix for #3722"
Ewan Higgs [Wed, 29 Mar 2017 19:52:23 +0000 (21:52 +0200)]
Revert "Fix for #3722"

This reverts commit 7e80c684cad3249923b05ecbe02c009b111d9b9f.

7 years agoRevert "Use time crate directly to get the year"
Ewan Higgs [Wed, 29 Mar 2017 19:51:50 +0000 (21:51 +0200)]
Revert "Use time crate directly to get the year"

This reverts commit 47221e98189daa34e47934d44223db12db84c7b9.

7 years agoRevert "Add year to project template variables"
Ewan Higgs [Wed, 29 Mar 2017 19:50:53 +0000 (21:50 +0200)]
Revert "Add year to project template variables"

This reverts commit 69ffd99f4261b10414b882eed638f041e42d8f73.

7 years agoFix false positive about unused replace
Aleksey Kladov [Wed, 29 Mar 2017 09:58:45 +0000 (12:58 +0300)]
Fix false positive about unused replace

7 years agoAuto merge of #3869 - matklad:test-isolation, r=alexcrichton
bors [Mon, 27 Mar 2017 13:51:57 +0000 (13:51 +0000)]
Auto merge of #3869 - matklad:test-isolation, r=alexcrichton

Don't read ~/.cargo/config in tests

Closes #3863

r? @alexcrichton

7 years agoDon't read ~/.cargo/config in tests
Aleksey Kladov [Sat, 25 Mar 2017 11:17:51 +0000 (14:17 +0300)]
Don't read ~/.cargo/config in tests

Closes #3863

7 years agoAuto merge of #3865 - matklad:doc-all-the-things, r=alexcrichton
bors [Sat, 25 Mar 2017 02:22:06 +0000 (02:22 +0000)]
Auto merge of #3865 - matklad:doc-all-the-things, r=alexcrichton

Beef up docs about integrating Cargo with other stuff

Add info about `--message-format=json`, `--dep-info` and custom cargo subcommands (mostly copy-pasted from the wiki :) ).

cc @carols10cents

r? @alexcrichton

7 years agoAdd external-tools.md to the Makefile
Aleksey Kladov [Fri, 24 Mar 2017 22:46:36 +0000 (01:46 +0300)]
Add external-tools.md to the Makefile

7 years agoAuto merge of #3862 - matklad:crate-types, r=alexcrichton
bors [Fri, 24 Mar 2017 15:04:47 +0000 (15:04 +0000)]
Auto merge of #3862 - matklad:crate-types, r=alexcrichton

Fix crate_types in serialized targets

closes #3840

7 years agoBeef up docs about integrating Cargo with other stuff
Aleksey Kladov [Fri, 24 Mar 2017 09:11:43 +0000 (12:11 +0300)]
Beef up docs about integrating Cargo with other stuff

7 years agoFix crate_types in serialized targets
Aleksey Kladov [Fri, 24 Mar 2017 07:40:12 +0000 (10:40 +0300)]
Fix crate_types in serialized targets

7 years agoAuto merge of #3857 - antonlarin:rebuild-on-env-change, r=alexcrichton
bors [Thu, 23 Mar 2017 23:26:55 +0000 (23:26 +0000)]
Auto merge of #3857 - antonlarin:rebuild-on-env-change, r=alexcrichton

Include package props with corresponding env vars into target metadata

Previously, when changing package properties with corresponding environment variables (such as authors, which has CARGO_PKG_AUTHORS), it didn't invalidate the build, even though there could have been a dependency on such variables in the source code.

This commit includes 3 such properties: authors list, description and homepage in the target metadata.

I've added a test only for description change, can add more if necessary.
Fixes #3696.

7 years agoAuto merge of #3837 - alexcrichton:workspace-exlucde, r=brson
bors [Thu, 23 Mar 2017 21:56:53 +0000 (21:56 +0000)]
Auto merge of #3837 - alexcrichton:workspace-exlucde, r=brson

Add a workspace.exclude key

This commit adds a new key to the `Cargo.toml` manifest, `workspace.exclude`.
This new key is a list of strings which is an array of directories that are
excluded from the workspace explicitly. This is intended for use cases such as
vendoring where path dependencies into a vendored directory don't want to pull
in the workspace dependencies.

There's a number of use cases mentioned on #3192 which I believe should all be
covered with this strategy. At a bare minimum it should suffice to `exclude`
every directory and then just explicitly whitelist crates through `members`
through inclusion, and that should give precise control over the structure of a
workspace.

Closes #3192

7 years agoInclude package props with env vars into target metadata
Anton Larin [Thu, 23 Mar 2017 14:26:40 +0000 (17:26 +0300)]
Include package props with env vars into target metadata

Previously, when changing package properties with corresponding
environment variables (such as authors, which has CARGO_PKG_AUTHORS),
it didn't invalidate the build, even though there could have been
a dependency on such variables in the source code.

This commit includes such properties (there are 3 of them in total:
authors, description and homepage) in the target metadata.

Fixes #3696.

7 years agoAuto merge of #3858 - alexcrichton:fix-ci, r=alexcrichton
bors [Thu, 23 Mar 2017 15:28:45 +0000 (15:28 +0000)]
Auto merge of #3858 - alexcrichton:fix-ci, r=alexcrichton

Attempt to fix CI

Travis looks to have switched to rustup.rs

7 years agoAttempt to fix CI
Alex Crichton [Thu, 23 Mar 2017 15:10:58 +0000 (08:10 -0700)]
Attempt to fix CI

Travis looks to have switched to rustup.rs

7 years agoAuto merge of #3841 - matklad:encourage-explicit-version, r=alexcrichton
bors [Tue, 21 Mar 2017 13:50:59 +0000 (13:50 +0000)]
Auto merge of #3841 - matklad:encourage-explicit-version, r=alexcrichton

Encourage tools writers to explicitly pin metadata version

We do support versioning of metadata, but let's encourage tool's writers to actually use it.

They might not realize that this flag exists at all, or they can be too lazy (like myself :( ) to use it.

We can also make this flag mandatory, but I think that's a little bit to far.

7 years agoAuto merge of #3848 - tee-too:fix-2529, r=alexcrichton
bors [Mon, 20 Mar 2017 22:10:08 +0000 (22:10 +0000)]
Auto merge of #3848 - tee-too:fix-2529, r=alexcrichton

Report the name of the test that failed (fix #2529)

Fix #2529

7 years agoAuto merge of #3849 - alexcrichton:fix-stack-overflow, r=matklad
bors [Mon, 20 Mar 2017 20:39:33 +0000 (20:39 +0000)]
Auto merge of #3849 - alexcrichton:fix-stack-overflow, r=matklad

Detect cyclic dependencies through [replace]

Previously this'd cause a stack overflow in Cargo later in the compilation
graph, but this is intended to get caught during resolution.

Closes #3831

7 years agoDetect cyclic dependencies through [replace]
Alex Crichton [Mon, 20 Mar 2017 19:43:44 +0000 (12:43 -0700)]
Detect cyclic dependencies through [replace]

Previously this'd cause a stack overflow in Cargo later in the compilation
graph, but this is intended to get caught during resolution.

Closes #3831

7 years agoReport the name of the test that failed (fix #2529)
tee-too [Mon, 20 Mar 2017 10:39:22 +0000 (11:39 +0100)]
Report the name of the test that failed (fix #2529)

7 years agoAuto merge of #3843 - alexcrichton:fix-override-default-features, r=matklad
bors [Sat, 18 Mar 2017 13:01:54 +0000 (13:01 +0000)]
Auto merge of #3843 - alexcrichton:fix-override-default-features, r=matklad

Fix overriding mixing with default features

Previously Cargo had a bug where if a crate *without* a default feature was
overridden with one that did indeed have a default feature then the default may
not end up getting activated by accident. The fix was to avoid returning too
quickly hen activating dependencies until after we've inspected and learned
about replacements.

Closes #3812

7 years agoFix overriding mixing with default features
Alex Crichton [Fri, 17 Mar 2017 23:12:11 +0000 (16:12 -0700)]
Fix overriding mixing with default features

Previously Cargo had a bug where if a crate *without* a default feature was
overridden with one that did indeed have a default feature then the default may
not end up getting activated by accident. The fix was to avoid returning too
quickly hen activating dependencies until after we've inspected and learned
about replacements.

Closes #3812

7 years agoEncourage tools writers to explicitly pin metadata version
Aleksey Kladov [Fri, 17 Mar 2017 15:00:29 +0000 (18:00 +0300)]
Encourage tools writers to explicitly pin metadata version

7 years agoAuto merge of #3839 - tee-too:fix-3828, r=matklad
bors [Fri, 17 Mar 2017 14:02:19 +0000 (14:02 +0000)]
Auto merge of #3839 - tee-too:fix-3828, r=matklad

Remove --cap-lints feature detection (fix issue #3828)

7 years agoRemove --cap-lints feature detection (fix issue #3828)
tee-too [Fri, 17 Mar 2017 13:52:31 +0000 (14:52 +0100)]
Remove --cap-lints feature detection (fix issue #3828)

7 years agoAdd a workspace.exclude key
Alex Crichton [Thu, 16 Mar 2017 21:50:23 +0000 (14:50 -0700)]
Add a workspace.exclude key

This commit adds a new key to the `Cargo.toml` manifest, `workspace.exclude`.
This new key is a list of strings which is an array of directories that are
excluded from the workspace explicitly. This is intended for use cases such as
vendoring where path dependencies into a vendored directory don't want to pull
in the workspace dependencies.

There's a number of use cases mentioned on #3192 which I believe should all be
covered with this strategy. At a bare minimum it should suffice to `exclude`
every directory and then just explicitly whitelist crates through `members`
through inclusion, and that should give precise control over the structure of a
workspace.

Closes #3192

7 years agoAuto merge of #3836 - alexcrichton:bump, r=alexcrichton
bors [Thu, 16 Mar 2017 21:03:56 +0000 (21:03 +0000)]
Auto merge of #3836 - alexcrichton:bump, r=alexcrichton

Bump to 0.19.0

7 years agoBump to 0.19.0
Alex Crichton [Thu, 16 Mar 2017 21:03:30 +0000 (14:03 -0700)]
Bump to 0.19.0

7 years agoAuto merge of #3827 - alexcrichton:warnings-v2, r=matklad
bors [Mon, 13 Mar 2017 22:21:16 +0000 (22:21 +0000)]
Auto merge of #3827 - alexcrichton:warnings-v2, r=matklad

Cap lints for upstream deps with `-vv`

Previously with `-vv` Cargo didn't pass `--cap-lints` at all, but with upstream
dependencies we still want to pass at least `--cap-lints warn` to make sure that
they're all still compiling.

Closes #3823

7 years agoCap lints for upstream deps with `-vv`
Alex Crichton [Mon, 13 Mar 2017 17:15:36 +0000 (10:15 -0700)]
Cap lints for upstream deps with `-vv`

Previously with `-vv` Cargo didn't pass `--cap-lints` at all, but with upstream
dependencies we still want to pass at least `--cap-lints warn` to make sure that
they're all still compiling.

Closes #3823

7 years agoAuto merge of #3818 - jmatraszek:3814-run_proper_binary_main_rs, r=alexcrichton
bors [Sun, 12 Mar 2017 15:54:19 +0000 (15:54 +0000)]
Auto merge of #3818 - jmatraszek:3814-run_proper_binary_main_rs, r=alexcrichton

Fixes #3814

7 years agoAuto merge of #3820 - alexcrichton:remove-build-date, r=alexcrichton
bors [Sun, 12 Mar 2017 07:07:34 +0000 (07:07 +0000)]
Auto merge of #3820 - alexcrichton:remove-build-date, r=alexcrichton

Remove build date from version

This was done by rustc awhile ago anyway and the rustc build system isn't
exporting it.

7 years agoTweak travis targets and dates
Alex Crichton [Sun, 12 Mar 2017 02:17:07 +0000 (18:17 -0800)]
Tweak travis targets and dates

Just trying to get a PR to land...

7 years agoRemove build date from version
Alex Crichton [Sun, 12 Mar 2017 02:09:28 +0000 (18:09 -0800)]
Remove build date from version

This was done by rustc awhile ago anyway and the rustc build system isn't
exporting it.

7 years ago#3814: Fallback to src/bin/main.rs for bins
Jakub Matraszek [Sat, 11 Mar 2017 09:36:14 +0000 (10:36 +0100)]
#3814: Fallback to src/bin/main.rs for bins

7 years agoAuto merge of #3807 - nerdrew:nerdrew/_cargo, r=alexcrichton
bors [Thu, 9 Mar 2017 15:17:08 +0000 (15:17 +0000)]
Auto merge of #3807 - nerdrew:nerdrew/_cargo, r=alexcrichton

support custom cargo-* command zsh tab completion

7 years agoAuto merge of #3794 - alexcrichton:better-errors, r=matklad
bors [Wed, 8 Mar 2017 19:21:14 +0000 (19:21 +0000)]
Auto merge of #3794 - alexcrichton:better-errors, r=matklad

Improve TOML decoding error messages

Unfortunately while `#[serde(untagged)]` is precisely what we want in terms of
semantics it leaves a little to be desired in terms of error messages. This
commit updates to remove the usage of that attribute in favor of implementing
`Deserialize` directly, which is quite simple in these few cases.

Closes #3790

7 years agoImprove TOML decoding error messages
Alex Crichton [Fri, 3 Mar 2017 16:12:12 +0000 (08:12 -0800)]
Improve TOML decoding error messages

Unfortunately while `#[serde(untagged)]` is precisely what we want in terms of
semantics it leaves a little to be desired in terms of error messages. This
commit updates to remove the usage of that attribute in favor of implementing
`Deserialize` directly, which is quite simple in these few cases.

Closes #3790

7 years agosupport custom cargo-* command zsh tab completion
Andrew Lazarus [Wed, 8 Mar 2017 17:23:36 +0000 (09:23 -0800)]
support custom cargo-* command zsh tab completion

7 years agoAuto merge of #3789 - vojtechkral:cargo_env, r=alexcrichton
bors [Wed, 8 Mar 2017 00:00:34 +0000 (00:00 +0000)]
Auto merge of #3789 - vojtechkral:cargo_env, r=alexcrichton

Tell subprocesses the path to self in an env variable #3778

I'm just setting the env var on the process itself, letting subprocesses inherit that, as it's easier than setting for each subprocess individually. I'm not entirely sure this is the right spot though.

Also, I should probably document this somewhere - what would be the best place?

7 years agoTell subprocesses the path to self in an env variable #3778
Vojtech Kral [Thu, 2 Mar 2017 06:38:54 +0000 (07:38 +0100)]
Tell subprocesses the path to self in an env variable #3778

7 years agoAuto merge of #3369 - joshtriplett:cargo-install-only-required-dependencies, r=alexcr...
bors [Tue, 7 Mar 2017 15:24:52 +0000 (15:24 +0000)]
Auto merge of #3369 - joshtriplett:cargo-install-only-required-dependencies, r=alexcrichton

cargo fails if it can't find optional dependencies, even if corresponding feature not enabled

I have a directory registry containing all the crate sources needed to build an application crate (for instance, ripgrep), and a `$CARGO_HOME/config` file that looks like this:

```toml
[source.crates-io]
replace-with = "dh-cargo-registry"

[source.dh-cargo-registry]
directory = "/usr/share/cargo/registry/"
```

When I attempt to build ripgrep via "cargo install ripgrep" from that directory registry, I get this error:

```
error: failed to compile `ripgrep v0.3.1`, intermediate artifacts can be found at `/tmp/cargo-install.rmKApOw9BwAL`

Caused by:
  no matching package named `simd` found (required by `bytecount`)
location searched: registry https://github.com/rust-lang/crates.io-index
version required: ^0.1.1
```

The directory registry indeed does not contain "simd"; however, bytecount doesn't require simd.  It has an optional dependency on simd, and nothing enables the feature that requires that dependency.

Placing the simd crate sources into the directory registry allows ripgrep to build; the resulting build does not actually build the simd crate.

I can reproduce this by just trying to build the "bytecount" crate directly, using the same `$CARGO_HOME`:

```
error: no matching package named `simd` found (required by `bytecount`)
location searched: registry https://github.com/rust-lang/crates.io-index
version required: = 0.1.1
```
(Incidentally, that "version required" seems wrong: bytecount has an optional dependency on simd `^0.1.1`, not `=0.1.1`.)

However, this doesn't seem consistent with other crates in the same dependency tree.  For instance, ripgrep also depends on clap, and clap has an optional dependency on yaml-rust, yet cargo does not complain about the missing yaml-rust.

I'd *guess* that the difference occurs because ripgrep has an optional feature `simd-accel` that depends on `bytecount/simd-accel`, so cargo wants to compute what packages it needs for that case too, even when building without that feature. (Similar to #3233.)

However, this makes it impossible to build a package while installing only the packaged dependencies for the enabled features.  Could `cargo install` ignore any dependencies not actually required by the enabled feature?  (That behavior would make no sense for "cargo build", which builds a Cargo.lock file that should remain consistent regardless of enabled features, but it makes sense for "cargo install cratename", which doesn't build a Cargo.lock file.)

7 years agoAuto merge of #3795 - jryans:template-year, r=alexcrichton
bors [Mon, 6 Mar 2017 20:42:29 +0000 (20:42 +0000)]
Auto merge of #3795 - jryans:template-year, r=alexcrichton

Add year to project template variables

This adds the current year as a `year` variable for project templates. Some license files / headers include the year, so this should make it easier to include those in a template.

7 years agoIn "cargo install" directly from registry, don't require optional dependencies
Josh Triplett [Thu, 2 Mar 2017 02:19:43 +0000 (18:19 -0800)]
In "cargo install" directly from registry, don't require optional dependencies

When building with a directory registry that contains only the subset of
crates required to build an application crate, cargo fails if that
subset doesn't include optional dependencies pulled in for every
possible feature of the root crate, even when the install doesn't enable
those features.  This prevents Linux distributions from building with
a minimal set of dependencies (omitting, for instance, packages for
unstable/nightly features).

Introduce a new workspace flag "require_optional_deps", disabled for
install and enabled for everything else.  Skip the initial
Method::Everything resolve in this case, and modify
resolve_with_previous to support running a Method::Required resolve
without a previous resolution.

This also skips adding path overrides, as those won't make sense (and
won't work) for an install directly from a registry.

Introduce a set of tests for "cargo install" directly from a directory
registry.

7 years agoUse time crate directly to get the year
J. Ryan Stinnett [Mon, 6 Mar 2017 17:40:39 +0000 (11:40 -0600)]
Use time crate directly to get the year

7 years agoAuto merge of #3799 - integer32llc:restore-generated-tests-module, r=alexcrichton
bors [Mon, 6 Mar 2017 16:04:27 +0000 (16:04 +0000)]
Auto merge of #3799 - integer32llc:restore-generated-tests-module, r=alexcrichton

Restore the generated tests module created by `cargo new`

Appears to have been removed unintentionally in #3004.

Was just working on the book, ran `cargo new adder` with cargo-0.18.0-nightly (6f1b860 2017-02-11), and got this in `src/lib.rs`:

```rust
#[test]
fn it_works() {
}
```

when I expected to get this:

```rust
#[cfg(test)]
mod tests {
    #[test]
    fn it_works() {
    }
}
```

It looks like this was changed as part of #3004 ([removed](https://github.com/rust-lang/cargo/commit/875a8aba7916b63c3c8464008a271f6082e23779#diff-149dd4362a3b0dc13b113762713119dfL477), [added](https://github.com/rust-lang/cargo/commit/875a8aba7916b63c3c8464008a271f6082e23779#diff-149dd4362a3b0dc13b113762713119dfR678)), I'm assuming unintentionally?

The regression has not yet hit the beta channel; `cargo-0.17.0-nightly (0bb8047 2017-02-06)` generates the src/lib.rs I expect.

7 years agoRestore the generated tests module created by `cargo new`
Carol (Nichols || Goulding) [Sat, 4 Mar 2017 20:51:09 +0000 (15:51 -0500)]
Restore the generated tests module created by `cargo new`

Appears to have been removed unintentionally in #3004.

7 years agoAdd year to project template variables
J. Ryan Stinnett [Fri, 3 Mar 2017 18:49:44 +0000 (12:49 -0600)]
Add year to project template variables

7 years agoAuto merge of #3791 - sunng87:port-handlebars-to-serde, r=alexcrichton
bors [Fri, 3 Mar 2017 15:40:30 +0000 (15:40 +0000)]
Auto merge of #3791 - sunng87:port-handlebars-to-serde, r=alexcrichton

Use serde type system for handlebars

This will help cargo to drop rustc_serialize as dependency (#3682). Handlebars actually supports using serde_json as its type system instead of rustc_serialize. And I'm planning to drop rustc_serialize in future releases.

7 years agoUse serde type system for handlebars
Ning Sun [Fri, 3 Mar 2017 09:25:06 +0000 (17:25 +0800)]
Use serde type system for handlebars

This will help cargo to drop rustc_serialize as dependency

7 years agoAuto merge of #3782 - alexcrichton:more-proc-macro, r=matklad
bors [Fri, 3 Mar 2017 08:05:43 +0000 (08:05 +0000)]
Auto merge of #3782 - alexcrichton:more-proc-macro, r=matklad

Accept proc_macro in addition to proc-macro

More historical behavior...

7 years agoAuto merge of #3786 - joshtriplett:directory-registry-no-url, r=alexcrichton
bors [Thu, 2 Mar 2017 03:27:25 +0000 (03:27 +0000)]
Auto merge of #3786 - joshtriplett:directory-registry-no-url, r=alexcrichton

tests/directory: Remove unnecessary dummy registry URL for crates.io

Older versions of cargo required this; current versions do not.  All of
the tests still pass with it removed.

7 years agoAuto merge of #3785 - joshtriplett:insulate-tests-from-user-env, r=alexcrichton
bors [Thu, 2 Mar 2017 02:10:56 +0000 (02:10 +0000)]
Auto merge of #3785 - joshtriplett:insulate-tests-from-user-env, r=alexcrichton

tests: Insulate from user git environment

Several tests in "cargo test" would fail if the user had any of the Git
environment variables set for name or email address, because those
environment variables would override the tested configuration.  Filter
out those environment variables.

7 years agotests: Insulate from user git environment
Josh Triplett [Wed, 1 Mar 2017 23:50:15 +0000 (15:50 -0800)]
tests: Insulate from user git environment

Several tests in "cargo test" would fail if the user had any of the Git
environment variables set for name or email address, because those
environment variables would override the tested configuration.  Filter
out those environment variables.

7 years agotests/directory: Remove unnecessary dummy registry URL for crates.io
Josh Triplett [Thu, 2 Mar 2017 00:35:42 +0000 (16:35 -0800)]
tests/directory: Remove unnecessary dummy registry URL for crates.io

Older versions of cargo required this; current versions do not.  All of
the tests still pass with it removed.

7 years agoAuto merge of #3767 - ehiggs:fix-init-bin-lib-section, r=alexcrichton
bors [Wed, 1 Mar 2017 20:25:22 +0000 (20:25 +0000)]
Auto merge of #3767 - ehiggs:fix-init-bin-lib-section, r=alexcrichton

Fix for #3722

When using init, add [[bin]] and [lib] section where appropriate.

7 years agoAccept proc_macro in addition to proc-macro
Alex Crichton [Wed, 1 Mar 2017 17:22:05 +0000 (09:22 -0800)]
Accept proc_macro in addition to proc-macro

More historical behavior...

7 years agoAuto merge of #3779 - amotz:appveyor-url, r=alexcrichton
bors [Wed, 1 Mar 2017 16:56:39 +0000 (16:56 +0000)]
Auto merge of #3779 - amotz:appveyor-url, r=alexcrichton

Fix AppVeyor badge URL

7 years agoAuto merge of #3721 - alexcrichton:dupe-doctest, r=brson
bors [Wed, 1 Mar 2017 15:05:45 +0000 (15:05 +0000)]
Auto merge of #3721 - alexcrichton:dupe-doctest, r=brson

Fix deps with `cargo test --all` and doctests

This commit fixes `cargo test --all` with the way we ship libraries to `rustdoc
--test`. I'm... not entirely sure what the previous incarnation was doing but
the current organization is to interpret `compilation.libraries` as a mapping
from a package to the list of crates it needs to link to test.

This updates the support in `cargo_rustc/mod.rs` to create the map appropriately
and tweaks the loop in `cargo_test.rs` as well.

Closes rust-lang/rust#39879

7 years agoFix deps with `cargo test --all` and doctests
Alex Crichton [Thu, 16 Feb 2017 16:04:09 +0000 (08:04 -0800)]
Fix deps with `cargo test --all` and doctests

This commit fixes `cargo test --all` with the way we ship libraries to `rustdoc
--test`. I'm... not entirely sure what the previous incarnation was doing but
the current organization is to interpret `compilation.libraries` as a mapping
from a package to the list of crates it needs to link to test.

This updates the support in `cargo_rustc/mod.rs` to create the map appropriately
and tweaks the loop in `cargo_test.rs` as well.

Closes rust-lang/rust#39879

7 years agoFix AppVeyor badge URL
amotz [Wed, 1 Mar 2017 12:55:57 +0000 (21:55 +0900)]
Fix AppVeyor badge URL

7 years agoAuto merge of #3775 - alexcrichton:version-info, r=alexcrichton
bors [Wed, 1 Mar 2017 03:36:24 +0000 (03:36 +0000)]
Auto merge of #3775 - alexcrichton:version-info, r=alexcrichton

Prefer CARGO_PKG_* in version info

These are always set by Cargo and avoids rustbuild-building-cargo to need to
parse semver

7 years agoAuto merge of #3699 - alexcrichton:sslop, r=brson
bors [Wed, 1 Mar 2017 01:59:31 +0000 (01:59 +0000)]
Auto merge of #3699 - alexcrichton:sslop, r=brson

Add an option to ignore SSL revocation checking

This is apparently required in some Windows setups to get past SSL context
creation in schannel.

7 years agoAuto merge of #3776 - alexcrichton:underscores, r=matklad
bors [Tue, 28 Feb 2017 22:28:06 +0000 (22:28 +0000)]
Auto merge of #3776 - alexcrichton:underscores, r=matklad

Accept more underscore variants in configuration

Preserving more historical behavior of the old TOML parser.

7 years agoAccept more underscore variants in configuration
Alex Crichton [Tue, 28 Feb 2017 19:09:34 +0000 (11:09 -0800)]
Accept more underscore variants in configuration

Preserving more historical behavior of the old TOML parser.

7 years agoPrefer CARGO_PKG_* in version info
Alex Crichton [Tue, 28 Feb 2017 17:45:08 +0000 (09:45 -0800)]
Prefer CARGO_PKG_* in version info

These are always set by Cargo and avoids rustbuild-building-cargo to need to
parse semver

7 years agoAuto merge of #3771 - alexcrichton:read-more, r=matklad
bors [Tue, 28 Feb 2017 14:26:05 +0000 (14:26 +0000)]
Auto merge of #3771 - alexcrichton:read-more, r=matklad

Accept `default_features` for `default-features`

This was accepted by this historical TOML parser, so we'll need to preserve this
ability.

Closes #3768

7 years agoAuto merge of #3770 - jbendig:issue_3762, r=alexcrichton
bors [Mon, 27 Feb 2017 22:04:26 +0000 (22:04 +0000)]
Auto merge of #3770 - jbendig:issue_3762, r=alexcrichton

Fixes #3762

Fixes issue #3762. `cargo test` and `cargo bench` should no longer compile binaries with required features that have not been selected.

7 years agoAccept `default_features` for `default-features`
Alex Crichton [Mon, 27 Feb 2017 22:01:33 +0000 (14:01 -0800)]
Accept `default_features` for `default-features`

This was accepted by this historical TOML parser, so we'll need to preserve this
ability.

Closes #3768

7 years agoRemove tab characters.
Ewan Higgs [Mon, 27 Feb 2017 21:58:13 +0000 (22:58 +0100)]
Remove tab characters.

:bowing_man: