Open
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
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.
This PR contains the following updates:
3.0.0-beta.2→3.2.25Release Notes
clap-rs/clap (clap)
v3.2.25Compare Source
[3.2.25] - 2023-04-27
Fixes
v3.2.24Compare Source
[3.2.24] - 2023-04-25
Fixes
v3.2.23Compare Source
[3.2.23] - 2022-10-24
Fixes
textwrap0.16v3.2.22Compare Source
[3.2.22] - 2022-09-16
Fixes
terminal_sizeto the 0.2 releasev3.2.21Compare Source
[3.2.21] - 2022-09-12
Features
TypedValueParser::mapto allow reusing existing value parsers for other purposesv3.2.20Compare Source
[3.2.20] - 2022-09-02
Features
ArgMatches::get_counthelp forArgAction::CountArgMatches::get_flaghelp forArgAction::SetTrue/ArgAction::SetFalsev3.2.19Compare Source
[3.2.19] - 2022-08-30
Fixes
args_conflicts_with_subcommandv3.2.18Compare Source
Fixes
Command::print_helpnow respectsCommand::colored_helpv3.2.17Compare Source
Fixes
#[clap(id = ...)]attribute to match Arg's latest APIv3.2.16Compare Source
Fixes
v3.2.15Compare Source
Features
default_values_tanddefault_values_os_tattributesv3.2.14Compare Source
Fixes
multiple_valuespositional followed by another positional now works with multiple flagsv3.2.13Compare Source
Documentation
v3.2.12Compare Source
Fixes
v3.2.11Compare Source
Features
Arg::get_all_short_aliaesandArg::get_all_aliasesv3.2.10Compare Source
Fixes
Command::mut_subcommandv3.2.8Compare Source
Features
Command::mut_subcommandto mirrorCommand::mut_argv3.2.7Compare Source
Fixes
v3.2.6Compare Source
Fixes
--=v3.2.5Compare Source
Fixes
#[clap(default_value_os_t ...)]introduced in v3.2.3v3.2.4Compare Source
Fixes
#[clap(parse)]attribute (#3832)v3.2.3Compare Source
Fixes
#[clap(default_value_os_t ...)]introduced in v3.2.3v3.2.2Compare Source
Fixes
gated behind
unstable-v4#[clap(value_parser, action)]instead of#[clap(parse)](#3827)v3.2.1Compare Source
Fixes
Command::print_helpnow respectsCommand::colored_helpv3.2.0Compare Source
Compatibility
MSRV is now 1.56.0 (#3732)
Behavior
requiredand its variants (#3793)ArgMatches::value_ofand 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::ArgEnumtoclap::ValueEnum(#3799)Replaced
Arg::allow_invalid_utf8withArg::value_parser(value_parser!(PathBuf))(#3753)Arg::validator/Arg::validator_oswithArg::value_parser(#3753)Arg::validator_regexwith users providing their ownbuilder::TypedValueParser(#3756)Arg::forbid_empty_valueswithbuilder::NonEmptyStringValueParser/builder::PathBufValueParser(#3753)Arg::possible_valueswithArg::value_parser([...]),builder::PossibleValuesParser, orbuilder::EnumValueParser(#3753)Arg::max_occurrenceswitharg.action(ArgAction::Count).value_parser(value_parser!(u8).range(..N))for flags (#3797)Arg::multiple_occurrenceswithArgAction::AppendorArgAction::Countthough positionals will needArg::multiple_values(#3772, #3797)Command::args_override_selfwithArgAction::Set(#2627, #3797)AppSettings::NoAutoVersionwithArgActionorCommand::disable_version_flag(#3800)AppSettings::NoHelpVersionwithArgActionorCommand::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_argwithArgMatches::{try_get_one,try_get_many}(#3753)ArgMatches::occurrences_ofwithArgMatches::value_sourceorArgAction::Count(#3797)ArgMatches::is_presentwithArgMatches::contains_idorArgAction::SetTrue(#3797)ArgAction::StoreValuewithArgAction::SetorArgAction::Append(#3797)ArgAction::IncOccurrenceswithArgAction::SetTrueorArgAction::Count(#3797)#[clap(parse(...))]replaced with: (#3589, #3794)parseattribute), 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-v4feature changes the defaultaway from
parsetoaction/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 rightValueParserautomatically).
#[clap(parse(try_from_str = ...)], replace it with#[clap(value_parser = ...)]TypedValueParserwill be needed and specify it with#[clap(value_parser = ...)]Features
Arg::value_parser/ArgMatches::{get_one,get_many}(#2683, #3732)TypedValueParsers available with an API open for expansionvalue_parser!(T)macro for selecting a parser for a given type (#3732) and open to expansion via theValueParserFactorytrait (#3755)[&str]is implicitly a value parser for possible valuesArgMatchesgetters do not assume required arguments (#2505)ArgMatches::remove_*variants to transfer ownershipArgMatches::try_*variants to avoid panics for developer errors (#3621)get_rawto access the underlyingOsStrsPathBufvalue parsers implyValueHint::AnyPathfor completions (#3732)Arg::action(#3774)ArgAction::StoreValue: existingtakes_value(true)behaviorArgAction::IncOccurrences: existingtakes_value(false)behaviorArgAction::Help: existing--helpbehaviorArgAction::Version: existing--versionbehaviorArgAction::Set: Overwrite existing values (likeArg::multiple_occurrencesmixed withCommand::args_override_self) (#3777)ArgAction::Append: likeArg::multiple_occurrences(#3777)ArgAction::SetTrue: Treat--flagas--flag=true(#3775)Arg::default_value("false")(#3786)Arg::envviaArg::value_parserArgAction::SetFalse: Treat--flagas--flag=false(#3775)Arg::default_value("true")(#3786)Arg::envviaArg::value_parserArgAction::Count: Treat--flag --flag --flagas--flag=1 --flag=2 --flag=3(#3775)Arg::default_value("0")(#3786)Arg::envviaArg::value_parserArg::value_parser/Arg::actionwith either#[clap(value_parser)](#3589, #3742) /#[clap(action)]attributes (#3794)ValueParseris determined byvalue_parser!(#3199, #3496)ArgActionis determine by a hard-coded lookup on the type (#3794)Command::multicallis now stable for busybox-like programs and REPLs (#2861, #3684)ArgMatches::{try_,}contains_idfor checking if there are values for an argument that mirrors the newget_{one,many}APIFixes
default_value_ifs_os(#3815)parser
ArgMatches::value_sourceandArgMatches::occurrences_offor external subcommands (#3732)Arg::default_missing_values(#3761, #3765)Arg::default_value/Arg::envon value delimiters independent of whether--was used (#3765)requiredand its variants (#3793)v3.1.18Compare Source
Fixes
arg_enum!for users migrating to clap3 (#3717)required_unless_present_allarguments exist...when not enoughvalue_namesare suppliedgated behind
unstable-v4requiredis not used with conditional required settings (#3660)value_namesthannumber_of_values(#2695)""argument for external subcommands (#3263)Arg::idasverbatimcasing (#3282)v3.1.17Compare Source
Fixes
arg!macro to have dashes when quoted, like longsv3.1.16Compare Source
Fixes
Arg::exclusiveoverridesArg::required, like other conflictshelp_templatevariable{name}to fix problems with{bin}gated behind
unstable-v4Arg::longare no longer allowedCommand::display_namein the help title rather thanCommand::bin_namev3.1.15Compare Source
Fixes
v3.1.14Compare Source
Fixes
Command::buildwith a required positional argument nested several layers in subcommandsv3.1.13Compare Source
Fixes
Command::write_helpnow report required arguments in usage in more circumstancesdebugfeaturecolorfeature withdebugfeature enabledv3.1.12Compare Source
Fixes
v3.1.11Compare Source
Fixes
Arg::required, making the behavior consistent with how we calculate conflicts for error reportingArgGroupoverrideArg::required, making the behavior consistent with how we calculate conflicts for error reportingArg::overrides_withalways overrideArg::required, not just when the parser processes an overridev3.1.10Compare Source
Features
Command::buildfor custom help generation or other command introspection needsv3.1.9Compare Source
Fixes
clap_deriveversion so a compatible version is always used withclapv3.1.8Compare Source
Fixes
Debugimpls to more typesv3.1.7Compare Source
Fixes
ArgEnumwith non-unit unskipped variantsv3.1.6Compare Source
Fixes
cargofeature is neededv3.1.5Compare Source
Fixes
v3.1.4Compare Source
Features
PossibleValue::helpin long help (--help) (gated behindunstable-v4) (#3312)v3.1.3Compare Source
Fixes
v3.1.2Compare Source
Fixes
Documentation
v3.1.1Compare Source
Fixes
arg_enum!for users migrating to clap3 (#3717)required_unless_present_allarguments exist...when not enoughvalue_namesare suppliedgated behind
unstable-v4requiredis not used with conditional required settings (#3660)value_namesthannumber_of_values(#2695)""argument for external subcommands (#3263)Arg::idasverbatimcasing (#3282)v3.1.0Compare Source
Compatibility
Changes in behavior of note that are not guaranteed to be compatible across releases:
helpsubcommand shows long help like--help, rather than short help (-h), deprecatedclap::AppSettings::UseLongFormatForHelpSubcommand(#3440)Deprecations
clap::Commandis now preferred overclap::App(#3089 in #3472)clap::command!is now preferred overclap::app_from_crate(#3089 in #3474)clap::CommandFactory::commandis now preferred overclap::IntoApp::into_app(#3089 in #3473)helpsubcommand 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::AppSettingsare nearly all deprecated and replaced with builder methods and getters (#2717)clap::ArgSettingsis deprecated and replaced with builder methods and getters (#2717)clap::Arg::idandclap::ArgGroup::idare now preferred overclap::Arg::nameandclap::ArgGroup::name(#3335)clap::Command::next_help_headingis now preferred overclap::Command::help_heading(#1807, #1553)clap::error::ErrorKindis now preferred overclap::ErrorKind(#3395)clap::Error::kind()is now preferred overclap::Error::kindclap::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_sourceto determine what insert the value (#1345)clap::Command::next_display_order(#1807)clap::Error::contextAPI to open the door for fully-custom error messages (#2628)clap::error::ErrorKindnow implementsDisplayFixes
clap::Command::colorto override previous calls (#3449)ArgRequiredElseHelpprecedence overSubcommandRequired(#3456)clap::Command::arg_required_else_help, etc (#3076, #1264)-hconflicts (#3403)--help(#1549)clap::error::Result(#3395)Performance
clap::Error(#3395)Documentation
clap::Arg::validatorparseattributev3.0.14Compare Source
Features
ArgMatches::args_present()to check if any args are presentError::kind()as we work to deprecate direct member access forErrorApp::get_versionApp::get_long_versionApp::get_authorApp::get_subcommand_help_headingApp::get_subcommand_value_nameApp::get_after_helpApp::get_after_long_helpPerformance
v3.0.13Compare Source
Fixes
[]v3.0.12Compare Source
Features
default_value_os_tv3.0.11Compare Source
Fixes
v3.0.10Compare Source
Fixes
panic!from v3.0.8 when usingglobal_setting(PropagateVersion).v3.0.9Compare Source
Features
App::find_subcommand_mutv3.0.8Compare Source
Fixes
DisableColoredHelponcmd help helpcmd helpv3.0.7Compare Source
Fixes
Appbuilding (ie will now run inApp::debug_assert)derive
v3.0.6Compare Source
Fixes
derive
use clap::ArgEnum(#3277)v3.0.5Compare Source
Fixes
docs:
ArgMatchesassertsParser::from_clap(#3257)v3.0.4Compare Source
Features
cargo, exposeArgMatches::is_valid_argto avoid panicing on undefined argumentsv3.0.3Compare Source
Fixes
v3.0.2Compare Source
Fixes
Lastwhen checking hyphen values (see #3249 for details)#[must_use]v3.0.1Compare Source
Features
ArgMatches::args_present()to check if any args are presentError::kind()as we work to deprecate direct member access forErrorApp::get_versionApp::get_long_versionApp::get_authorApp::get_subcommand_help_headingApp::get_subcommand_value_nameApp::get_after_helpApp::get_after_long_helpPerformance
v3.0.0Compare 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
StructOpttraits 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_headingandApp::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_usagehas been deprecated in favor ofarg!(clap-rs/clap#3087)Migrating
From clap v2
-hand--helpoutput at a minimum (recommendation: trycmd for snapshot testing)no-default-features: add thestdfeatureAppcreation to a function and add a test similar to the one below, resolving any of its assertionsArgMatchesasserts regardingAllowInvalidUtf8.Example test:
From structopt 0.3.25
-hand--helpoutput at a minimum (recommendation: trycmd for snapshot testing)structopt = "..."toclap = { version = "3.0", features = ["derive"] }no-default-features: add thestdfeatureusestatements fromstructoptandstructopt::claptoclapExample test:
From clap v3.0.0-beta.5
-hand--helpoutput at a minimum (recommendation: trycmd for snapshot testing)derive,env,cargo, orunicodefeature flags as neededyaml,clap_app!, or usage parser: revert any changes you made for clap3Arg::aboutArg::long_aboutback tohelpandlong_helpand changePossibleValue::abouttohelp(clap-rs/clap#3075)AppSettings::HelpRequiredtoAppSettings::HelpExpectedPossibleValue::hiddentoPossibleValue::hideApp::subcommand_placeholdertoApp::subcommand_value_name/App::subcommand_help_headingderive: see the structopt breaking changes section forVecchangesArgMatchesasserts regardingAllowInvalidUtf8.BREAKING CHANGES
From clap 2
Subtle changes (i.e. compiler won't catch):
AppSettings::UnifiedHelpMessageis now default behaviour{flags}and{unified}will assert if present inApp::help_templateAppSettings::EnableColoredHelpis now the default behavior but can beopted-out with
AppSettings::DisableColoredHelp(clap-rs/clap#2806)
App::override_usageno longer implies a leading\t, allowing multi lined usagesArg::require_equalsno longer impliesArgSettings::ForbidEmptyValues(#2233)Arg::require_delimiterno longer impliesArgSettings::TakesValueandArgSettings::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_insensitiveandArg::multiple_valuesno longer implyArgSettings::TakesValue(#2233)ArgMatches::is_presentno longer checks subcommand names...s meaning in usage parser. Before, it always meantmultiplewhich is still true for--option [val].... Now[name]... --option [val]results inArgSettings::MultipleOccurrences.1to2(clap-rs/clap#1327)--foo=barwhentakes_value(false)(clap-rs/clap#1543)-for long arguments (-----long)Easier to catch changes:
no-default-features, you now have to specify thestdfeature (reserved for future work)envfeature flagArg::env,Arg::env_os,Arg::hide_env_values,ArgSettings::HideEnvValuescargofeature flagcrate_name!,crate_version!,crate_authors!,crate_description!,app_from_crate!AppSettings::StrictUtf8is now default behaviour and asserts ifAppSettings::AllowInvalidUtf8ForExternalSubcommandsandArgSettings::AllowInvalidUtf8andArgMatches::value_of_osaren't usedtogether
AppSettings::AllowInvalidUtf8has been removedArg::shortandArg::value_delimiternow take acharinstead of a&strArgMatchespanics on unknown argumentsVersionlessSubcommands, making it the default (see clap-rs/clap#2812)ArgSettings::EmptyValuesin favor ofArgSettings::ForbidEmptyValuesArg::validatornow takes first argument asFn(&str) -> Result<O, E: ToString>instead ofFn(String) -> Result<(), String>Arg::validator_osnow takes first argument asFn(&OsStr) -> Result<O, OsString>instead ofFn(&OsStr) -> Result<(), OsString>Arg::value_namenow sets, rather than appends (see clap-rs/clap#2634)yaml-rustfrom 0.3 to 0.4ArgGroup::from(BTreeMap)toArgGroup::from(yaml)ArgMatches::usagewithApp::generate_usageArg::settingswithArg::setting(Setting1 | Setting2)AppandArgnow need only one lifetimeApp::with_defaults, replaced withapp_from_crateAppSettings::PropagateGlobalValuesDown(now the default)Appfunctions, likeApp::write_helpnow take&mut selfinstead of&selfError::messageis now private, useError::to_stringArg::default_value_if,Arg::default_value_if_os,Arg::default_value_ifs,Arg::default_value_ifs_osnow takes the default value parameter as an option (clap-rs/clap#1406)App::print_help&App::print_long_helpto now returnstd::io::ResultApp::write_help&App::write_long_helpto now returnstd::io::ResultArg::index,Arg::number_of_values,Arg::min_values,Arg::max_valuesto takingusizeinstead of u64Error::infoto typeVec<String>instead ofOption<Vec<String>>ArgMatches::subcommandto now returnOption<(&str, &ArgMatches)>ErrorKind::MissingArgumentOrSubcommandtoErrorKind::DisplayHelpOnMissingArgumentOrSubcommandErrorKind::HelpDisplayedtoErrorKind::DisplayHelpErrorKind::VersionDisplayedtoErrorKind::DisplayVersion#[non_exhaustive]toclap::{ValueHint, ErrorKind, AppSettings, ArgSettings}(clap-rs/clap#3167)From structopt 0.3.25
Appisn'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 frommultipletomultiple_occurrencesOn top of the clap 2 changes
Performance
From clap 2
unicodefeature flag for faster builds and smaller binaries for ASCII-only CLIs.envfeature flag for faster builds and smaller binaries.Features
From clap 2
Integration of
structopt::StructOptviaclap::Parser(requiresderivefeature flag)Custom help headings
App::help_heading(apply to all future args)Arg::help_heading(apply to current arg)App::subcommand_help_headingalong withApp::subcommand_value_name(apply to subcommands)AppSettings::UnifiedHelpMessageis now default behaviour (clap-rs/clap#2807)Deriving of
ArgEnumfor generatingArg::possible_values(requiresderivefeature flag)Disable built-in help/version behavior with
AppSettings::NoAutoHelpandAppSettings::NoAutoVersionChange an existing arg with new builder method
mut_arg(particularly helpful for--helpand--version)Provide extra context in long help messages (
--help) withbefore_long_helpandafter_long_help(clap-rs/clap#1903)Detect missing help descriptions via debug asserts by enabling
AppSettings::HelpExpectedAliases for short flags (clap-rs/clap#1896)
Validate UTF-8 values, rather than panicing during
ArgMatches::value_ofthanks toAppSettings::AllowInvalidUtf8ForExternalSubcommandsandArgSettings::AllowInvalidUtf8ArgMatchescalls do not match the UTF-8 setting.clap::PossibleValueto allowAllow arguments to conflict with all others via
Arg::exclusive(clap-rs/clap#1583)Validate arguments with a regex (required
regexfeature flag)Arg::default_missing_valuefor cases like--color[=<WHEN>](clap-rs/clap#1587)clap::App::color/clap::ColorChoiceto specify color setting for the appCustom error reporting with
App::errorApp::debug_asserttest helperReplace
Arg::multiple(bool)withArg::multiple_values/Arg::multiple_occurrencesAdded support for flag subcommands like pacman (clap-rs/clap#1361)
Partial parsing via
AppSettings::IgnoreErrors(clap-rs/clap#1880)Enable
cmd helpto print long help (--helpinstead 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::SubcommandPrecedenceOverArgGive 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
falsefor flags, in addition to "not-present" (clap-rs/clap#2539)n,no,f,false,off,0Added
arg!macro for creating anArgfrom a compile-time usage parser(Experimental) Busybox-like multi-call support
AppSettings::Multicallbehindunstable-multicallfeature flag(Experimental) Alias an argument to anything group of arguments
App::replacebehindunstable-replacefeature flag(Experimental) Grouping of multiple values within multiple occurrences
ArgMatches::grouped_values_ofbehindunstable-groupedfeature flagFrom structopt 0.3.25
default_value_t [= <expr>]attribute (clap-rs/clap#1694)updateAPIarg_enumattribute for integrating withArgEnumtraitOn top of the clap 2 changes
Fixes
From clap 2
App::version,App::long_versionare set(see clap-rs/clap#2812)
wrap_helpfeature is not enabledArg::multiplewithArg::multiple_valuesandArg::multiple_occurrencesapp_from_crate!defaults to separating multiple authors with", "IgnoreCaseis now unicode aware (requiresunicodefeature flag)ColorChoice::Never, even if that means we skip colors in some casesArgMatchespanics on unknown argumentsauthorsfield inCargo.tomlwithapp_from_crate--helpincmd helpwithDisableHelpFlag(clap-rs/clap#3169)--helpincmd help helpthat doesn't work (clap-rs/clap#3169)From structopt 0.3.25
SubcommandsNegateReqsby allowing requiredOption<_>s (clap-rs/clap#2255)AllowInvalidUtf8based on parser (clap-rs/clap#751)authorsfield inCargo.tomldefault_value_osbut treat it likedefault_value(clap-rs/clap#3031)flattenandsubcommand, ensure our doc comment always overrides the nested container's doc comment, whether it has onlyaboutoraboutandlong_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
claprequiresrustc 1.54.0or greater.v3.0.0-rc.13Compare Source
v3.0.0-rc.12Compare Source
v3.0.0-rc.11Compare Source
v3.0.0-rc.10Compare Source
v3.0.0-rc.9Compare Source
v3.0.0-rc.8Compare Source
v3.0.0-rc.7[Compare Source](https://redirect.github.com/clap-rs/
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 becomes conflicted, 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.