Skip to content
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

Bump clap from 3.1.18 to 3.2.5 and use clap derive #685

Merged
merged 33 commits into from
Jun 19, 2022

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jun 13, 2022

Bumps clap from 3.1.18 to 3.2.1.

Release notes

Sourced from clap's releases.

v3.2.0

[3.2.0] - 2022-06-13

Features

  • Parsed, typed arguments via Arg::value_parser / ArgMatches::{get_one,get_many} (#2683, #3732)
    • Several built-in TypedValueParsers available with an API open for expansion
    • value_parser!(T) macro for selecting a parser for a given type (#3732) and open to expansion via the ValueParserFactory trait (#3755)
    • [&str] is implicitly a value parser for possible values
    • All ArgMatches getters do not assume required arguments (#2505)
    • Add ArgMatches::remove_* variants to transfer ownership
    • Add ArgMatches::try_* variants to avoid panics for developer errors (#3621)
    • Add a get_raw to access the underlying OsStrs
    • PathBuf value parsers imply ValueHint::AnyPath for completions (#3732)
  • Explicit control over parsing via Arg::action (#3774)
    • ArgAction::StoreValue: existing takes_value(true) behavior
    • ArgAction::IncOccurrences: existing takes_value(false) behavior
    • ArgAction::Help: existing --help behavior
    • ArgAction::Version: existing --version behavior
    • ArgAction::Set: Overwrite existing values (like Arg::multiple_occurrences mixed with Command::args_override_self) (#3777)
    • ArgAction::Append: like Arg::multiple_occurrences (#3777)
    • ArgAction::SetTrue: Treat --flag as --flag=true (#3775)
      • Implies Arg::default_value("false") (#3786)
      • Parses Arg::env via Arg::value_parser
    • ArgAction::SetFalse: Treat --flag as --flag=false (#3775)
      • Implies Arg::default_value("true") (#3786)
      • Parses Arg::env via Arg::value_parser
    • ArgAction::Count: Treat --flag --flag --flag as --flag=1 --flag=2 --flag=3 (#3775)
      • Implies Arg::default_value("0") (#3786)
      • Parses Arg::env via Arg::value_parser
  • (derive) Opt-in to new Arg::value_parser / Arg::action with either #[clap(value_parser)] (#3589, #3742) / #[clap(action)] attributes (#3794)
    • Default ValueParser is determined by value_parser! (#3199, #3496)
    • Default ArgAction is determine by a hard-coded lookup on the type (#3794)
  • Command::multicall is now stable for busybox-like programs and REPLs (#2861, #3684)
  • ArgMatches::{try_,}contains_id for checking if there are values for an argument that mirrors the new get_{one,many} API

Fixes

parser

  • Set ArgMatches::value_source and ArgMatches::occurrences_of for external subcommands (#3732)
  • Use value delimiter for Arg::default_missing_values (#3761, #3765)
  • SplitArg::default_value / Arg::env on value delimiters independent of whether -- was used (#3765)
  • Allow applying defaults to flags (#3294, 3775)
  • Defaults no longer satisfy required and its variants (#3793)

Compatibility

MSRV is now 1.56.0 (#3732)

Behavior

... (truncated)

Changelog

Sourced from clap's changelog.

[3.2.1] - 2022-06-13

[3.2.0] - 2022-06-13

Features

  • Parsed, typed arguments via Arg::value_parser / ArgMatches::{get_one,get_many} (#2683, #3732)
    • Several built-in TypedValueParsers available with an API open for expansion
    • value_parser!(T) macro for selecting a parser for a given type (#3732) and open to expansion via the ValueParserFactory trait (#3755)
    • [&str] is implicitly a value parser for possible values
    • All ArgMatches getters do not assume required arguments (#2505)
    • Add ArgMatches::remove_* variants to transfer ownership
    • Add ArgMatches::try_* variants to avoid panics for developer errors (#3621)
    • Add a get_raw to access the underlying OsStrs
    • PathBuf value parsers imply ValueHint::AnyPath for completions (#3732)
  • Explicit control over parsing via Arg::action (#3774)
    • ArgAction::StoreValue: existing takes_value(true) behavior
    • ArgAction::IncOccurrences: existing takes_value(false) behavior
    • ArgAction::Help: existing --help behavior
    • ArgAction::Version: existing --version behavior
    • ArgAction::Set: Overwrite existing values (like Arg::multiple_occurrences mixed with Command::args_override_self) (#3777)
    • ArgAction::Append: like Arg::multiple_occurrences (#3777)
    • ArgAction::SetTrue: Treat --flag as --flag=true (#3775)
      • Implies Arg::default_value("false") (#3786)
      • Parses Arg::env via Arg::value_parser
    • ArgAction::SetFalse: Treat --flag as --flag=false (#3775)
      • Implies Arg::default_value("true") (#3786)
      • Parses Arg::env via Arg::value_parser
    • ArgAction::Count: Treat --flag --flag --flag as --flag=1 --flag=2 --flag=3 (#3775)
      • Implies Arg::default_value("0") (#3786)
      • Parses Arg::env via Arg::value_parser
  • (derive) Opt-in to new Arg::value_parser / Arg::action with either #[clap(value_parser)] (#3589, #3742) / #[clap(action)] attributes (#3794)
    • Default ValueParser is determined by value_parser! (#3199, #3496)
    • Default ArgAction is determine by a hard-coded lookup on the type (#3794)
  • Command::multicall is now stable for busybox-like programs and REPLs (#2861, #3684)
  • ArgMatches::{try_,}contains_id for checking if there are values for an argument that mirrors the new get_{one,many} API

Fixes

parser

  • Set ArgMatches::value_source and ArgMatches::occurrences_of for external subcommands (#3732)
  • Use value delimiter for Arg::default_missing_values (#3761, #3765)
  • SplitArg::default_value / Arg::env on value delimiters independent of whether -- was used (#3765)
  • Allow applying defaults to flags (#3294, 3775)
  • Defaults no longer satisfy required and its variants (#3793)

Compatibility

MSRV is now 1.56.0 (#3732)

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [clap](https://github.com/clap-rs/clap) from 3.1.18 to 3.2.1.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@v3.1.18...clap_complete-v3.2.1)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Jun 13, 2022
@spenserblack
Copy link
Collaborator

spenserblack commented Jun 13, 2022

This introduces a few deprecations. Could be an easy PR to edit for new contributors.

@spenserblack spenserblack added help wanted Extra attention is needed good first issue Good for newcomers labels Jun 13, 2022
@spenserblack spenserblack marked this pull request as draft June 15, 2022 18:56
@spenserblack spenserblack removed help wanted Extra attention is needed good first issue Good for newcomers labels Jun 15, 2022
@spenserblack spenserblack self-assigned this Jun 15, 2022
@dependabot dependabot bot requested a review from Byron as a code owner June 16, 2022 21:22
@o2sh o2sh changed the title Bump clap from 3.1.18 to 3.2.1 Bump clap from 3.1.18 to 3.2.1 and use clap derive Jun 18, 2022
@o2sh o2sh marked this pull request as draft June 18, 2022 20:52
@o2sh o2sh requested review from o2sh and spenserblack and removed request for Byron June 18, 2022 21:30
@o2sh o2sh removed their request for review June 19, 2022 20:08
@o2sh o2sh marked this pull request as ready for review June 19, 2022 20:08
@o2sh o2sh requested review from shuni64 and yoichi as code owners June 19, 2022 20:08
@o2sh o2sh requested review from spenserblack and removed request for spenserblack, shuni64 and yoichi June 19, 2022 20:09
@o2sh o2sh changed the title Bump clap from 3.1.18 to 3.2.1 and use clap derive Bump clap from 3.1.18 to 3.2.5 and use clap derive Jun 19, 2022
@o2sh
Copy link
Owner

o2sh commented Jun 19, 2022

I went a little overboard and thought we may gain by switching to clap derive declaration 😅

Copy link
Collaborator

@spenserblack spenserblack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, this turned into a major change!
It's awesome that you did this, and the CLI config options look a lot more maintainable 🎉

@o2sh o2sh merged commit 2fa44e2 into main Jun 19, 2022
@o2sh o2sh deleted the dependabot/cargo/clap-3.2.1 branch June 19, 2022 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file rust Pull requests that update Rust code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants