Skip to content

refactor: Use clap to suggest alternative argument for unsupported arguments #12529

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 4 commits into from
Aug 22, 2023

Conversation

weihanglo
Copy link
Member

@weihanglo weihanglo commented Aug 19, 2023

What does this PR try to resolve?

Part of #11702.

This pull request replaces manual errors with clap native UnknownArgumentValueParser::suggest to give uses alternative arugments, including

  • Suggest --no-fail-fast for --keep-going in cargo test and cargo bench.
  • Suggest cargo-vendor vendor for unsupported cargo tree arguments
    • --no-merge-sources
    • --relative-path
    • --only-git-deps
    • --disallow-duplicates

This PR also renames fn arg_jobs(…) and friends to more reasonable names.

How should we test and review this PR?

cargo t --keep-going
cargo vendor --no-merge-sources
cargo vendor --relative-path
cargo vendor --only-git-deps
cargo vendor --disallow-duplicates

Before

$ cargo vendor --no-merge-sources
error: the crates.io `cargo vendor` command has now been merged into Cargo itself
and does not support the flag `--no-merge-sources` currently; to continue using the flag you
can execute `cargo-vendor vendor ...`, and if you would like to see this flag
supported in Cargo itself please feel free to file an issue at
https://github.com/rust-lang/cargo/issues/new

After

$ cargo vendor --no-merge-sources
error: unexpected argument '--no-merge-sources' found

  tip: the crates.io `cargo vendor` command has been merged into Cargo
  tip: and the flag `--no-merge-sources` isn't supported currently
  tip: to continue using the flag, execute `cargo-vendor vendor ...`
  tip: to suggest this flag supported in Cargo, file an issue at <https://github.com/rust-lang/cargo/issues/new>

Usage: cargo vendor [OPTIONS] [path]

For more information, try '--help'.

@rustbot
Copy link
Collaborator

rustbot commented Aug 19, 2023

r? @epage

(rustbot has picked a reviewer for you, use r? to override)

@weihanglo
Copy link
Member Author

This is current blocked on clap-rs/clap#5081.

@epage
Copy link
Contributor

epage commented Aug 21, 2023

This is current blocked on clap-rs/clap#5081.

This can be worked around on the clap side. We could add to the prelude a maybe_flag function that calls try_get_one and filters out the type-discrepancy error.

@weihanglo weihanglo marked this pull request as ready for review August 22, 2023 06:53
@weihanglo
Copy link
Member Author

@epage this is ready for review. Moved some functional tests to UI tests since it makes more sense matching the entire clap output there.

@weihanglo
Copy link
Member Author

Blocked on #12539 bumping the version of cargo.

@epage epage changed the title refactor: suggest alternative argument for well-known unknown argument fix: suggest alternative argument for well-known unknown argument Aug 22, 2023
@epage
Copy link
Contributor

epage commented Aug 22, 2023

@bors r+

@bors
Copy link
Contributor

bors commented Aug 22, 2023

📌 Commit a31aaac has been approved by epage

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 22, 2023
@epage epage changed the title fix: suggest alternative argument for well-known unknown argument refactor: suggest alternative argument for well-known unknown argument Aug 22, 2023
@epage epage changed the title refactor: suggest alternative argument for well-known unknown argument refactor: Use clap to suggest alternative argument for unsupported arguments Aug 22, 2023
@bors
Copy link
Contributor

bors commented Aug 22, 2023

⌛ Testing commit a31aaac with merge a4c5f11...

bors added a commit that referenced this pull request Aug 22, 2023
refactor: Use clap to suggest alternative argument for unsupported arguments
@bors
Copy link
Contributor

bors commented Aug 22, 2023

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 22, 2023
We don't want to overly match to suggestion help from clap.
@epage
Copy link
Contributor

epage commented Aug 22, 2023

@bors r+

@bors
Copy link
Contributor

bors commented Aug 22, 2023

📌 Commit 77da514 has been approved by epage

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 22, 2023
@bors
Copy link
Contributor

bors commented Aug 22, 2023

⌛ Testing commit 77da514 with merge 50ba4bf...

@bors
Copy link
Contributor

bors commented Aug 22, 2023

☀️ Test successful - checks-actions
Approved by: epage
Pushing 50ba4bf to master...

1 similar comment
@bors
Copy link
Contributor

bors commented Aug 22, 2023

☀️ Test successful - checks-actions
Approved by: epage
Pushing 50ba4bf to master...

@bors
Copy link
Contributor

bors commented Aug 22, 2023

👀 Test was successful, but fast-forwarding failed: 422 Changes must be made through a pull request.

@bors bors merged commit 50ba4bf into rust-lang:master Aug 22, 2023
@weihanglo weihanglo deleted the clap-suggestions branch August 22, 2023 20:06
bors added a commit to rust-lang-ci/rust that referenced this pull request Aug 23, 2023
Update cargo

3 commits in 80eca0e58fb2ff52c1e94fc191b55b37ed73e0e4..2cc50bc0b63ad20da193e002ba11d391af0104b7
2023-08-19 00:52:06 +0000 to 2023-08-22 22:43:08 +0000
- config: merge lists in precedence order (rust-lang/cargo#12515)
- ci: test `resolver-tests` in a separate job (rust-lang/cargo#12540)
- refactor: Use clap to suggest alternative argument for unsupported arguments (rust-lang/cargo#12529)

r? ghost
@ehuss ehuss added this to the 1.74.0 milestone Oct 11, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants