All Versions
187
Latest Version
Avg Release Cycle
59 days
Latest Release
121 days ago

Changelog History
Page 1

  • v3.0.0-beta.2

    September 18, 2020

    ๐Ÿ’ฅ BREAKING CHANGES

    • โœ‚ Removed
      • From<&yaml_rust::yaml::Hash> for ArgGroup
      • App
      • App::write_version in favor of write!(w, App::render_version)
      • App::write_long_version in favor of write!(w, App::render_long_version)
      • Error
      • Error::cause in favor of <Error as Display>::to_string
      • Macros
      • _clap_count_exprs!
    • ๐Ÿ“‡ Renamed Methods
      • App
      • App::set_term_width => App::term_width
      • Arg
      • Arg::from_yaml => Arg::from
      • Arg::with_name => Arg::new
      • Arg::required_if => Arg::required_if_eq
      • Arg::required_ifs => Arg::required_if_eq_any
      • Arg::required_unless => Arg::required_unless_present
      • Arg::required_unless_one => Arg::required_unless_present_any
      • Arg::required_unless_all => Arg::required_unless_present_all
      • ArgGroup
      • ArgGroup::from_yaml => ArgGroup::from
      • ArgGroup::with_name => ArgGroup::new
    • ๐Ÿ“‡ Renamed Variants
      • ErrorKind
      • ErrorKind::HelpDisplayed => ErrorKind::DisplayHelp
      • ErrorKind::VersionDisplayed => ErrorKind::DisplayVersion
    • ๐Ÿ”„ Changed
      • App::print_help & App::print_long_help now return std::io::Result
      • App::write_help & App::write_long_help now return std::io::Result
      • Error::info now is of type Vec<String> instead of Option<Vec<String>>
      • ArgMatches::subcommand now returns Option<(&str, &ArgMatches)>
      • short in #[clap()] now accepts char instead of &str

    ๐Ÿ”‹ Features

    • โž• Added support for subcommands that are flags (pacman style)
    • โž• Added Indices that is returned by ArgMatches::indices_of
    • โž• Added @global_setting for app's macro builder
    • โž• Added Methods
      • Arg
      • Arg::default_missing_value
      • Arg::default_missing_value_os
      • Arg::default_missing_values
      • Arg::default_missing_values_os
      • Arg::short_alias
      • Arg::short_aliases
      • Arg::visible_short_alias
      • Arg::visible_short_aliases
      • Arg::value_hint
      • Arg::validator_regex (gated behind regex feature)
      • App
      • App::subcommand_placeholder
      • App::before_long_help
      • App::after_long_help
    • TODO: List App::get_* methods

    โœจ Enhancements

    • help_heading defined on Arg now has higher priority than App
    • 0๏ธโƒฃ Limited default text wrapping to 100 when wrap_help feature is not enabled
    • ๐Ÿ›  Multiple bug fixes and error message improvements
    • ๐ŸŽ Size and Performance improvements
  • v3.0.0-beta.1

    May 03, 2020

    Minimum Required Rust

    • ๐Ÿš€ As of this release, clap requires rustc 1.40.0 or greater.

    ๐Ÿ’ฅ BREAKING CHANGES

    • โœ‚ Removed
      • SubCommand in favor of App
      • SubCommand::with_name => App::new
      • SubCommand::from_yaml => App::from
      • App
      • App::with_defaults
      • App::version_message in favor of App::mut_arg
      • App::version_short in favor of App::mut_arg
      • App::help_message in favor of App::mut_arg
      • App::help_short in favor of App::mut_arg
      • App::arg_from_usage in favor of App::arg
      • App::args_from_usage in favor of App::args(usage.lines().map(|l| l.trim()).filter(|l| !l.is_empty()))
      • App::gen_completions in favor of TODO:
      • App::gen_completions_to in favor of TODO:
      • App::settings in favor of App::setting(Setting1 | Setting2)
      • App::unset_settings in favor of App::unset_setting(Setting1 | Setting2)
      • App::global_settings in favor of App::global_setting(Setting1 | Setting2)
      • Arg
      • Arg::empty_values in favor of TODO:
      • ArgMatches
      • ArgMatches::usage in favor of App::generate_usage
      • Macros
      • arg_enum! in favor of ArgEnum derive macro.
      • value_t! in favor of ArgMatches::value_of_t
      • value_t_or_exit! in favor of ArgMatches::value_of_t_or_exit
      • values_t! in favor of ArgMatches::values_of_t
      • values_t_or_exit! in favor of ArgMatches::values_of_t_or_exit
    • โœ‚ Removed Settings
      • AppSettings::PropagateGlobalValuesDown
      • ArgSettings::Global in favor of Arg::global method
      • ArgSettings::Multiple in favor of ArgSettings::MultipleValues and ArgSettings::MultipleOccurrences
    • ๐Ÿ“‡ Renamed Methods
      • App
      • App::from_yaml => App::from
      • App::arg_from_usage => App::arg
      • App::help => App::override_help
      • App::usage => App::override_usage
      • App::template => App::help_template
      • App::get_matches_safe => App::try_get_matches
      • App::get_matches_from_safe => App::try_get_matches_from
      • App::get_matches_from_safe_borrow => App::try_get_matches_from_mut
      • Arg
      • Arg::help => Arg::about
      • Arg::from_usage => Arg::from
      • Arg::set => Arg::setting
      • Arg::unset => Arg::unset_setting
    • ๐Ÿ“‡ Renamed Settings
      • ArgSettings::CaseInsensitive => ArgSettings::IgnoreCase
      • ArgSettings::AllowLeadingHyphen => ArgSettings::AllowHyphenValues
      • ArgSettings::EmptyValues => ArgSettings::AllowEmptyValues
    • ๐Ÿ“‡ Renamed Fields
      • Error::message => Error::cause
    • ๐Ÿ”„ Changed
      • App::write_help is now a mutable reference instance method (takes &mut self)
      • Arg::short now accepts char instead of &str
      • Arg::validator now takes first argument as Fn(&str) -> Result<O, E: ToString> instead of Fn(String) -> Result<(), String>
      • Arg::validator_os now takes first argument as Fn(&OsStr) -> Result<O, OsString> instead of Fn(&OsStr) -> Result<(), OsString>
    • โœ‚ Removed support for {n} in help text
    • ๐Ÿ“œ In usage parser, for options [name]... --option [val] results in ArgSettings::MultipleOccurrences but --option [val]... results in ArgSettings::MultipleValues and ArgSettings::MultipleOccurrences. Before both resulted in the same thing
    • App and Arg now need only one lifetime
    • ๐Ÿ‘ Allowing empty values is no longer the default
    • 0๏ธโƒฃ UseValueDelimiter is no longer the default
    • App::override_usage no longer implies \t which allows multi lined usages

    ๐Ÿ”‹ Features

    • โž• Added Methods
      • App
      • App::replace
      • App::get_matches_mut
      • App::mut_arg
      • App::unset_global_setting
      • App::help_heading
      • App::stop_custom_headings
      • Arg
      • Arg::exclusive
      • Arg::multiple_values
      • Arg::multiple_occurrences
      • Arg::help_heading
    • โž• Added Settings
      • AppSettings::HelpRequired
      • AppSettings::NoAutoHelp
      • AppSettings::NoAutoVersion
      • ArgSettings::SubcommandPrecedenceOverArg

    โœจ Enhancements

    • Made App::arg and App::args more generic
    • ๐Ÿ‘Œ Improvements to clap_app! macro to make it support more wider use cases
    • ๐Ÿ Colors now work correctly on Windows Console
    • ๐Ÿ›  Multiple bug fixes and error message improvements
    • ๐Ÿ‘Œ Improvements to parsing logic and help messages
  • v2.33.3

    August 14, 2020

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ—„ Suppress deprecation warnings when using crate_* macros.
  • v2.33.2

    August 06, 2020

    v2.33.2 (2020-08-5)

    ๐Ÿ“š Documentation

    • ๐Ÿ›  Fixed links to 2.x examples. Now they point to the right place.
  • v2.33.1

    May 11, 2020

    v2.33.1 (2020-05-11)

    ๐Ÿ› Bug Fixes

    • ๐Ÿ Windows: Prevent some panics when parsing invalid Unicode on Windows (922c645, closes #1905)

    ๐Ÿ“š Documentation

    • ๐Ÿ›  fixes versions referenced in the README (d307466a)
    • README.md:
      • cuts down the number of examples to reduce confusion (6e508ee0)

    ๐Ÿ‘Œ Improvements

    • Deps: doesnt compile ansi_term on Windows since its not used (b57ee946, closes #1155)

    Minimum Required Rust

    • ๐Ÿš€ As of this release, clap requires rustc 1.36.0 or greater.
  • v2.33.0

    April 06, 2019

    ๐Ÿ†• New Sponsor

    • Stephen Oats is now a sponsor \o/ (823457c0)
    • SPONSORS.md: fixes Josh Triplett's info in the sponsor document (24cb5740)

    ๐Ÿ”‹ Features

    • Completions: adds completion support for Elvish. (e9d0562a)
    • ๐Ÿ— There is a new setting to disable automatic building of --help and -h flags (AppSettings::DisableAutoHelp)

    ๐Ÿ‘Œ Improvements

    • arg_matches.rs: add Debug implementations (47192b7a)
    • macros: Support shorthand syntax for ArgGroups (df9095e7)

    ๐Ÿ“š Documentation

    • ๐ŸŽ Refer to macOS rather than OSX. (ab0d767f)
    • README.md: use https for all links (96a7639a)

    ๐Ÿ› Bug Fixes

    • add debug assertion for missing args in subcommand ArgGroup (2699d9e5)
    • โช Restore compat with Rust 1.21 (6b263de1)
    • Don't mention unused subcommands (ef92e2b6)
    • OsValues: Add ExactSizeIterator implementation (356c69e5)
    • arg_enum!:
      • Fix comma position for valid values. (1f1f9ff3)
      • Invalid expansions of some trailing-comma patterns (7023184f)
    • completions: improve correctness of completions when whitespace is involved (5a08ff29)
    • help message: Unconditionally uses long description for subcommands (6acc8b6a, closes #897)
    • macros: fixes broken pattern which prevented calling multi-argument Arg methods (9e7a352e)
    • ๐Ÿ“œ parser: Better interaction between AllowExternalSubcommands and SubcommandRequired (9601c95a)

    Minimum Required Rust

    • ๐Ÿš€ As of this release, clap requires rustc 1.31.0 or greater.
  • v2.32.0

    June 26, 2018

    Minimum Required Rust

    • ๐Ÿš€ As of this release, clap requires rustc 1.21.0 or greater.

    ๐Ÿ”‹ Features

    • Completions: adds completion support for Elvish. (e9d0562a)

    ๐Ÿ‘Œ Improvements

    • macros: Support shorthand syntax for ArgGroups (df9095e7)

    ๐Ÿ› Bug Fixes

    • OsValues: Add ExactSizeIterator implementation (356c69e5)
    • arg_enum!: Invalid expansions of some trailing-comma patterns (7023184f)
    • help message: Unconditionally uses long description for subcommands (6acc8b6a, closes #897)

    ๐Ÿ“š Documentation

    • ๐ŸŽ Refer to macOS rather than OSX. (ab0d767f)
  • v2.31.2

    March 19, 2018

    v2.31.2 (2018-03-19)

    ๐Ÿ› Bug Fixes

    • Fish Completions: fixes a bug that only allowed a single completion in in Fish Shell (e8774a8, closes #1212)
    • ๐Ÿ‘ AllowExternalSubcommands : fixes a bug where external subcommands would be blocked by a similarly named subcomand (suggestions were getting in the way). (a410e85)

    ๐Ÿ“š Documentation

    • ๐Ÿ›  Fixes some typos in the README.md (c8e685d7)

    v2.31.1 (2018-03-06)

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ‘ AllowMissingPositional: improves the ability of AllowMissingPositional to allow 'skipping' to the last positional arg with '--' (df20e6e2)

    v2.31.0 (2018-03-04)

    ๐Ÿ”‹ Features

    • Arg Indices: adds the ability to query argument value indices (f58d0576)
    • Indices: implements an Indices<Item=&usize> iterator (1e67be44)
    • Raw Args adds a convenience function to Arg that allows implying all of Arg::last Arg::allow_hyphen_values and Arg::multiple(true) (66a78f29)

    ๐Ÿ“š Documentation

    ๐Ÿ‘Œ Improvements

    • ๐Ÿš€ Cargo.toml: use codegen-units = 1 in release and bench profiles (19f425ea)
    • โž• Adds WASM support (clap now compiles on WASM!) (689949e5)
    • ๐Ÿ‘‰ Uses the short help tool-tip for PowerShell completion scripts (ecda22ce)
  • v2.31.1

    March 06, 2018

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ‘ AllowMissingPositional: improves the ability of AllowMissingPositional to allow 'skipping' to the last positional arg with '--' (df20e6e2)
  • v2.31.0

    March 04, 2018

    ๐Ÿ”‹ Features

    • Arg Indices: adds the ability to query argument value indices (f58d0576)
    • Indices: implements an Indices iterator (1e67be44)
    • Raw Args adds a convenience function to Arg that allows implying all of Arg::last Arg::allow_hyphen_values and Arg::multiple(true) (66a78f29)

    ๐Ÿ“š Documentation

    ๐Ÿ‘Œ Improvements

    • ๐Ÿš€ Cargo.toml: use codegen-units = 1 in release and bench profiles (19f425ea)
    • ๐Ÿ‘ Adds WASM support (clap now compiles on WASM!) (689949e5)
    • Uses the short help tool-tip for PowerShell completion scripts (ecda22ce)