-
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
Import the cargo-vendor subcommand into Cargo #6869
Conversation
r? @nrc (rust_highfive has picked a reviewer for you, use r? to override) |
Note that I suspect we can't land this necessarily as-is, but I wanted to get the conversation started! @ehuss could you help me out a bit with |
Yes, the adoc files are written by hand. You need to install asciidoctor and run |
Now with documentation! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To add the man page to the website, it needs to be added to src/doc/src/SUMMARY.md
. I'm not sure which category to put it in, maybe "manifest commands" or create a new category? Then add a markdown file that includes the html (see src/doc/src/commands/cargo-build.md
as an example).
(I have to go, not sure what is wrong with ignore_files
extracting a file, will take a look when I return.)
eba9395
to
8fff7db
Compare
Looks great! Is this ready to go? If so, r=me. It wasn't clear to me if there was more you wanted to do now. |
☔ The latest upstream changes (presumably #6865) made this pull request unmergeable. Please resolve the merge conflicts. |
Do you have thoughts on the breakage relative to |
Just to be clear, is this the set of flags we are talking about?
I have no sense of how many people are using these flags, or how you decided which to leave out. Googling around, I don't see much. Like it looks like Absent any more information, I would lean towards what you said (use Perhaps we could just add the flags here with the hidden attribute, and check if they are used and raise an error informing the user why the flag is not supported anymore, and maybe ask them to file an issue here? |
Yeah it's just those flags, and I also don't have a great sense of how often they're used. I like the idea of hidden help flags that redirect users to file issues here, so I'll implement that. |
Alright, that makes me comfortable with this PR, so... @rfcbot fcp merge |
Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members: Concerns:
Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
Do you have a sense of who and how many people use cargo vendor in its current state? What is the motivation for moving it into Cargo rather than maintaining it as an 'official' plugin? |
@rfcbot concern why better to be built in? (see above comment) |
A good question! We talked about this briefly in the last cargo mtg but I'm realizing now I never actually wrote down the rationale, so now's a good a time as any! I get the impression that usage of It's certainly possible to keep it as an external crate, but it comes with all the drawbacks of "oh now you have to |
☔ The latest upstream changes (presumably #6880) made this pull request unmergeable. Please resolve the merge conflicts. |
|
FWIW, I also found |
Can it be a rustup component? Or is rustup also met with some resistance? |
Update cargo Update cargo 19 commits in 545f354259be4e9745ea00a524c0e4c51df01aa6..807429e1b6da4e2ec52488ef2f59e77068c31e1f 2019-05-23 17:45:30 +0000 to 2019-06-11 14:06:10 +0000 - Stabilize publish-lockfile. (rust-lang/cargo#7026) - change package cache lock message (rust-lang/cargo#7029) - Fix documenting an example. (rust-lang/cargo#7023) - Fix nonconcurrent tests (rust-lang/cargo#6900) - Update git2 crates for libgit2 0.28 (rust-lang/cargo#7018) - fix bunch of clippy warnings (rust-lang/cargo#7019) - Ignore remap-path-prefix in metadata hash. (rust-lang/cargo#6966) - Don't synthesize feature diretives for non-optional deps (rust-lang/cargo#7010) - Handle pipelined tests of libraries (rust-lang/cargo#7008) - Import the cargo-vendor subcommand into Cargo (rust-lang/cargo#6869) - Remove unnecessary outlives bounds (rust-lang/cargo#7000) - Catch filename output collisions in rustdoc. (rust-lang/cargo#6998) - the testing SAT solver was messed up by a refactor (rust-lang/cargo#6995) - Add some hints to the docs for `cfg()` targets (rust-lang/cargo#6990) - Test the Resolver against the varisat Library (rust-lang/cargo#6980) - Update changelog. (rust-lang/cargo#6984) - Update cache-messages tracking issue. (rust-lang/cargo#6987) - zsh: Add --all-targets option to cargo-check and cargo-build (rust-lang/cargo#6985) - Fix typo (rust-lang/cargo#6982)
Update cargo Update cargo 19 commits in 545f354259be4e9745ea00a524c0e4c51df01aa6..807429e1b6da4e2ec52488ef2f59e77068c31e1f 2019-05-23 17:45:30 +0000 to 2019-06-11 14:06:10 +0000 - Stabilize publish-lockfile. (rust-lang/cargo#7026) - change package cache lock message (rust-lang/cargo#7029) - Fix documenting an example. (rust-lang/cargo#7023) - Fix nonconcurrent tests (rust-lang/cargo#6900) - Update git2 crates for libgit2 0.28 (rust-lang/cargo#7018) - fix bunch of clippy warnings (rust-lang/cargo#7019) - Ignore remap-path-prefix in metadata hash. (rust-lang/cargo#6966) - Don't synthesize feature diretives for non-optional deps (rust-lang/cargo#7010) - Handle pipelined tests of libraries (rust-lang/cargo#7008) - Import the cargo-vendor subcommand into Cargo (rust-lang/cargo#6869) - Remove unnecessary outlives bounds (rust-lang/cargo#7000) - Catch filename output collisions in rustdoc. (rust-lang/cargo#6998) - the testing SAT solver was messed up by a refactor (rust-lang/cargo#6995) - Add some hints to the docs for `cfg()` targets (rust-lang/cargo#6990) - Test the Resolver against the varisat Library (rust-lang/cargo#6980) - Update changelog. (rust-lang/cargo#6984) - Update cache-messages tracking issue. (rust-lang/cargo#6987) - zsh: Add --all-targets option to cargo-check and cargo-build (rust-lang/cargo#6985) - Fix typo (rust-lang/cargo#6982)
Update cargo Update cargo 19 commits in 545f354259be4e9745ea00a524c0e4c51df01aa6..807429e1b6da4e2ec52488ef2f59e77068c31e1f 2019-05-23 17:45:30 +0000 to 2019-06-11 14:06:10 +0000 - Stabilize publish-lockfile. (rust-lang/cargo#7026) - change package cache lock message (rust-lang/cargo#7029) - Fix documenting an example. (rust-lang/cargo#7023) - Fix nonconcurrent tests (rust-lang/cargo#6900) - Update git2 crates for libgit2 0.28 (rust-lang/cargo#7018) - fix bunch of clippy warnings (rust-lang/cargo#7019) - Ignore remap-path-prefix in metadata hash. (rust-lang/cargo#6966) - Don't synthesize feature diretives for non-optional deps (rust-lang/cargo#7010) - Handle pipelined tests of libraries (rust-lang/cargo#7008) - Import the cargo-vendor subcommand into Cargo (rust-lang/cargo#6869) - Remove unnecessary outlives bounds (rust-lang/cargo#7000) - Catch filename output collisions in rustdoc. (rust-lang/cargo#6998) - the testing SAT solver was messed up by a refactor (rust-lang/cargo#6995) - Add some hints to the docs for `cfg()` targets (rust-lang/cargo#6990) - Test the Resolver against the varisat Library (rust-lang/cargo#6980) - Update changelog. (rust-lang/cargo#6984) - Update cache-messages tracking issue. (rust-lang/cargo#6987) - zsh: Add --all-targets option to cargo-check and cargo-build (rust-lang/cargo#6985) - Fix typo (rust-lang/cargo#6982)
Cargo 1.37 imported `cargo-vendor` as built-in command [1] [1] rust-lang/cargo#6869 (cherry picked from commit aed74e8)
This commit imports the external alexcrichton/cargo-vendor
repository into Cargo itself. This means it will no longer be
necessary to install the
cargo-vendor
subcommand in order to vendordependencies. Additionally it'll always support the latest feature set
of Cargo as it'll be built into Cargo!
All tests were imported as part of this commit, but not all features
were imported. Some flags have been left out that were added later in
the lifetime of
cargo vendor
which seem like they're more questionableto stabilize. I'm hoping that they can have separate PRs adding their
implementation here, and we can make a decision of their stabilization
at a later date.
The current man page for
cargo vendor -h
will look like:Since this change is not importing 100% of the functionality of the
existing
cargo vendor
this change does run a risk of being a breakingchange for any folks using such functionality. Executing
cargo vendor
will favor the built-in command rather than an external subcommand,
causing unimplemented features to become errors about flag usage.