-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Emit error on [target.'cfg(debug_assertions)'.dependencies] and similar #7660
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
Ok, it looks like a few of the tests are using invalid keys. Is there a reason for this, like a way to provide custom cfg values? Should I fix the tests or should cargo maybe only error on |
Thanks for the PR! I think we'll probably want a blacklist as opposed to a whitelist of names, since you can also affect dependency selection with |
Ok, makes sense, I changed it to only error on |
Looks good to me! I'm curious though, I would suspect that this should start out as a warning, but @ehuss could you elaborate why you thought it should be an error? |
I don't feel strongly about it, it's just that it is an invalid configuration that is not going to work correctly. I'd be happy with a warning. I did a quick scan on crates.io, and found the following manifests that use one of these patterns: debug_assertions:
test:
feature:
That's a fairly large number. I'd also like if this could include more help in the error message, since "invalid" is a little terse. I'm not sure how to word it, but something along the lines to indicate that those keys are not supported by Cargo in target expressions. Particularly |
Better error messages would definitely be good, but I wasn't quite sure about the best way to do this. It doesn't look like there is any more advanced error reporting mechanism in cargo, right? So should I just make the It might also be a good idea to link to the docs. Maybe something like this: A warning would obviously work as well, but that would require some slight changes since I don't think it's possible to warn from |
The manifest parsing section of Cargo has the ability to emit warnings, so perhaps that would be a good place to put informational messages? |
Ok, I changed it so that it warns when parsing the manifest. Not sure if it makes sense to keep that code in |
@bors: r+ Looks great to me, thanks! |
📌 Commit aa93f61 has been approved by |
Emit error on [target.'cfg(debug_assertions)'.dependencies] and similar Closes #7634 Cargo now emits an error if an unsupported cfg key or name is used for specifying a target. This PR also updates the docs to clarify this behavior.
☀️ Test successful - checks-azure |
Bump cargo-platform version. Needed for changes from #7660.
Update cargo, books Update nomicon, cargo, reference, book, rust-by-example, embedded-book ## nomicon 2 commits in 041c46e692a2592853aeca132c8dfe8eb5a79a9e..8be35b201f9cf0a4c3fcc96c83ac21671dcf3112 2019-11-20 16:46:45 +0100 to 2019-12-01 13:02:12 -0500 - Update unwinding.md - ci: remove needless rust-docs component ## cargo 15 commits in 626f0f40efd32e6b3dbade50cd53fdfaa08446ba..5a139f7e6d67fd8a416a3f19d8e01581d24c0333 2019-12-03 16:53:04 +0000 to 2019-12-10 20:17:50 +0000 - Bump cargo-platform version. (rust-lang/cargo#7693) - Add a test for `cargo locate-project` (rust-lang/cargo#7690) - Emit error on [target.'cfg(debug_assertions)'.dependencies] and similar (rust-lang/cargo#7660) - Update the layout of `Cargo Commands` in doc (rust-lang/cargo#7687) - Features and dependencies can't have the same name (rust-lang/cargo#7682) - Fix some typos in doc (rust-lang/cargo#7672) - Add test for `NAME` environment variable when `cargo new` (rust-lang/cargo#7667) - Add test for `GIT_COMMITTER_EMAIL` when `cargo new` (rust-lang/cargo#7666) - document support for Bitbucket Pipelines badges (rust-lang/cargo#7663) - Add cargo-vendor to the list of cargo commands in doc (rust-lang/cargo#7659) - Fix typo in section 'Caching the Cargo home in CI' (rust-lang/cargo#7661) - Docs: Add an appendix on git authentication. (rust-lang/cargo#7658) - Remove --offline empty index error. (rust-lang/cargo#7655) - Change the link destination of cargo book contribution (rust-lang/cargo#7657) - Add a --offline hint. (rust-lang/cargo#7654) ## reference 2 commits in 9e843ae..787e8d8 2019-11-24 17:44:04 +0100 to 2019-12-10 10:01:29 -0800 - Update for visibility syntax changes. (rust-lang/reference#722) - document `bind_by_move_pattern_guards` (rust-lang/reference#720) ## book 2 commits in 81ebaa2a3f88d4d106516c489682e64cacba4f60..ef8bb568035ded8ddfa30a9309026638cc3c8136 2019-11-15 08:30:04 -0800 to 2019-11-28 11:00:04 -0600 - Remove optional commas from match arms in ch18-03 (rust-lang/book#2176) - Remove call_box() from ch20-03 (rust-lang/book#2177) ## rust-by-example 1 commits in 4835e025826729827a94fdeb7cb85fed288d08bb..b7ac1bc76b7d02a43c83b3a931d226f708aa1ff4 2019-11-14 09:20:43 -0300 to 2019-12-02 11:38:43 -0300 - Make TryFrom & TryInto example editable (rust-lang/rust-by-example#1297) ## embedded-book 1 commits in 5ca585c4a7552efb546e7681c3de0712f4ae4fdc..c26234930282210849256e4ecab925f0f2daf3be 2019-08-27 13:39:14 +0000 to 2019-12-07 17:25:11 +0000 - Fix `impl Gpio` -> `impl GpioConfig` (rust-embedded/book#216)
Update cargo, books Update nomicon, cargo, reference, book, rust-by-example, embedded-book ## nomicon 2 commits in 041c46e692a2592853aeca132c8dfe8eb5a79a9e..8be35b201f9cf0a4c3fcc96c83ac21671dcf3112 2019-11-20 16:46:45 +0100 to 2019-12-01 13:02:12 -0500 - Update unwinding.md - ci: remove needless rust-docs component ## cargo 15 commits in 626f0f40efd32e6b3dbade50cd53fdfaa08446ba..5a139f7e6d67fd8a416a3f19d8e01581d24c0333 2019-12-03 16:53:04 +0000 to 2019-12-10 20:17:50 +0000 - Bump cargo-platform version. (rust-lang/cargo#7693) - Add a test for `cargo locate-project` (rust-lang/cargo#7690) - Emit error on [target.'cfg(debug_assertions)'.dependencies] and similar (rust-lang/cargo#7660) - Update the layout of `Cargo Commands` in doc (rust-lang/cargo#7687) - Features and dependencies can't have the same name (rust-lang/cargo#7682) - Fix some typos in doc (rust-lang/cargo#7672) - Add test for `NAME` environment variable when `cargo new` (rust-lang/cargo#7667) - Add test for `GIT_COMMITTER_EMAIL` when `cargo new` (rust-lang/cargo#7666) - document support for Bitbucket Pipelines badges (rust-lang/cargo#7663) - Add cargo-vendor to the list of cargo commands in doc (rust-lang/cargo#7659) - Fix typo in section 'Caching the Cargo home in CI' (rust-lang/cargo#7661) - Docs: Add an appendix on git authentication. (rust-lang/cargo#7658) - Remove --offline empty index error. (rust-lang/cargo#7655) - Change the link destination of cargo book contribution (rust-lang/cargo#7657) - Add a --offline hint. (rust-lang/cargo#7654) ## reference 2 commits in 9e843ae..787e8d8 2019-11-24 17:44:04 +0100 to 2019-12-10 10:01:29 -0800 - Update for visibility syntax changes. (rust-lang/reference#722) - document `bind_by_move_pattern_guards` (rust-lang/reference#720) ## book 2 commits in 81ebaa2a3f88d4d106516c489682e64cacba4f60..ef8bb568035ded8ddfa30a9309026638cc3c8136 2019-11-15 08:30:04 -0800 to 2019-11-28 11:00:04 -0600 - Remove optional commas from match arms in ch18-03 (rust-lang/book#2176) - Remove call_box() from ch20-03 (rust-lang/book#2177) ## rust-by-example 1 commits in 4835e025826729827a94fdeb7cb85fed288d08bb..b7ac1bc76b7d02a43c83b3a931d226f708aa1ff4 2019-11-14 09:20:43 -0300 to 2019-12-02 11:38:43 -0300 - Make TryFrom & TryInto example editable (rust-lang/rust-by-example#1297) ## embedded-book 1 commits in 5ca585c4a7552efb546e7681c3de0712f4ae4fdc..c26234930282210849256e4ecab925f0f2daf3be 2019-08-27 13:39:14 +0000 to 2019-12-07 17:25:11 +0000 - Fix `impl Gpio` -> `impl GpioConfig` (rust-embedded/book#216)
Update cargo, books Update nomicon, cargo, reference, book, rust-by-example, embedded-book ## nomicon 2 commits in 041c46e692a2592853aeca132c8dfe8eb5a79a9e..8be35b201f9cf0a4c3fcc96c83ac21671dcf3112 2019-11-20 16:46:45 +0100 to 2019-12-01 13:02:12 -0500 - Update unwinding.md - ci: remove needless rust-docs component ## cargo 15 commits in 626f0f40efd32e6b3dbade50cd53fdfaa08446ba..5a139f7e6d67fd8a416a3f19d8e01581d24c0333 2019-12-03 16:53:04 +0000 to 2019-12-10 20:17:50 +0000 - Bump cargo-platform version. (rust-lang/cargo#7693) - Add a test for `cargo locate-project` (rust-lang/cargo#7690) - Emit error on [target.'cfg(debug_assertions)'.dependencies] and similar (rust-lang/cargo#7660) - Update the layout of `Cargo Commands` in doc (rust-lang/cargo#7687) - Features and dependencies can't have the same name (rust-lang/cargo#7682) - Fix some typos in doc (rust-lang/cargo#7672) - Add test for `NAME` environment variable when `cargo new` (rust-lang/cargo#7667) - Add test for `GIT_COMMITTER_EMAIL` when `cargo new` (rust-lang/cargo#7666) - document support for Bitbucket Pipelines badges (rust-lang/cargo#7663) - Add cargo-vendor to the list of cargo commands in doc (rust-lang/cargo#7659) - Fix typo in section 'Caching the Cargo home in CI' (rust-lang/cargo#7661) - Docs: Add an appendix on git authentication. (rust-lang/cargo#7658) - Remove --offline empty index error. (rust-lang/cargo#7655) - Change the link destination of cargo book contribution (rust-lang/cargo#7657) - Add a --offline hint. (rust-lang/cargo#7654) ## reference 2 commits in 9e843ae..787e8d8 2019-11-24 17:44:04 +0100 to 2019-12-10 10:01:29 -0800 - Update for visibility syntax changes. (rust-lang/reference#722) - document `bind_by_move_pattern_guards` (rust-lang/reference#720) ## book 2 commits in 81ebaa2a3f88d4d106516c489682e64cacba4f60..ef8bb568035ded8ddfa30a9309026638cc3c8136 2019-11-15 08:30:04 -0800 to 2019-11-28 11:00:04 -0600 - Remove optional commas from match arms in ch18-03 (rust-lang/book#2176) - Remove call_box() from ch20-03 (rust-lang/book#2177) ## rust-by-example 1 commits in 4835e025826729827a94fdeb7cb85fed288d08bb..b7ac1bc76b7d02a43c83b3a931d226f708aa1ff4 2019-11-14 09:20:43 -0300 to 2019-12-02 11:38:43 -0300 - Make TryFrom & TryInto example editable (rust-lang/rust-by-example#1297) ## embedded-book 1 commits in 5ca585c4a7552efb546e7681c3de0712f4ae4fdc..c26234930282210849256e4ecab925f0f2daf3be 2019-08-27 13:39:14 +0000 to 2019-12-07 17:25:11 +0000 - Fix `impl Gpio` -> `impl GpioConfig` (rust-embedded/book#216)
….toml. This is not supported and is the same as putting the contents in [dependencies] anyway. It became a warning in rust-lang/cargo#7660.
….toml. This is not supported and is the same as putting the contents in [dependencies] anyway. It became a warning in rust-lang/cargo#7660.
….toml. This is not supported and is the same as putting the contents in [dependencies] anyway. It became a warning in rust-lang/cargo#7660. Backport of 4151cd4.
Closes #7634
Cargo now emits an error if an unsupported cfg key or name is used for specifying a target.
This PR also updates the docs to clarify this behavior.