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.
This PR contains the following updates:
2.34
->3.0
Release Notes
clap-rs/clap (clap)
v3.2.25
Compare Source
[3.2.25] - 2023-04-27
Fixes
v3.2.24
Compare Source
[3.2.24] - 2023-04-25
Fixes
v3.2.23
Compare Source
[3.2.23] - 2022-10-24
Fixes
textwrap
0.16v3.2.22
Compare Source
[3.2.22] - 2022-09-16
Fixes
terminal_size
to the 0.2 releasev3.2.21
Compare Source
[3.2.21] - 2022-09-12
Features
TypedValueParser::map
to allow reusing existing value parsers for other purposesv3.2.20
Compare Source
[3.2.20] - 2022-09-02
Features
ArgMatches::get_count
help forArgAction::Count
ArgMatches::get_flag
help forArgAction::SetTrue
/ArgAction::SetFalse
v3.2.19
Compare Source
[3.2.19] - 2022-08-30
Fixes
args_conflicts_with_subcommand
v3.2.18
Compare Source
Fixes
Command::print_help
now respectsCommand::colored_help
v3.2.17
Compare Source
Fixes
#[clap(id = ...)]
attribute to match Arg's latest APIv3.2.16
Compare Source
Fixes
v3.2.15
Compare Source
Features
default_values_t
anddefault_values_os_t
attributesv3.2.14
Compare Source
Fixes
multiple_values
positional followed by another positional now works with multiple flagsv3.2.13
Compare Source
Documentation
v3.2.12
Compare Source
Fixes
v3.2.11
Compare Source
Features
Arg::get_all_short_aliaes
andArg::get_all_aliases
v3.2.10
Compare Source
Fixes
Command::mut_subcommand
v3.2.8
Compare Source
Features
Command::mut_subcommand
to mirrorCommand::mut_arg
v3.2.7
Compare Source
Fixes
v3.2.6
Compare Source
Fixes
--=
v3.2.5
Compare Source
Fixes
#[clap(default_value_os_t ...)]
introduced in v3.2.3v3.2.4
Compare Source
Fixes
#[clap(parse)]
attribute (#3832)v3.2.3
Compare Source
Fixes
deprecated
Cargo.toml feature (#3830)default as we release the next major version to help draw attention to the
deprecation migration path
v3.2.2
Compare Source
Fixes
gated behind
unstable-v4
#[clap(value_parser, action)]
instead of#[clap(parse)]
(#3827)v3.2.1
Compare Source
Fixes
Command::print_help
now respectsCommand::colored_help
v3.2.0
Compare Source
Compatibility
MSRV is now 1.56.0 (#3732)
Behavior
required
and its variants (#3793)ArgMatches::value_of
and friends, debug asserts were turned into panicsMoving (old location deprecated)
clap::{PossibleValue, ValueHint}
toclap::builder::{PossibleValue, ValueHint}
clap::{Indices, OsValues, ValueSource, Values}
toclap::parser::{Indices, OsValues, ValueSource, Values}
clap::ArgEnum
toclap::ValueEnum
(#3799)Replaced
Arg::allow_invalid_utf8
withArg::value_parser(value_parser!(PathBuf))
(#3753)Arg::validator
/Arg::validator_os
withArg::value_parser
(#3753)Arg::validator_regex
with users providing their ownbuilder::TypedValueParser
(#3756)Arg::forbid_empty_values
withbuilder::NonEmptyStringValueParser
/builder::PathBufValueParser
(#3753)Arg::possible_values
withArg::value_parser([...])
,builder::PossibleValuesParser
, orbuilder::EnumValueParser
(#3753)Arg::max_occurrences
witharg.action(ArgAction::Count).value_parser(value_parser!(u8).range(..N))
for flags (#3797)Arg::multiple_occurrences
withArgAction::Append
orArgAction::Count
though positionals will needArg::multiple_values
(#3772, #3797)Command::args_override_self
withArgAction::Set
(#2627, #3797)AppSettings::NoAutoVersion
withArgAction
orCommand::disable_version_flag
(#3800)AppSettings::NoHelpVersion
withArgAction
orCommand::disable_help_flag
/Command::disable_help_subcommand
(#3800)ArgMatches::{value_of, value_of_os, value_of_os_lossy, value_of_t}
withArgMatches::{get_one,remove_one}
(#3753)ArgMatches::{values_of, values_of_os, values_of_os_lossy, values_of_t}
withArgMatches::{get_many,remove_many}
(#3753)ArgMatches::is_valid_arg
withArgMatches::{try_get_one,try_get_many}
(#3753)ArgMatches::occurrences_of
withArgMatches::value_source
orArgAction::Count
(#3797)ArgMatches::is_present
withArgMatches::contains_id
orArgAction::SetTrue
(#3797)ArgAction::StoreValue
withArgAction::Set
orArgAction::Append
(#3797)ArgAction::IncOccurrences
withArgAction::SetTrue
orArgAction::Count
(#3797)#[clap(parse(...))]
replaced with: (#3589, #3794)parse
attribute), deprecation warnings can besilenced by opting into the new behavior by adding either
#[clap(action)]
or
#[clap(value_parser)]
(ie requesting the default behavior for theseattributes). Alternatively, the
unstable-v4
feature changes the defaultaway from
parse
toaction
/value_parser
.#[clap(parse(from_flag))]
replaced with#[clap(action = ArgAction::SetTrue)]
(#3794)#[clap(parse(from_occurrences))]
replaced with#[clap(action = ArgAction::Count)]
though the field's type must beu8
(#3794)#[clap(parse(from_os_str)]
forPathBuf
, replace it with#[clap(value_parser)]
(as mentioned earlier this will callvalue_parser!(PathBuf)
which will auto-select the rightValueParser
automatically).
#[clap(parse(try_from_str = ...)]
, replace it with#[clap(value_parser = ...)]
TypedValueParser
will be needed and specify it with#[clap(value_parser = ...)]
Features
Arg::value_parser
/ArgMatches::{get_one,get_many}
(#2683, #3732)TypedValueParser
s available with an API open for expansionvalue_parser!(T)
macro for selecting a parser for a given type (#3732) and open to expansion via theValueParserFactory
trait (#3755)[&str]
is implicitly a value parser for possible valuesArgMatches
getters do not assume required arguments (#2505)ArgMatches::remove_*
variants to transfer ownershipArgMatches::try_*
variants to avoid panics for developer errors (#3621)get_raw
to access the underlyingOsStr
sPathBuf
value parsers implyValueHint::AnyPath
for completions (#3732)Arg::action
(#3774)ArgAction::StoreValue
: existingtakes_value(true)
behaviorArgAction::IncOccurrences
: existingtakes_value(false)
behaviorArgAction::Help
: existing--help
behaviorArgAction::Version
: existing--version
behaviorArgAction::Set
: Overwrite existing values (likeArg::multiple_occurrences
mixed withCommand::args_override_self
) (#3777)ArgAction::Append
: likeArg::multiple_occurrences
(#3777)ArgAction::SetTrue
: Treat--flag
as--flag=true
(#3775)Arg::default_value("false")
(#3786)Arg::env
viaArg::value_parser
ArgAction::SetFalse
: Treat--flag
as--flag=false
(#3775)Arg::default_value("true")
(#3786)Arg::env
viaArg::value_parser
ArgAction::Count
: Treat--flag --flag --flag
as--flag=1 --flag=2 --flag=3
(#3775)Arg::default_value("0")
(#3786)Arg::env
viaArg::value_parser
Arg::value_parser
/Arg::action
with either#[clap(value_parser)]
(#3589, #3742) /#[clap(action)]
attributes (#3794)ValueParser
is determined byvalue_parser!
(#3199, #3496)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 newget_{one,many}
APIFixes
default_value_ifs_os
(#3815)parser
ArgMatches::value_source
andArgMatches::occurrences_of
for external subcommands (#3732)Arg::default_missing_values
(#3761, #3765)Arg::default_value
/Arg::env
on value delimiters independent of whether--
was used (#3765)required
and its variants (#3793)v3.1.18
Compare Source
Fixes
arg_enum!
for users migrating to clap3 (#3717)required_unless_present_all
arguments exist...
when not enoughvalue_names
are suppliedgated behind
unstable-v4
required
is not used with conditional required settings (#3660)value_names
thannumber_of_values
(#2695)""
argument for external subcommands (#3263)Arg::id
asverbatim
casing (#3282)v3.1.17
Compare Source
Fixes
arg!
macro to have dashes when quoted, like longsv3.1.16
Compare Source
Fixes
Arg::exclusive
overridesArg::required
, like other conflictshelp_template
variable{name}
to fix problems with{bin}
gated behind
unstable-v4
Arg::long
are no longer allowedCommand::display_name
in the help title rather thanCommand::bin_name
v3.1.15
Compare Source
Fixes
v3.1.14
Compare Source
Fixes
Command::build
with a required positional argument nested several layers in subcommandsv3.1.13
Compare Source
Fixes
Command::write_help
now report required arguments in usage in more circumstancesdebug
featurecolor
feature withdebug
feature enabledv3.1.12
Compare Source
Fixes
v3.1.11
Compare Source
Fixes
Arg::required
, making the behavior consistent with how we calculate conflicts for error reportingArgGroup
overrideArg::required
, making the behavior consistent with how we calculate conflicts for error reportingArg::overrides_with
always overrideArg::required
, not just when the parser processes an overridev3.1.10
Compare Source
Features
Command::build
for custom help generation or other command introspection needsv3.1.9
Compare Source
Fixes
clap_derive
version so a compatible version is always used withclap
v3.1.8
Compare Source
Fixes
Debug
impls to more typesv3.1.7
Compare Source
Fixes
ArgEnum
with non-unit unskipped variantsv3.1.6
Compare Source
Fixes
cargo
feature is neededv3.1.5
Compare Source
Fixes
v3.1.4
Compare Source
Features
PossibleValue::help
in long help (--help
) (gated behindunstable-v4
) (#3312)v3.1.3
Compare Source
Fixes
v3.1.2
Compare Source
Fixes
Documentation
v3.1.1
Compare Source
Fixes
arg_enum!
for users migrating to clap3 (#3717)required_unless_present_all
arguments exist...
when not enoughvalue_names
are suppliedgated behind
unstable-v4
required
is not used with conditional required settings (#3660)value_names
thannumber_of_values
(#2695)""
argument for external subcommands (#3263)Arg::id
asverbatim
casing (#3282)v3.1.0
Compare Source
Compatibility
Changes in behavior of note that are not guaranteed to be compatible across releases:
help
subcommand shows long help like--help
, rather than short help (-h
), deprecatedclap::AppSettings::UseLongFormatForHelpSubcommand
(#3440)Deprecations
clap::Command
is now preferred overclap::App
(#3089 in #3472)clap::command!
is now preferred overclap::app_from_crate
(#3089 in #3474)clap::CommandFactory::command
is now preferred overclap::IntoApp::into_app
(#3089 in #3473)help
subcommand shows long help like--help
, rather than short help (-h
), deprecatedclap::AppSettings::UseLongFormatForHelpSubcommand
(#3440)clap::AppSettings::WaitOnError
, leaving it to the user to implementclap::Command::subcommand_required(true).arg_required_else_help(true)
is now preferred overclap::AppSettings::SubcommandRequiredElseHelp
(#3280)clap::AppSettings
are nearly all deprecated and replaced with builder methods and getters (#2717)clap::ArgSettings
is deprecated and replaced with builder methods and getters (#2717)clap::Arg::id
andclap::ArgGroup::id
are now preferred overclap::Arg::name
andclap::ArgGroup::name
(#3335)clap::Command::next_help_heading
is now preferred overclap::Command::help_heading
(#1807, #1553)clap::error::ErrorKind
is now preferred overclap::ErrorKind
(#3395)clap::Error::kind()
is now preferred overclap::Error::kind
clap::Error::context()
is now preferred overclap::Error::info
(#2628)Note: All items deprecated in 3.0.0 are now hidden in the documentation. (#3458)
Features
clap::ArgMatches::value_source
to determine what insert the value (#1345)clap::Command::next_display_order
(#1807)clap::Error::context
API to open the door for fully-custom error messages (#2628)clap::error::ErrorKind
now implementsDisplay
Fixes
clap::Command::color
to override previous calls (#3449)ArgRequiredElseHelp
precedence overSubcommandRequired
(#3456)clap::Command::arg_required_else_help
, etc (#3076, #1264)-h
conflicts (#3403)--help
(#1549)clap::error::Result
(#3395)Performance
clap::Error
(#3395)Documentation
clap::Arg::validator
parse
attributev3.0.14
Compare Source
Features
ArgMatches::args_present()
to check if any args are presentError::kind()
as we work to deprecate direct member access forError
App::get_version
App::get_long_version
App::get_author
App::get_subcommand_help_heading
App::get_subcommand_value_name
App::get_after_help
App::get_after_long_help
Performance
v3.0.13
Compare Source
Fixes
[]
v3.0.12
Compare Source
Features
default_value_os_t
v3.0.11
Compare Source
Fixes
v3.0.10
Compare Source
Fixes
panic!
from v3.0.8 when usingglobal_setting(PropagateVersion)
.v3.0.9
Compare Source
Features
App::find_subcommand_mut
v3.0.8
Compare Source
Fixes
DisableColoredHelp
oncmd help help
cmd help
v3.0.7
Compare Source
Fixes
App
building (ie will now run inApp::debug_assert
)derive
v3.0.6
Compare Source
Fixes
derive
use clap::ArgEnum
(#3277)v3.0.5
Compare Source
Fixes
docs:
ArgMatches
assertsParser::from_clap
(#3257)v3.0.4
Compare Source
Features
cargo
, exposeArgMatches::is_valid_arg
to avoid panicing on undefined argumentsv3.0.3
Compare Source
Fixes
v3.0.2
Compare Source
Fixes
Last
when checking hyphen values (see #3249 for details)#[must_use]
v3.0.1
Compare Source
Features
ArgMatches::args_present()
to check if any args are presentError::kind()
as we work to deprecate direct member access forError
App::get_version
App::get_long_version
App::get_author
App::get_subcommand_help_heading
App::get_subcommand_value_name
App::get_after_help
App::get_after_long_help
Performance
v3.0.0
Compare Source
Note: clap v3 has been in development for several years and has changed
hands multiple times. Unfortunately, our changelog might be incomplete,
whether in changes or their motivation.
Highlights
A special thanks to the maintainers, contributors, beta users, and sponsors who
have helped along this journey, especially kbknapp.
StructOpt Integration
StructOpt provides a serde-like declarative
approach to defining your parser. The main benefits we've seen so far from integrating are:
(example)
and we've re-designed the
StructOpt
traits so crates built on clap3 can bereused not just with other derives but also people using the builder API.
People can even hand implement these so people using the builder API won't
have the pay the cost for derives.
Custom Help Headings
Previously, clap automatically grouped arguments in the help as either
ARGS
,FLAGS
,OPTIONS
, andSUBCOMMANDS
.You can now override the default group with
Arg::help_heading
andApp::subcommand_help_heading
. To apply a heading to a series of arguments,you can set
App::help_heading
.Deprecations
While a lot of deprecations have been added to clean up the API (overloaded
meaning of
Arg::multiple
) or make things more consistent, some particularhighlights are:
clap_app!
has been deprecated in favor of the builder API witharg!
(clap-rs/clap#2835)Arg::from_usage
has been deprecated in favor ofarg!
(clap-rs/clap#3087)Migrating
From clap v2
-h
and--help
output at a minimum (recommendation: trycmd for snapshot testing)no-default-features
: add thestd
featureApp
creation to a function and add a test similar to the one below, resolving any of its assertionsArgMatches
asserts regardingAllowInvalidUtf8
.Example test:
From structopt 0.3.25
-h
and--help
output at a minimum (recommendation: trycmd for snapshot testing)structopt = "..."
toclap = { version = "3.0", features = ["derive"] }
no-default-features
: add thestd
featureuse
statements fromstructopt
andstructopt::clap
toclap
Example test:
From clap v3.0.0-beta.5
-h
and--help
output at a minimum (recommendation: trycmd for snapshot testing)derive
,env
,cargo
, orunicode
feature flags as neededyaml
,clap_app!
, or usage parser: revert any changes you made for clap3Arg::about
Arg::long_about
back tohelp
andlong_help
and changePossibleValue::about
tohelp
(clap-rs/clap#3075)AppSettings::HelpRequired
toAppSettings::HelpExpected
PossibleValue::hidden
toPossibleValue::hide
App::subcommand_placeholder
toApp::subcommand_value_name
/App::subcommand_help_heading
derive
: see the structopt breaking changes section forVec
changesArgMatches
asserts regardingAllowInvalidUtf8
.BREAKING CHANGES
From clap 2
Subtle changes (i.e. compiler won't catch):
AppSettings::UnifiedHelpMessage
is now default behaviour{flags}
and{unified}
will assert if present inApp::help_template
AppSettings::EnableColoredHelp
is now the default behavior but can beopted-out with
AppSettings::DisableColoredHelp
(clap-rs/clap#2806)
App::override_usage
no longer implies a leading\t
, allowing multi lined usagesArg::require_equals
no longer impliesArgSettings::ForbidEmptyValues
(#2233)Arg::require_delimiter
no longer impliesArgSettings::TakesValue
andArgSettings::UseValueDelimiter
(#2233)Arg::env
,Arg::env_os
,Arg::last
,Arg::require_equals
,Arg::allow_hyphen_values
,Arg::hide_possible_values
,Arg::hide_default_value
,Arg::hide_env_values
,Arg::case_insensitive
andArg::multiple_values
no longer implyArgSettings::TakesValue
(#2233)ArgMatches::is_present
no longer checks subcommand names...
s meaning in usage parser. Before, it always meantmultiple
which is still true for--option [val]...
. Now[name]... --option [val]
results inArgSettings::MultipleOccurrences
.1
to2
(clap-rs/clap#1327)--foo=bar
whentakes_value(false)
(clap-rs/clap#1543)-
for long arguments (-----long
)Easier to catch changes:
no-default-features
, you now have to specify thestd
feature (reserved for future work)env
feature flagArg::env
,Arg::env_os
,Arg::hide_env_values
,ArgSettings::HideEnvValues
cargo
feature flagcrate_name!
,crate_version!
,crate_authors!
,crate_description!
,app_from_crate!
AppSettings::StrictUtf8
is now default behaviour and asserts ifAppSettings::AllowInvalidUtf8ForExternalSubcommands
andArgSettings::AllowInvalidUtf8
andArgMatches::value_of_os
aren't usedtogether
AppSettings::AllowInvalidUtf8
has been removedArg::short
andArg::value_delimiter
now take achar
instead of a&str
ArgMatches
panics on unknown argumentsVersionlessSubcommands
, making it the default (see clap-rs/clap#2812)ArgSettings::EmptyValues
in favor ofArgSettings::ForbidEmptyValues
Arg::validator
now takes first argument asFn(&str) -> Result<O, E: ToString>
instead ofFn(String) -> Result<(), String>
Arg::validator_os
now takes first argument asFn(&OsStr) -> Result<O, OsString>
instead ofFn(&OsStr) -> Result<(), OsString>
Arg::value_name
now sets, rather than appends (see clap-rs/clap#2634)yaml-rust
from 0.3 to 0.4ArgGroup::from(BTreeMap)
toArgGroup::from(yaml)
ArgMatches::usage
withApp::generate_usage
Arg::settings
withArg::setting(Setting1 | Setting2)
App
andArg
now need only one lifetimeApp::with_defaults
, replaced withapp_from_crate
AppSettings::PropagateGlobalValuesDown
(now the default)App
functions, likeApp::write_help
now take&mut self
instead of&self
Error::message
is now private, useError::to_string
Arg::default_value_if
,Arg::default_value_if_os
,Arg::default_value_ifs
,Arg::default_value_ifs_os
now takes the default value parameter as an option (clap-rs/clap#1406)App::print_help
&App::print_long_help
to now returnstd::io::Result
App::write_help
&App::write_long_help
to now returnstd::io::Result
Arg::index
,Arg::number_of_values
,Arg::min_values
,Arg::max_values
to takingusize
instead of u64Error::info
to typeVec<String>
instead ofOption<Vec<String>>
ArgMatches::subcommand
to now returnOption<(&str, &ArgMatches)>
ErrorKind::MissingArgumentOrSubcommand
toErrorKind::DisplayHelpOnMissingArgumentOrSubcommand
ErrorKind::HelpDisplayed
toErrorKind::DisplayHelp
ErrorKind::VersionDisplayed
toErrorKind::DisplayVersion
#[non_exhaustive]
toclap::{ValueHint, ErrorKind, AppSettings, ArgSettings}
(clap-rs/clap#3167)From structopt 0.3.25
App
isn't initialized with crate information anymore. Now opt-in via#[clap(author)]
,#[clap(about)]
,#[clap(version)]
(clap-rs/clap#3034)#[clap(default_value)]
is replaced with#[clap(default_value_t)]
(clap-rs/clap#1694)#[clap(subcommand)]
attribute (clap-rs/clap#2587)Vec<_>
andOption<Vec<_>>
have changed frommultiple
tomultiple_occurrences
On top of the clap 2 changes
Performance
From clap 2
unicode
feature flag for faster builds and smaller binaries for ASCII-only CLIs.env
feature flag for faster builds and smaller binaries.Features
From clap 2
Integration of
structopt::StructOpt
viaclap::Parser
(requiresderive
feature flag)Custom help headings
App::help_heading
(apply to all future args)Arg::help_heading
(apply to current arg)App::subcommand_help_heading
along withApp::subcommand_value_name
(apply to subcommands)AppSettings::UnifiedHelpMessage
is now default behaviour (clap-rs/clap#2807)Deriving of
ArgEnum
for generatingArg::possible_values
(requiresderive
feature flag)Disable built-in help/version behavior with
AppSettings::NoAutoHelp
andAppSettings::NoAutoVersion
Change an existing arg with new builder method
mut_arg
(particularly helpful for--help
and--version
)Provide extra context in long help messages (
--help
) withbefore_long_help
andafter_long_help
(clap-rs/clap#1903)Detect missing help descriptions via debug asserts by enabling
AppSettings::HelpExpected
Aliases for short flags (clap-rs/clap#1896)
Validate UTF-8 values, rather than panicing during
ArgMatches::value_of
thanks toAppSettings::AllowInvalidUtf8ForExternalSubcommands
andArgSettings::AllowInvalidUtf8
ArgMatches
calls do not match the UTF-8 setting.clap::PossibleValue
to allowAllow arguments to conflict with all others via
Arg::exclusive
(clap-rs/clap#1583)Validate arguments with a regex (required
regex
feature flag)Arg::default_missing_value
for cases like--color[=<WHEN>]
(clap-rs/clap#1587)clap::App::color
/clap::ColorChoice
to specify color setting for the appCustom error reporting with
App::error
App::debug_assert
test helperReplace
Arg::multiple(bool)
withArg::multiple_values
/Arg::multiple_occurrences
Added support for flag subcommands like pacman (clap-rs/clap#1361)
Partial parsing via
AppSettings::IgnoreErrors
(clap-rs/clap#1880)Enable
cmd help
to print long help (--help
instead of-h
) withAppSettings::UseLongFormatForHelpSubcommand
(clap-rs/clap#2435)Allow long arg abbreviations like we do with subcommands via
AppSettings::InferLongArgs
(clap-rs/clap#2435)Detect subcommands among positional arguments with
AppSettings::SubcommandPrecedenceOverArg
Give completion scripts hints with
Arg::value_hint
(clap-rs/clap#1793)Allow unsetting defaults with
Arg::default_value_if
,Arg::default_value_if_os
,Arg::default_value_ifs
,Arg::default_value_ifs_os
(clap-rs/clap#1406)Interpret some env variable values as
false
for flags, in addition to "not-present" (clap-rs/clap#2539)n
,no
,f
,false
,off
,0
Added
arg!
macro for creating anArg
from a compile-time usage parser(Experimental) Busybox-like multi-call support
AppSettings::Multicall
behindunstable-multicall
feature flag(Experimental) Alias an argument to anything group of arguments
App::replace
behindunstable-replace
feature flag(Experimental) Grouping of multiple values within multiple occurrences
ArgMatches::grouped_values_of
behindunstable-grouped
feature flagFrom structopt 0.3.25
default_value_t [= <expr>]
attribute (clap-rs/clap#1694)update
APIarg_enum
attribute for integrating withArgEnum
traitOn top of the clap 2 changes
Fixes
From clap 2
App::version
,App::long_version
are set(see clap-rs/clap#2812)
wrap_help
feature is not enabledArg::multiple
withArg::multiple_values
andArg::multiple_occurrences
app_from_crate!
defaults to separating multiple authors with", "
IgnoreCase
is now unicode aware (requiresunicode
feature flag)ColorChoice::Never
, even if that means we skip colors in some casesArgMatches
panics on unknown argumentsauthors
field inCargo.toml
withapp_from_crate
--help
incmd help
withDisableHelpFlag
(clap-rs/clap#3169)--help
incmd help help
that doesn't work (clap-rs/clap#3169)From structopt 0.3.25
SubcommandsNegateReqs
by allowing requiredOption<_>
s (clap-rs/clap#2255)AllowInvalidUtf8
based on parser (clap-rs/clap#751)authors
field inCargo.toml
default_value_os
but treat it likedefault_value
(clap-rs/clap#3031)flatten
andsubcommand
, ensure our doc comment always overrides the nested container's doc comment, whether it has onlyabout
orabout
andlong_about
(fix(derive)!: Set both about/long_about with doc comments clap-rs/clap#3175)On top of the clap 2 changes
Minimum Required Rust
clap
requiresrustc 1.54.0
or greater.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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.