Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Bump clap from 3.1.18 to 3.2.2 #1370

Merged
merged 2 commits into from Jun 17, 2022

Conversation

dependabot[bot]
Copy link
Contributor

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

Bumps clap from 3.1.18 to 3.2.2.

Release notes

Sourced from clap's releases.

v3.2.2

[3.2.2] - 2022-06-14

Fixes

  • (derive) Improve the highlighted code for deprecation warnings

gated behind unstable-v4

  • (derive) Default to #[clap(value_parser, action)] instead of #[clap(parse)] (#3827)

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)

... (truncated)

Changelog

Sourced from clap's changelog.

[3.2.2] - 2022-06-14

Fixes

  • (derive) Improve the highlighted code for deprecation warnings

gated behind unstable-v4

  • (derive) Default to #[clap(value_parser, action)] instead of #[clap(parse)] (#3827)

[3.2.1] - 2022-06-13

[3.2.0] - 2022-06-13

Compatibility

MSRV is now 1.56.0 (#3732)

Behavior

  • Defaults no longer satisfy required and its variants (#3793)
  • When misusing ArgMatches::value_of and friends, debug asserts were turned into panics

Moving (old location deprecated)

  • clap::{PossibleValue, ValueHint} to clap::builder::{PossibleValue, ValueHint}
  • clap::{Indices, OsValues, ValueSource, Values} to clap::parser::{Indices, OsValues, ValueSource, Values}
  • clap::ArgEnum to clap::ValueEnum (#3799)

Replaced

  • Arg::allow_invalid_utf8 with Arg::value_parser(value_parser!(PathBuf)) (#3753)
  • Arg::validator / Arg::validator_os with Arg::value_parser (#3753)
  • Arg::validator_regex with users providing their own builder::TypedValueParser (#3756)
  • Arg::forbid_empty_values with builder::NonEmptyStringValueParser / builder::PathBufValueParser (#3753)
  • Arg::possible_values with Arg::value_parser([...]), builder::PossibleValuesParser, or builder::EnumValueParser (#3753)
  • Arg::max_occurrences with arg.action(ArgAction::Count).value_parser(value_parser!(u8).range(..N)) for flags (#3797)
  • Arg::multiple_occurrences with ArgAction::Append or ArgAction::Count though positionals will need Arg::multiple_values (#3772, #3797)
  • Command::args_override_self with ArgAction::Set (#2627, #3797)
  • AppSettings::NoAutoVersion with ArgAction or Command::disable_version_flag (#3800)
  • AppSettings::NoHelpVersion with ArgAction or Command::disable_help_flag / Command::disable_help_subcommand (#3800)
  • ArgMatches::{value_of, value_of_os, value_of_os_lossy, value_of_t} with ArgMatches::{get_one,remove_one} (#3753)
  • ArgMatches::{values_of, values_of_os, values_of_os_lossy, values_of_t} with ArgMatches::{get_many,remove_many} (#3753)
  • ArgMatches::is_valid_arg with ArgMatches::{try_get_one,try_get_many} (#3753)
  • ArgMatches::occurrences_of with ArgMatches::value_source or ArgAction::Count (#3797)
  • ArgMatches::is_present with ArgMatches::contains_id or ArgAction::SetTrue (#3797)
  • ArgAction::StoreValue with ArgAction::Set or ArgAction::Append (#3797)
  • ArgAction::IncOccurrences with ArgAction::SetTrue or ArgAction::Count (#3797)
  • (derive) #[clap(parse(...))] replaced with: (#3589, #3794)
    • For default parsers (no parse attribute), deprecation warnings can be silenced by opting into the new behavior by adding either #[clap(action)] or #[clap(value_parser)] (ie requesting the default behavior for these attributes). Alternatively, the unstable-v4 feature changes the default away from parse to action/value_parser.

... (truncated)

Commits
  • 7836bed chore: Release
  • ea09f67 docs: Go into more details on derive deprecation
  • a770000 docs: Update changelog
  • 4001db6 Merge pull request #3827 from epage/unstable
  • 1ba6ef9 Merge pull request #3818 from mbhall88/patch-1
  • 0a529c1 fix(derive): Switch default actions/parsers for unstable-v4
  • 0c36710 docs(derive): Update deprecation notice
  • 52403cd Update README.md
  • cc76d28 test(derive): Allow specializing tests for unstable-v4
  • 3686244 test(derive): No longer supporting some wrapped types
  • Additional commits viewable in compare view

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.2.
- [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...v3.2.2)

---
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 A2-insubstantial Pull request requires no code review (e.g., a sub-repository hash update). B0-silent Changes should not be mentioned in any release notes C1-low 📌 labels Jun 14, 2022
@skunert
Copy link
Contributor

skunert commented Jun 17, 2022

This update was a bit of a mess and added a lot of warnings with unclear migration path. Some guidance on how to fix was given in this issue: clap-rs/clap#3822
Also added the "deprecated" feature to clap so no cli options will be added in the old style anymore.

@skunert skunert requested a review from bkchr June 17, 2022 08:54
@@ -47,7 +47,7 @@ sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "mast
sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" }
substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master" }
clap = { version = "3.2", features = ["derive"] }
clap = { version = "3.2.5", features = ["derive", "deprecated"] }
Copy link
Member

Choose a reason for hiding this comment

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

Why do we need deprecated?

Copy link
Member

Choose a reason for hiding this comment

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

Also added the "deprecated" feature to clap so no cli options will be added in the old style anymore.

Now I read this.

But what does that mean?

Copy link
Contributor

@skunert skunert Jun 17, 2022

Choose a reason for hiding this comment

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

So clap authors deprecated some of their derive API to streamline their API for the upcoming 4.0 release. However, the deprecation messaged did not make it obvious how to migrate. So after user feedback in clap-rs/clap#3822, they hid the deprecation messages behind feature flag "deprecated".

However, since I have already adopted the new API now, we want the deprecation messages for the old style so no one will go back.

@skunert
Copy link
Contributor

skunert commented Jun 17, 2022

bot merge

@paritytech-processbot
Copy link

Waiting for commit status.

@paritytech-processbot paritytech-processbot bot merged commit 2e52ce2 into master Jun 17, 2022
@paritytech-processbot paritytech-processbot bot deleted the dependabot/cargo/clap-3.2.2 branch June 17, 2022 15:05
jiguantong added a commit to darwinia-network/darwinia-parachain that referenced this pull request Jul 5, 2022
jiguantong added a commit to darwinia-network/darwinia-parachain that referenced this pull request Jul 9, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A2-insubstantial Pull request requires no code review (e.g., a sub-repository hash update). B0-silent Changes should not be mentioned in any release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants