{"ecosystem":"cargo","package":"clap","from_version":null,"to_version":null,"changes":[{"from_version":"4.6.1","to_version":"5.0.0","change_type":"behavior","description":"*(help)* Change default `Command::max_term_width` to 100","migration_hint":null},{"from_version":"4.6.1","to_version":"5.0.0","change_type":"behavior","description":"*(help)* Change default `Command::term_width` to \"source format\"","migration_hint":null},{"from_version":"4.6.1","to_version":"5.0.0","change_type":"breaking","description":"*(derive)* `Vec<Vec<T>>` types are now assuming to capture occurrences","migration_hint":null},{"from_version":"4.6.1","to_version":"5.0.0","change_type":"breaking","description":"*(derive)* `ValueEnum` variants now use the full doc comment, not summary, for `PossibleValue::help`","migration_hint":null},{"from_version":"4.6.1","to_version":"5.0.0","change_type":"breaking","description":"Made `ArgPredicate` `non_exhaustive`","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"api","description":"*(help)* Subcommands are now listed before arguments.  To get the old behavior, see `Command::help_template` (#4132)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"api","description":"*(parser)* Always fill in `\"\"` argument for external subcommands to make it easier to distinguish them from built-in commands (#3263)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"api","description":"`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)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"api","description":"*(parser)* `Arg::value_terminator` must be its own argument on the CLI rather than being in a delimited list (#4025)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"behavior","description":"Added default feature flags, `help`, `usage` and `error-context`, requiring adding them back in if `default-features = false` (#4236)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"behavior","description":"By default, an `Arg`s default action is `ArgAction::Set`, rather than `ArgAction::IncOccurrence` to reduce confusing magic through consistency (#2687, #4032, see also #3977)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"behavior","description":"*(help)* \"Command\" is used as the section heading for subcommands and `COMMAND` for the value name.  To get the old behavior, see  `Command::subcommand_help_heading` and `Arg::subcommand_value_name` (#4132, #4155)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"behavior","description":"*(help)* Help headings are now title cased, making any user-provided help headings inconsistent.  To get the old behavior, see `Command::help_template`, `Arg::help_heading`, and `Command::subcommand_help_heading` (#4132)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"behavior","description":"`arg!(--flag <value>)` is now optional, instead of required.  Add `.required(true)` at the end to restore the original behavior (#4206)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"*(derive)* Leave `Arg::id` as `verbatim` casing, requiring updating of string references to other args like in `conflicts_with` or `requires` (#3282)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"`arg!` now sets one of (#3795):","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"`ArgAction::SetTrue`, requiring `ArgMatches::get_flag` instead of `ArgMatches::is_present`","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"`ArgAction::Count`, requiring `ArgMatches::get_count` instead of `ArgMatches::occurrences_of`","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"`ArgAction::Set`, requiring `ArgMatches::get_one` instead of `ArgMatches::value_of`","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"`ArgAction::Append`, requiring `ArgMatches::get_many` instead of `ArgMatches::values_of`","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"`ArgAction::Set`, `ArgAction::SetTrue`, and `Arg::Action::SetFalse` now","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"*(parser)* Short flags now have higher precedence than hyphen values with `Arg::allow_hyphen_values`, to be consistent with `Command::allow_hyphen_values` (#4187)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"*(help)* Line wrapping of help is now behind the existing `wrap_help` feature flag, either enable it or hard code your wraps (#4258)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"*(help)* Subcommand display order respects `Command::next_display_order` instead of `DeriveDisplayOrder` and using its own initial display order value (#2808)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"*(help)* Whitespace in help output is now trimmed to ensure consistency regardless of how well a template matches the users needs. (#4132, #4156)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"*(help)* Indentation for second-line usage changed. (#4132, #4188)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"breaking","description":"*(env)* Parse `--help` and `--version` like any `ArgAction::SetTrue` flag (#3776)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"removed","description":"*(help)* name/version/author are removed by default from help output.  To get the old behavior, see `Command::help_template`. (#4132, #4160)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"removed","description":"Removed lifetimes from `Command`, `Arg`, `ArgGroup`, and `PossibleValue`, assuming `'static`.  `string` feature flag will enable support for `String`s (#1041, #2150, #4223)","migration_hint":null},{"from_version":"3.2.18","to_version":"4.0.0","change_type":"removed","description":"*(help)* Make `DeriveDisplayOrder` the default and removed the setting.  To sort help, set `next_display_order(None)` (#2808)","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"api","description":"`ArgMatches` panics on unknown arguments","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"api","description":"No longer accept an arbitrary number of `-` for long arguments (`-----long`)","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"behavior","description":"`AppSettings::UnifiedHelpMessage` is now default behaviour","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"behavior","description":"`AppSettings::EnableColoredHelp` is now the default behavior but can be","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"behavior","description":"When using `no-default-features`, you now have to specify the `std` feature (reserved for future work)","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"behavior","description":"`AppSettings::StrictUtf8` is now default behaviour and asserts if","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Changed `...`s meaning in usage parser.  Before, it always meant `multiple` which is still true for `--option [val]...`.  Now `[name]... --option [val]` results in `ArgSettings::MultipleOccurrences`.","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"`{flags}` and `{unified}` will assert if present in `App::help_template`","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"See [clap-rs/clap#2807](https://github.com/clap-rs/clap/issues/2807)","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"`App::override_usage` no longer implies a leading `\\t`, allowing multi lined usages","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"`Arg::require_equals` no longer implies `ArgSettings::ForbidEmptyValues` ([#2233](https://github.com/clap-rs/clap/issues/2233))","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"`Arg::require_delimiter` no longer implies `ArgSettings::TakesValue` and `ArgSettings::UseValueDelimiter` ([#2233](https://github.com/clap-rs/clap/issues/2233))","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"`Arg::env`, `Arg::env_os`, `Arg::last`, `Arg::require_equals`, `Arg::allow_hyphen_values`,","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"`ArgMatches::is_present` no longer checks subcommand names","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Some env variable values are now considered false for flags, not just \"not-present\" ([clap-rs/clap#2539](https://github.com/clap-rs/clap/issues/2539))","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Usage exit code changed from `1` to `2` ([clap-rs/clap#1327](https://github.com/clap-rs/clap/issues/1327))","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Reject `--foo=bar` when `takes_value(false)` ([clap-rs/clap#1543](https://github.com/clap-rs/clap/issues/1543))","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Gated env support behind `env` feature flag","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Impacts `Arg::env`, `Arg::env_os`, `Arg::hide_env_values`, `ArgSettings::HideEnvValues`","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"See [clap-rs/clap#2694](https://github.com/clap-rs/clap/pull/2694)","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Gated crate information behind `cargo` feature flag","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"Impacts `crate_name!`, `crate_version!`, `crate_authors!`, `crate_description!`, `app_from_crate!`","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"[clap-rs/clap#751](https://github.com/clap-rs/clap/issues/751)","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"breaking","description":"`Arg::short` and `Arg::value_delimiter` now take a `char` instead of a `&str`","migration_hint":null},{"from_version":"2.34.0","to_version":"3.0.0","change_type":"removed","description":"`AppSettings::AllowInvalidUtf8` has been removed","migration_hint":null},{"from_version":"2.26.2","to_version":"2.27.0","change_type":"api","description":"when an argument requires a value and that value happens to match a subcommand name, its parsed as a value ([0c223f54](https://github.com/clap-rs/clap/commit/0c223f54ed46da406bc8b43a5806e0b227863b31), closes [#1031](https://github.com/clap-rs/clap/issues/1031), breaks [#](https://github.com/clap-rs/clap/issues/), [#](https://github.com/clap-rs/clap/issues/))","migration_hint":null},{"from_version":"2.19.1","to_version":"2.19.2","change_type":"breaking","description":"**README.md:**  adds guidance on when to use ~ in version pinning, and clarifies breaking change policy ([591eaefc](https://github.com/clap-rs/clap/commit/591eaefc7319142ba921130e502bb0729feed907), closes [#765](https://github.com/clap-rs/clap/issues/765))","migration_hint":null},{"from_version":"2.19.1","to_version":"2.19.2","change_type":"breaking","description":"**ZSH Completions:**  escapes square brackets in ZSH completions ([7e17d5a3](https://github.com/clap-rs/clap/commit/7e17d5a36b2cc2cc77e7b15796b14d639ed3cbf7), closes [#771](https://github.com/clap-rs/clap/issues/771))","migration_hint":null},{"from_version":"2.19.1","to_version":"2.19.2","change_type":"breaking","description":"**Examples:**  adds subcommand examples ([0e0f3354](https://github.com/clap-rs/clap/commit/0e0f33547a6901425afc1d9fbe19f7ae3832d9a4), closes [#766](https://github.com/clap-rs/clap/issues/766))","migration_hint":null},{"from_version":"2.9.3","to_version":"2.10.0","change_type":"breaking","description":"**parser:**  preserve external subcommand name ([875df243](https://github.com/clap-rs/clap/commit/875df24316c266920a073c13bbefbf546bc1f635))","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"**Fewer lifetimes! Yay!**","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App<'a, 'b, 'c, 'd, 'e, 'f>` => `App<'a, 'b>`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`Arg<'a, 'b, 'c, 'd, 'e, 'f>` => `Arg<'a, 'b>`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`ArgMatches<'a, 'b>` => `ArgMatches<'a>`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::arg_required_else_help`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::versionless_subcommands`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::subcommand_required_else_help`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`SubCommand::new`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::wait_on_error`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::unified_help_messages`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::subcommand_required`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::global_version(bool)`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::arg_group` => `App::group`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::arg_groups` => `App::groups`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`ArgGroup::add` => `ArgGroup::arg`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`ArgGroup::add_all` => `ArgGroup::args`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`ClapError` => `Error`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"struct field `ClapError::error_type` => `Error::kind`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`ClapResult` => `Result`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::error_on_no_subcommand`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`ClapErrorType` => `ErrorKind`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"breaking","description":"`App::subcommands_negate_reqs`","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"removed","description":"**Removed Deprecated Functions and Methods**","migration_hint":null},{"from_version":"1.5.5","to_version":"2.0.0","change_type":"renamed","description":"**Simply Renamed**","migration_hint":null},{"from_version":"0.6.9","to_version":"0.7.0","change_type":"breaking","description":"add support for minimum and maximum number of values ([53f6b8c9](https://github.com/clap-rs/clap/commit/53f6b8c9d8dc408b4fa9f833fc3a63683873c42f))","migration_hint":null},{"from_version":"0.6.9","to_version":"0.7.0","change_type":"breaking","description":"implement shorthand for options with multiple values ([6669f0a9](https://github.com/clap-rs/clap/commit/6669f0a9687d4f668523145d7bd5c007d1eb59a8))","migration_hint":null},{"from_version":"0.6.9","to_version":"0.7.0","change_type":"breaking","description":"**arg**  allow other types besides Vec for multiple value settings (**BREAKING CHANGE** [0cc2f698](https://github.com/clap-rs/clap/commit/0cc2f69839b9b1db5d06330771b494783049a88e), closes [#87](https://github.com/clap-rs/clap/issues/87))","migration_hint":null},{"from_version":"0.6.9","to_version":"0.7.0","change_type":"breaking","description":"**usage**  implement smart usage strings on errors ([d77048ef](https://github.com/clap-rs/clap/commit/d77048efb1e595ffe831f1a2bea2f2700db53b9f), closes [#88](https://github.com/clap-rs/clap/issues/88))","migration_hint":null},{"from_version":"0.6.9","to_version":"0.7.0","change_type":"breaking","description":"**MultipleValues**","migration_hint":null},{"from_version":"0.6.9","to_version":"0.7.0","change_type":"breaking","description":"adds support limited number and named values ([ae09f05e](https://github.com/clap-rs/clap/commit/ae09f05e92251c1b39a83d372736fcc7b504e432))","migration_hint":null},{"from_version":"0.6.9","to_version":"0.7.0","change_type":"removed","description":"**from_usage**  removes bug where usage strings have no help text ([ad4e5451](https://github.com/clap-rs/clap/commit/ad4e54510739aeabf75f0da3278fb0952db531b3), closes [#83](https://github.com/clap-rs/clap/issues/83))","migration_hint":null},{"from_version":"0.10.5","to_version":"0.11.0","change_type":"behavior","description":"**Help and Version**  default short for version is now `-V` but can be overridden (only breaks manual documentation) (**BREAKING CHANGE** [eb1d9320](https://github.com/clap-rs/clap/commit/eb1d9320c509c1e4e57d7c7959da82bcfe06ada0))","migration_hint":null},{"from_version":"0.10.5","to_version":"0.11.0","change_type":"behavior","description":"updates docs to new version flag defaults ([ebf442eb](https://github.com/clap-rs/clap/commit/ebf442ebebbcd2ec6bfe2c06566c9d362bccb112))","migration_hint":null}],"total":93,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"miss"}