-
Notifications
You must be signed in to change notification settings - Fork 4
fix(deps): update rust crate clap to v4 #77
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
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/clap-4.x
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1330456
to
a12b254
Compare
a12b254
to
230f15d
Compare
164032b
to
5511c90
Compare
9f40760
to
b3a613b
Compare
9cc0339
to
58f9c11
Compare
56b6f87
to
c16a768
Compare
19caad4
to
1b5411b
Compare
755008b
to
6b68cef
Compare
6b68cef
to
f2fe4fa
Compare
8d1ca13
to
8b2e10c
Compare
8b2e10c
to
fbfec4a
Compare
fbfec4a
to
7294fad
Compare
dd0f3dc
to
fc455b1
Compare
edf001c
to
ad80cc1
Compare
ad80cc1
to
114e76a
Compare
454dd14
to
786c74c
Compare
786c74c
to
2067cc1
Compare
2067cc1
to
84c5117
Compare
84c5117
to
4ffecc5
Compare
4ffecc5
to
b6e6152
Compare
b6e6152
to
061c68d
Compare
1522a93
to
7f12faa
Compare
b62b32f
to
40d3864
Compare
40d3864
to
6a56b1a
Compare
6a56b1a
to
86590f2
Compare
86590f2
to
11a4191
Compare
11a4191
to
3440c79
Compare
3440c79
to
2389011
Compare
2389011
to
f1f4451
Compare
f1f4451
to
404797a
Compare
e177460
to
5485175
Compare
5485175
to
18f168e
Compare
be7a164
to
646d111
Compare
646d111
to
7376b53
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more here.
This PR contains the following updates:
3.0.14
->4.0.0
Release Notes
clap-rs/clap (clap)
v4.5.48
Compare Source
Documentation
typed_derive
cookbook entryv4.5.47
Compare Source
Features
impl FromArgMatches for ()
impl Args for ()
impl Subcommand for ()
impl FromArgMatches for Infallible
impl Subcommand for Infallible
Fixes
clap
v4.5.46
Compare Source
Features
StyledStr::push_str
v4.5.45
Compare Source
Fixes
ValueEnum
variants now use the full doc comment, not summary, forPossibleValue::help
v4.5.44
Compare Source
Features
Command::mut_subcommands
v4.5.43
Compare Source
Fixes
v4.5.42
Compare Source
Fixes
--help
v4.5.41
Compare Source
Features
Styles::context
andStyles::context_value
to customize the styling of[default: value]
like notes in the--help
v4.5.40
Compare Source
Features
arg!()
macro (e.g.arg!("check-config": ...)
)v4.5.39
Compare Source
Fixes
v4.5.38
Compare Source
Fixes
--
or-
v4.5.37
Compare Source
Features
ArgMatches::try_clear_id()
v4.5.36
Compare Source
Fixes
v4.5.35
Compare Source
Fixes
help_heading
v4.5.34
Compare Source
Fixes
flatten_help(true)
and subcommands without argumentsv4.5.33
Compare Source
Fixes
v4.5.32
Compare Source
Features
Error::remove
Documentation
humantime
tojiff
Internal
pulldown-cmark
v4.5.31
Compare Source
Features
ValueParserFactory
forSaturating<T>
v4.5.30
Compare Source
Fixes
num_args(0..=1)
to be used withSetTrue
takes_values
assertionsv4.5.29
Compare Source
Fixes
ArgMatches::args_present
so not-present flags are considered not-present (matching the documentation)v4.5.28
Compare Source
Features
unstable-markdown
v4.5.27
Compare Source
Documentation
v4.5.26
Compare Source
Fixes
suggestions
featurev4.5.25
Compare Source
Fixes
v4.5.24
Compare Source
Fixes
ignore_errors(true)
and when a suggestion is provided for an unknown argumentv4.5.23
Compare Source
Fixes
allow_negative_numbers
, allowE
againv4.5.22
Compare Source
Fixes
v4.5.21
Compare Source
Fixes
ignore_errors(true)
v4.5.20
Compare Source
Features
CommandExt
v4.5.19
Compare Source
Internal
v4.5.18
Compare Source
Features
Arg::get_display_order
andCommand::get_display_order
v4.5.17
Compare Source
Fixes
v4.5.16
Compare Source
Fixes
derive
feature is missingv4.5.15
Compare Source
Compatiblity
Arg::remove
changed return typesFixes
Arg::remove
return the removed itemv4.5.14
Compare Source
Features
Arg::add
for attaching arbitrary state, like completion hints, toArg
withoutArg
knowing about itv4.5.13
Compare Source
Fixes
#[flatten]
ing an optional#[group(skip)]
v4.5.12
Compare Source
v4.5.11
Compare Source
v4.5.10
Compare Source
v4.5.9
Compare Source
Fixes
v4.5.8
Compare Source
Fixes
v4.5.7
Compare Source
Fixes
num_args
v4.5.6
Compare Source
v4.5.5
Compare Source
Fixes
exclusive
to overriderequired_unless_present
,required_unless_present_any
,required_unless_present_all
v4.5.4
Compare Source
Documentation
typed_derive
cookbook entryv4.5.3
Compare Source
Fixes
v4.5.2
Compare Source
Fixes
ArgMatches::args_present
so not-present flags are considered not-present (matching the documentation)v4.5.1
Compare Source
Internal
v4.5.0
Compare Source
Compatibility
v4.4.18
Compare Source
Fixes
usage
feature, ensure the list of required arguments is uniquev4.4.17
Compare Source
Fixes
panic!
when mixingargs_conflicts_with_subcommands
withArgGroup
(which is implicit withderive
) introduced in 4.4.15v4.4.16
Compare Source
Fixes
v4.4.15
Compare Source
Fixes
args_conflicts_with_subcommands
args_conflicts_with_subcommands
when using subcommand short and long flagsv4.4.14
Compare Source
Documentation
find
cookbook entry to allow repeats of flags/optionsFeatures
num_args(0)
on options which allows making them emulate being a flag for position-tracking flagsv4.4.13
Compare Source
Documentation
v4.4.12
Compare Source
Performance
TypedValueParser
for possible values if neededv4.4.11
Compare Source
Features
Command::mut_group
v4.4.10
Compare Source
Documentation
v4.4.9
Compare Source
Fixes
Command::about
under flattened headingshide
when flattening subcommandsv4.4.8
Compare Source
Features
Command::flatten_help
to allowgit stash -h
like help for subcommandsv4.4.7
Compare Source
Performance
v4.4.6
Compare Source
Internal
anstream
v4.4.5
Compare Source
Fixes
name
orlong_flag
, allow ambiguous-looking matches that unambiguously map back to the same commandlong_flag
, don't panicv4.4.4
Compare Source
Internal
terminal_size
to 0.3v4.4.3
Compare Source
Documentation
v4.4.2
Compare Source
Performance
once_cell
dependencyv4.4.1
Compare Source
Fixes
usage
feature, ensure the list of required arguments is uniquev4.4.0
Compare Source
compatibility
v4.3.24
Compare Source
Fixes
--help
with custom templatesv4.3.23
Compare Source
Fixes
UnknownArgumentValueParser
to not error on flag's absencev4.3.22
Compare Source
Features
UnknownArgumentValueParser
for injecting errors for improving the experience with errorsv4.3.21
Compare Source
Features
TryMapValueParser
so the type can be namedv4.3.20
Compare Source
Features
Command::mut_args
for modifying all arguments en massev4.3.19
Compare Source
Fixes
value_terminator
even in the presence of later multiple-value positional argumentsv4.3.18
Compare Source
Fixes
--
in fewer places where it won't workv4.3.17
Compare Source
Fixes
PossibleValue
descriptions in--help
v4.3.16
Compare Source
Fixes
v4.3.15
Compare Source
Features
anstyle
Documentation
v4.3.14
Compare Source
Features
ArgAction::HelpShort
andArgAction::HelpLong
for explicitly specifying which style of help to displayFixes
[OPTIONS]
in usage if a help or versionArgAction
is usedv4.3.13
Compare Source
v4.3.12
Compare Source
Fixes
v4.3.11
Compare Source
Features
num::Wrapping
,Box
, orArc
Box<str>
,Box<OsStr>
, andBox<Path>
v4.3.10
Compare Source
Performance
v4.3.9
Compare Source
Fixes
Command::ignore_errors
no longer masks help/versionv4.3.8
Compare Source
Fixes
infer_long_arg
, rather than arbitrarily picking one, matching the documentation and subcommand's behaviorv4.3.7
Compare Source
Documentation
v4.3.6
Compare Source
Documentation
clio
v4.3.5
Compare Source
ColorChoice::possible_values
is added to simplify things for builder usersFixes
ColorChoice::to_possible_value
no longer includes descriptions, encouraging shorter help where possiblev4.3.4
Compare Source
Features
Error::exit_code
v4.3.3
Compare Source
Features
Command::defer
for delayed initialization of subcommands to reduce startup times of large applications like denov4.3.2
Compare Source
Fixes
--help
with custom templatesv4.3.1
Compare Source
Fixes
value_terminator
even in the presence of later multiple-value positional argumentsv4.3.0
Compare Source
Fixes
last
assertionvalue_terminator
has higher precedence thanallow_hyphen_values
--help
v4.2.7
Compare Source
Fixes
ArgMatches
v4.2.6
Compare Source
Features
impl Eq<std::any::TypeId> for clap_builder::util::AnyValueId
v4.2.5
Compare Source
Fixes
v4.2.4
Compare Source
Documentation
Command::style
v4.2.3
Compare Source
Features
Command::styles
for theming help/errors (behindunstable-styles
)v4.2.2
Compare Source
Internal
v4.2.1
Compare Source
Fixes
v4.2.0
Compare Source
Compatibility
unstable-replace
feature (open to discussion at #2836)unstable-grouped
featureFeatures
StyledStr
to accept text styled with ANSI escape codesCLICOLOR
,CLICOLOR_FORCE
Fixes
v4.1.14
Compare Source
Features
#[group]
raw attribute supportPerformance
clap_builder
was pulled out ofclap
so it could build in parallel toclap_derive
os_str_bytes
dependency was removed for faster builds and smaller binariesv4.1.13
Compare Source
Performance
Command
v4.1.12
Compare Source
Internal
syn
v2Performance
proc-macro-error
dependencyv4.1.11
Compare Source
Internal
bitflags
v4.1.10
Compare Source
Fixes
v4.1.9
Compare Source
Fixes
get_count
/get_flag
v4.1.8
Compare Source
Fixes
deny
lints on the users behalfv4.1.7
Compare Source
Fixes
v4.1.6
Compare Source
Fixes
--help
just because hidden possible values include a descriptionv4.1.5
Compare Source
Fixes
--help
just because a hidden arg has a possible value with a descriptionv4.1.4
Compare Source
Fixes
disable_colored_help
when usingarg_required_else_help
Performance
arg!
macrov4.1.3
Compare Source
Fixes
subcommands
, rather thansubcommand
v4.1.2
Compare Source
Fixes
get_flag
, rather thanget_one::<bool>
v4.1.1
Compare Source
Features
#[group]
raw attribute supportPerformance
clap_builder
was pulled out ofclap
so it could build in parallel toclap_derive
os_str_bytes
dependency was removed for faster builds and smaller binariesv4.1.0
Compare Source
Compatibility
MSRV changed to 1.64.0
For apps with custom
--help
and--version
flags:--help
and--version
changedWhen apps have errors imitating clap's error style:
Features
ArgMatches::get_occurrences
support for argument values to be grouped by their occurrenceFixes
upgrade_from
when arguments / subcommands are explicitly marked as required--help
and--version
(also helps with overflow)v4.0.32
Compare Source
Fixes
required(true)
, consider args that conflict with its groupv4.0.31
Compare Source
Performance
v4.0.30
Compare Source
Fixes
args_conflicts_with_subcommand
v4.0.29
Compare Source
v4.0.28
Compare Source
Fixes
v4.0.27
Compare Source
Features
Arg::value_parser
acceptVec<impl Into<PossibleValue>>
Display
andFromStr
forColorChoice
Fixes
atty
tois-terminal
v4.0.26
Compare Source
Fixes
ContextKind::as_str
v4.0.25
Compare Source
Features
v4.0.24
Compare Source
Fixes
v4.0.23
Compare Source
Fixes
help
subcommandv4.0.22
Compare Source
Fixes
v4.0.21
Compare Source
Features
long_about
andlong_help
attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)v4.0.20
Compare Source
Fixes
v4.0.19
Compare Source
Features
ColorChoice
now implementsValueEnum
v4.0.18
Compare Source
Fixes
#[command(skip)]
to also work with enum variants with a valuev4.0.17
Compare Source
Fixes
Arg::last(true)
withArg::value_hint(ValueHint::CommandWithArguments)
v4.0.16
Compare Source
Fixes
Arg::exclusive(true)
should not be exclusive with the argument's ownArgGroup
v4.0.15
Compare Source
Fixes
--
when it doesn't helpv4.0.14
Compare Source
Fixes
ArgGroup
inArgMatches
when explicitly specified, fixing derives handling of option-flattened fields (#4375)v4.0.13
Compare Source
Features
()
for fields to mean "don't read" (#4371)v4.0.12
Compare Source
Features
TypedValueParser::try_map
for when adapting an existingTypedValueParser
can failError::new
,Error::with_cmd
, andError::insert
v4.0.11
Compare Source
Fixes
v4.0.10
Compare Source
Features
#[arg(flatten)]
onOption
types (#4211, #4350)v4.0.9
Compare Source
Fixes
#[command(subcommand)]
like in clap v3v4.0.8
Compare Source
Fixes
Help
andVersion
actionsv4.0.7
Compare Source
Features
Fixes
#[group(skip)]
onParser
derivev4.0.6
Compare Source
Features
#[group(skip)]
(#4279, #4301)v4.0.5
Compare Source
v4.0.4
Compare Source
Fixes
v4.0.3
Compare Source
Fixes
required(true)
, consider args that conflict with its groupv4.0.2
Compare Source
v4.0.1
Compare Source
Features
ColorChoice
now implementsValueEnum
v4.0.0
Compare Source
Highlights
Arg::num_args(range)
Clap has had several ways for controlling how many values will be captured without always being clear on how they interacted, including
Arg::multiple_values(true)
Arg::number_of_values(4)
Arg::min_values(2)
Arg::max_values(20)
Arg::takes_value(true)
These have now all been collapsed into
Arg::num_args
which accepts bothsingle values and ranges of values.
num_args
controls how many raw argumentson the command line will be captured as values per occurrence and independent
of value delimiters.
See Issue 2688 for more background.
Polishing Help
Clap strives to give a polished CLI experience out of the box with little
ceremony. With some feedback that has accumulated over time, we took this
release as an opportunity to re-evaluate our
--help
output to make sure it ismeeting that goal.
In doing this evaluation, we wanted to keep in mind:
Before:
After:
--version
is available for showing the same thing (if the program has a version set)In talking to users, we found some that liked clap's
man
-like experience.When deviating from this, we are making the assumption that those are more
power users and that the majority of users wouldn't look as favorably on being
consistent with
man
.See Issue 4132 for more background.
More Dynamicism
Clap's API has focused on
&str
for performance but this can makedealing with owned data difficult, like
#[arg(default_value_t)]
generating aString from the default value.
Additionally, to avoid
ArgMatches
from borrowing (and for some features wedecided to forgo), clap took the
&str
argument IDs and hashed them. Thisprevented us from providing a usable API for iterating over existing arguments.
Now clap has switched to a string newtype that gives us the flexibility to
decide whether to use
&'static str
,Cow<'static, str>
for fast dynamic behavior, orBox<str>
for dynamic behavior with small binary size.As an extension of that work, you can now call
ArgMatches::ids
to iterateover the arguments and groups that were found when parsing. The newtype
Id
was used to prevent some classes of bugs and to make it easier to understand
when opaque Ids are used vs user-visible strings.
Clearing Out Deprecations
Instead of doing all development on clap 4.0.0, we implemented a lot of new features during clap 3's development, deprecating the old API while introducing the new API, including:
ArgAction
ValueParser
APIPathBuf
(allowing invalid UTF-8)AppSettings
andArgSettings
enums with getters/settersMigrating
Steps:
-h
and--help
output at a minimum (recommendation: trycmd for snapshot testing)arg.action(ArgAction::...)
on each argument (StoreValue
for options andIncOccurrences
for flags)cargo check --features clap/deprecated
and resolve all deprecation warningsdefault-features = false
, runcargo add clap -F help,usage,error-context
cargo add clap -F wrap_help
unless you want to hard code line wrapsExample test (derive):
Example test (builder):
Note: the idiomatic / recommended way of specifying different types of args in the Builder API has changed:
Before
After:
In particular,
num_args
(the replacement fortakes_value
) will default appropriatelyfrom the
ArgAction
and generally only needs to be set explicitly for theother
num_args
use cases.Breaking Changes
Subtle changes (i.e. compiler won't catch):
arg!
now sets one of (#3795):ArgAction::SetTrue
, requiringArgMatches::get_flag
instead ofArgMatches::is_present
ArgAction::Count
, requiringArgMatches::get_count
instead ofArgMatches::occurrences_of
ArgAction::Set
, requiringArgMatches::get_one
instead ofArgMatches::value_of
ArgAction::Append
, requiringArgMatches::get_many
instead ofArgMatches::values_of
ArgAction::Set
,ArgAction::SetTrue
, andArg::Action::SetFalse
nowconflict by default to be like
ArgAction::StoreValue
andArgAction::IncOccurrences
, requiringcmd.args_override_self(true)
to override instead (#4261)Arg
s default action isArgAction::Set
, rather thanArgAction::IncOccurrence
to reduce confusing magic through consistency (#2687, #4032, see also #3977)mut_arg
can no longer be used to customize help and version arguments, instead disable them (Command::disable_help_flag
,Command::disable_version_flag
) and provide your own (#4056)Command
,Arg
,ArgGroup
, andPossibleValue
, assuming'static
.string
feature flag will enable support forString
s (#1041, #2150, #4223)arg!(--flag <value>)
is now optional, instead of required. Add.required(true)
at the end to restore the original behavior (#4206)help
,usage
anderror-context
, requiring adding them back in ifdefault-features = false
(#4236)""
argument for external subcommands to make it easier to distinguish them from built-in commands (#3263)Arg::allow_hyphen_values
, to be consistent withCommand::allow_hyphen_values
(#4187)Arg::value_terminator
must be its own argument on the CLI rather than being in a delimited list (#4025)wrap_help
feature flag, either enable it or hard code your wraps (#4258)DeriveDisplayOrder
the default and removed the setting. To sort help, setnext_display_order(None)
(#2808)Command::next_display_order
instead ofDeriveDisplayOrder
and using its own initial display order value (#2808)Command::help_template
(#4132)Command::help_template
,Arg::help_heading
, andCommand::subcommand_help_heading
(#4132)COMMAND
for the value name. To get the old behavior, seeCommand::subcommand_help_heading
andArg::subcommand_value_name
(#4132, #4155)Command::help_template
. (#4132, #4160)--help
and--version
like anyArgAction::SetTrue
flag (#3776)Arg::id
asverbatim
casing, requiring updating of string references to other args like inconflicts_with
orrequires
(#3282)ValueEnum
variants will now show up in--help
(#3312)Args
, andArgGroup
is created using the type's name, reserving it for future use (#2621, #4209)next_help_heading
can now leak out of a#[clap(flatten)]
, like all other command settings (#4222)Easier to catch changes:
ArgMatches
now returns the argId
s, rather than the values to reduce overhead and offer more flexibility. ([#4072](https://redirect.giConfiguration
📅 Schedule: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.