clap/CHANGELOG.md
2016-01-29 22:11:34 -05:00

53 KiB

v2.0.1 (2016-01-30)

Bug Fixes

  • fixes cargo features to NOT require nightly with unstable features (dcbcc60c, closes #402)

v2.0.0 (2016-01-28)

Improvements

  • From Usage: vastly improves the usage parser (fa3a2f86, closes #350)

Features

  • adds support for external subcommands (177fe5cc, closes #372)
  • adds support values with a leading hyphen (e4d429b9, closes #385)
  • adds support for turning off the value delimiter (508db850, closes #352)
  • adds support changing the value delimiter (dafeae8a, closes #353)
  • adds support for comma separated values (e69da6af, closes #348)
  • adds support with options with optional values (4555736c, closes #367)
  • UTF-8: adds support for invalid utf8 in values (c5c59dec, closes #269)
  • v2: implementing the base of 2.x (a3536054)

Bug Fixes

  • fixes nightly build with new lints (17599195)
  • fixes Windows build for 2x release (674c9b48, closes #392)
  • fixes yaml build for 2x base (adceae64)

Documentation

  • updates examples for 2x release (1303b360, closes #394)
  • updates examples for 2x release (0a011f31, closes #394)
  • updates documentation for v2 release (8d51724e)
  • updating docs for 2x release (576d0e0e)
  • README.md:
    • updates readme for v2 release (acaba01a, closes #393)
    • fix typo and make documentation conspicuous (07b9f614)

BREAKING CHANGES

  • Fewer liftimes! Yay!
  • App<'a, 'b, 'c, 'd, 'e, 'f> => App<'a, 'b>
  • Arg<'a, 'b, 'c, 'd, 'e, 'f> => Arg<'a, 'b>
  • ArgMatches<'a, 'b> => ArgMatches<'a>
  • Simply Renamed
  • App::arg_group => App::group
  • App::arg_groups => App::groups
  • ArgGroup::add => ArgGroup::arg
  • ArgGroup::add_all => ArgGroup::args
  • ClapError => Error
  • struct field ClapError::error_type => Error::kind
  • ClapResult => Result
  • ClapErrorType => ErrorKind
  • Removed Deprecated Functions and Methods
  • App::subcommands_negate_reqs
  • App::subcommand_required
  • App::arg_required_else_help
  • App::global_version(bool)
  • App::versionless_subcommands
  • App::unified_help_messages
  • App::wait_on_error
  • App::subcommand_required_else_help
  • SubCommand::new
  • App::error_on_no_subcommand
  • Arg::new
  • Arg::mutually_excludes
  • Arg::mutually_excludes_all
  • Arg::mutually_overrides_with
  • simple_enum!
  • Renamed Error Variants
  • InvalidUnicode => InvalidUtf8
  • InvalidArgument => UnknownArgument
  • Usage Parser
  • Value names can now be specified inline, i.e. -o, --option <FILE> <FILE2> 'some option which takes two files'
  • There is now a priority of order to determine the name - This is perhaps the biggest breaking change. See the documentation for full details. Prior to this change, the value name took precedence. Ensure your args are using the proper names (i.e. typically the long or short and NOT the value name) throughout the code
  • ArgMatches::values_of returns an Values now which implements Iterator (should not break any code)
  • crate_version! returns &'static str instead of String
  • Using the clap_app! macro requires compiling with the unstable feature because the syntax could change slightly in the future

v1.5.5 (2016-01-04)

Bug Fixes

  • fixes an issue where invalid short args didn't cause an error (c9bf7e44)
  • prints the name in version and help instead of binary name (8f3817f6, closes #368)
  • fixes an intentional panic issue discovered via clippy (ea83a3d4)

v1.5.4 (2015-12-18)

Examples

  • 17_yaml: conditinonally compile 17_yaml example (575de089)

Improvements

Bug Fixes

  • errors: return correct error type in WrongNumValues error builder (5ba8ba9d)
  • ArgRequiredElseHelp setting now takes precedence over missing required args (faad83fb, closes #362)

v1.5.3 (2015-11-20)

Bug Fixes

  • Errors: fixes some instances when errors are missing a final newline (c4d2b171)

v1.5.2 (2015-11-14)

Bug Fixes

  • Errors: fixes a compiling bug when built on Windows or without the color feature (a35f7634)

v1.5.1 (2015-11-13)

Bug Fixes

  • Required Args: fixes a bug where required args are not correctly accounted for (f03b88a9, closes #343)

v1.5.0 (2015-11-13)

Bug Fixes

  • fixes a bug with required positional args in usage strings (c6858f78)

Documentation

  • FAQ: updates readme with slight changes to FAQ (a4ef0fab)

Improvements

  • massive errors overhaul (cdc29175)
  • ArgMatcher: huge refactor and deduplication of code (8988853f)
  • Errors: errors have been vastly improved (e59bc0c1)
  • Traits: refactoring some configuration into traits (5800cdec)

Performance

  • App:
    • more BTreeMap->Vec, Opts and SubCmds (bc4495b3)
    • changes flags BTreeMap->Vec (d357640f)
    • removed unneeded BTreeMap (78971fd6)
    • changes BTreeMap to VecMap in some instances (64b921d0)
    • removed excess clones (ec0089d4)

v1.4.7 (2015-11-03)

Documentation

  • Clarify behavior of Arg::multiple with options. (434f497a)
  • Fix typos and improve grammar. (c1f66b5d)

Bug Fixes

  • Error Status: fixes bug where --help and --version return non-zero exit code (89b51fdf)

v1.4.6 (2015-10-29)

Features

  • allows parsing without a binary name for daemons and interactive CLIs (aff89d57, closes #318)

Bug Fixes

  • Errors: tones down quoting in some error messages (34ce59ed, closes #309)
  • Help and Version: only builds help and version once (e3be87cf)
  • Option Args: fixes bug with args and multiple values (c9a9548a, closes #323)
  • POSIX Overrides: fixes bug where required args are overridden (40ed2b50)
  • Safe Matches: using 'safe' forms of the get_matches family no longer exit the process (c47025dc, closes #256)
  • Versionless SubCommands: fixes a bug where the -V flag was needlessly built (27df8b9d, closes #329)

Documentation

v1.4.5 (2015-10-06)

Bug Fixes

  • fixes crash on invalid arg error (c78ce128)

v1.4.4 (2015-10-06)

Documentation

  • clean up some formatting (b7df92d7)
  • move the crate-level docs to top of the lib.rs file (d7233bf1)
  • changes doc comments to rustdoc comments (34b601be)
  • fixes panic in 14_groups example (945b00a0, closes #295)
  • avoid suggesting star dependencies. (d33228f4)
  • Rustdoc: adds portions of the readme to main rustdoc page (6f9ee181, closes #293)

Bug Fixes

  • grammar error in some conflicting option errors (e73b07e1)
  • Unified Help: sorts both flags and options as a unified category (2a223dad)
  • Usage: fixes a bug where required args aren't filtered properly (72b453dc, closes #277)
  • Usage Strings: fixes a bug ordering of elements in usage strings (aaf0d6fe, closes #298)

Features

  • supports -aValue style options (0e3733e4)
  • Trailing VarArg: adds opt-in setting for final arg being vararg (27018b18, closes #278)

v1.4.3 (2015-09-30)

Features

  • allows accessing arg values by group name (c92a4b9e)

Documentation

  • use links to examples instead of plain text (bb4fe237)

Bug Fixes

  • Help Message: required args no longer double list in usage (1412e639, closes #277)
  • Possible Values: possible value validation is restored (f121ae74, closes #287)

v1.4.2 (2015-09-23)

Bug Fixes

  • Conflicts: fixes bug with conflicts not removing required args (e17fcec5, closes #271)

v1.4.1 (2015-09-22)

Examples

Features

  • Unicode: allows non-panicing on invalid unicode characters (c5bf7ddc)

Documentation

  • properly names Examples section for rustdoc (87ba5445)
  • fixes various typos and spelling (f85640f9)
  • Arg: unhides fields of the Arg struct (931aea88)

Bug Fixes

  • flush the buffer in App::print_version() (cbc42a37)
  • Macro benchmarks (13712da1)

v1.4.0 (2015-09-09)

Features

  • allows printing help message by library consumers (56b95f32)
  • allows defining hidden args and subcmds (2cab4d03, closes #231)
  • Builder macro to assist with App/Arg/Group/SubCommand building (443841b0)
  • Errors: allows consumers to write to stderr and exit on error (1e6403b6)

v1.3.2 (2015-09-08)

Documentation

  • fixed ErrorKind docs (dd057843)
  • ErrorKind: changed examples content (b9ca2616)

Bug Fixes

  • fixes a bug where the help subcommand wasn't overridable (94003db4)

Features

  • adds abiltiy not consume self when parsing matches and/or exit on help (94003db4)
  • App: Added ability for users to handle errors themselves (934e6fbb)

v1.3.1 (2015-09-04)

Examples

Performance

  • changes ArgGroup HashSets to Vec (3cb4a48e)
  • changes BTreeSet for Vec in some instances (baab2e3f)

v1.3.0 (2015-09-01)

Features

  • YAML: allows building a CLI from YAML files (86cf4c45)
  • ArgGroups: adds support for building ArgGroups from yaml (ecf88665)
  • Subcommands: adds support for subcommands from yaml (e415cf78)

Documentation

  • YAML: adds examples for using YAML to build a CLI (ab41d7f3)
  • Args from YAML: fixes doc examples (19b348a1)
  • Examples: adds better usage examples instead of having unused variables (8cbacd88)

Examples

Bug Fixes

  • Unified Help Messages: fixes a crash from this setting and no opts (169ffec1, closes #210)

v1.2.5 (2015-08-27)

Examples

Features

  • Args: allows opts and args to define a name for help and usage msgs (ad962ec4)

v1.2.4 (2015-08-26)

Bug Fixes

  • Possible Values: fixes a bug where suggestions arent made when using --long=value format (3d5e9a6c, closes #192)

v1.2.3 (2015-08-24)

Bug Fixes

  • App, Args: fixed subcommand reqs negation (b41afa8c, closes #188)

v1.2.2 (2015-08-23)

Bug Fixes

  • fixed confusing error message, also added test for it (fc7a31a7)
  • App: fixed requirmets overriding (9c135eb7)

v1.2.1 (2015-08-20)

Documentation

  • README.md: updates for new features (16cf9245)

Features

  • implements posix compatible conflicts for long args (8c2d48ac)
  • added overrides to support conflicts in POSIX compatible manner (0b916a00)
  • Args: allows defining POSIX compatible argument conflicts (d715646e)

Bug Fixes

  • fixed links in cargo and license buttons (6d9837ad)

Performance

  • Args and Apps: changes HashSet->Vec in some instances for increased performance (d0c3b379)

v1.2.0 (2015-08-15)

Bug Fixes

Documentation

  • updates docs for new features (03496547)
  • fixed docs for previous changes (ade36778)

Improvements

  • AppSettings: adds ability to add multiple settings at once (4a00e251)

Features

  • Replace application level settings with enum variants (618dc4e2)
  • Args: allows for custom argument value validations to be defined (84ae2ddb, closes #170)

v1.1.6 (2015-08-01)

Bug Fixes

  • fixes two bugs in App when printing newlines in help and subcommands required error (d63c0136)

v1.1.5 (2015-07-29)

Performance

  • removes some unneeded allocations (93e915df)

v1.1.4 (2015-07-20)

Improvements

  • Usage Strings displays a [--] when it may be helpful (86c3be85)

Bug Fixes

  • Macros fixes a typo in a macro generated error message (c9195c5f)
  • Type Errors fixes formatting of error output when failed type parsing (fe5d95c6)

v1.1.3 (2015-07-18)

Documentation

  • updates README.md to include lack of color support on Windows (52f81e17)

Bug Fixes

  • fixes formatting bug which prevented compiling on windows (9cb5dceb, closes #163)

v1.1.2 (2015-07-17)

Bug Fixes

  • fixes a bug when parsing multiple {n} newlines inside help strings (6d214b54)

v1.1.1 (2015-07-17)

Bug Fixes

  • fixes a logic bug and allows setting Arg::number_of_values() < 2 (42b6d1fc, closes #161)

v1.1.0 (2015-07-16)

Features

  • allows creating unified help messages, a la docopt or getopts (52bcd892, closes #158)
  • allows stating all subcommands should not have --version flags (336c476f, closes #156)
  • allows setting version number to auto-propagate through subcommands (bc66d3c6, closes #157)

Improvements

  • Help Strings properly aligns and handles newlines in long help strings (f9800a29, closes #145)

Performance

  • Help Messages big performance improvements when printing help messages (52bcd892)

Documentation

  • updates readme with new features (8232f7bb)
  • fix incorrect code example for App::subcommand_required (8889689d)

v1.0.3 (2015-07-11)

Improvements

Documentation

  • README.md updates example help message to new format (0aca29bd)

v1.0.2 (2015-07-09)

Improvements

  • Usage re-orders optional arguments and required to natural standard (dc7e1fce, closes #147)

v1.0.1 (2015-07-08)

Bug Fixes

  • allows empty values when using --long='' syntax (083f82d3, closes #151)

v1.0.0 (2015-07-08)

Documentation

  • README.md adds new features to what's new list (938f7f01)
  • README.md use with_name for subcommands (28b7e316)

Features

  • args can now be parsed from arbitrary locations, not just std::env::args() (75312528)

v1.0.0-beta (2015-06-30)

Features

  • allows waiting for user input on error (d0da3bdd, closes #140)
  • Help allows one to fully override the auto-generated help message (26d5ae3e, closes #141)

Documentation

  • adds "whats new" section to readme (ff149a29)

Improvements

  • removes deprecated functions in prep for 1.0 (274484df)

v0.11.0 (2015-06-17) - BREAKING CHANGE

Documentation

  • updates docs to new version flag defaults (ebf442eb)

Features

  • Help and Version default short for version is now -V but can be overridden (only breaks manual documentation) (BREAKING CHANGE eb1d9320)

v0.10.5 (2015-06-06)

Bug Fixes

  • Global Args global arguments propogate fully now (1f377960, closes #137)

v0.10.4 (2015-06-06)

Bug Fixes

  • Global Args global arguments propogate fully now (8f2c0160, closes #137)

v0.10.3 (2015-05-31)

Bug Fixes

  • Global Args fixes a bug where globals only transfer to one subcommand (a37842ee, closes #135)

v0.10.2 (2015-05-30)

Improvements

  • Binary Names allows users to override the system determined bin name (2191fe94, closes #134)

Documentation

  • adds contributing guidelines (6f76bd0a)

v0.10.1 (2015-05-26)

Features

  • can now specify that an app or subcommand should display help on no args or subcommands (29ca7b2f, closes #133)

v0.10.0 (2015-05-23)

Features

  • Global Args allows args that propagate down to child commands (2bcc6137, closes #131)

Improvements

  • Colors implements more structured colored output (d6c3ed54, closes #129)

Deprecations

  • SubCommand/App several methods and functions for stable release (28b73855)

Documentation

  • updates for deprecations and new features (743eefe8)

v0.9.2 (2015-05-20)

Bug Fixes

  • help allows parent requirements to be ignored with help and version (52218cc1, closes #124)

v0.9.1 (2015-05-18)

Bug Fixes

  • help fixes a bug where requirements are included as program name in help and version (08ba3f25)

v0.9.0 (2015-05-17)

Improvements

  • usage usage strings now include parent command requirements (dd8f21c7, closes #125)
  • args allows consumer of clap to decide if empty values are allowed or not (ab4ec609, closes #122)

Features

  • subcommands
    • allows optionally specifying that no subcommand is an error (7554f238, closes #126)
    • subcommands can optionally negate parent requirements (4a4229f5, closes #123)

v0.8.6 (2015-05-17)

Bug Fixes

  • args - can now be parsed as a value for an argument (bc12e78e, closes #121)

v0.8.5 (2015-05-15)

Bug Fixes

  • macros makes macro errors consistent with others (0c264a8c, closes #118)

Features

  • macros
    • arg_enum! and simple_enum! provide a Vec<&str> of variant names (30fa87ba, closes #119)
    • arg_enum! and simple_enum! auto-implement Display (d1219f0d, closes #120)

v0.8.4 (2015-05-12)

Bug Fixes

  • suggestions --help and --version now get suggestions (d2b3b1fa, closes #116)

v0.8.3 (2015-05-10)

Bug Fixes

  • usage groups unfold their members in usage strings (55d15582, closes #114)

Performance

  • usage removes unneeded allocations (fd53cd18)

v0.8.2 (2015-05-08)

Bug Fixes

  • usage strings positional arguments are presented in index order (eb0e374e, closes #112)

v0.8.1 (2015-05-06)

Bug Fixes

  • subcommands stops parsing multiple values when subcommands are found (fc79017e, closes #109)

Improvements

  • color reduces color in error messages (aab44cca, closes #110)
  • suggestions adds suggested arguments to usage strings (99447414)

v0.8.0 (2015-05-06)

Bug Fixes

  • did-you-mean for review (0535cfb0)
  • Positional positionals were ignored if they matched a subcmd, even after '--' (90e7b081)
  • help fixes bug where space between arg and help is too long (632fb115)

Features

  • from_usage adds ability to add value names or num of vals in usage string (3d581976, closes #98)
  • did-you-mean
  • Flags adds sugestions functionality (8745071c)
  • errors colorizes output red on error (f8b26b13)

Improvements

  • arg_enum allows ascii case insensitivity for enum variants (b249f965, closes #104)
  • clap-test simplified make test invocation (d17dcb29)

Documentation

  • README adds details about optional and new features (960389de)
  • clap fix typos caught by codespell (8891d929)
  • from_usage explains new usage strings with multiple values (05476fc6)

v0.7.6 (2015-05-05)

Improvements

  • Options adds number of values to options in help/usage (c1c993c4)

Features

  • from_usage adds ability to add value names or num of vals in usage string (ad55748c, closes #98)

Bug Fixes

  • MultipleValues properly distinguishes between multiple values and multiple occurrences (dd2a7564, closes #99)
  • help fixes tab alignment with multiple values (847001ff)

Documentation

  • from_usage explains new usage strings with multiple values (5a3a42df)

v0.7.5 (2015-05-04)

Bug Fixes

  • Options fixes bug where options with no value don't error out (a1fb94be)

v0.7.4 (2015-05-03)

Bug Fixes

  • Options fixes a bug where option arguments in succession get their values skipped (f66334d0)

v0.7.3 (2015-05-03)

Bug Fixes

  • RequiredValues fixes a bug where missing values are parsed as missing arguments (93c4a723)

Improvements

  • ErrorMessages improves error messages and corrections (a29c3983)
  • ArgGroups improves requirement and confliction support for groups (c236dc5f)

v0.7.2 (2015-05-03)

Bug Fixes

  • RequiredArgs fixes bug where required-by-default arguments are not listed in usage (12aea961, closes #96)

v0.7.1 (2015-05-01)

Bug Fixes

  • MultipleValues stops evaluating values if the max or exact number of values was reached (86d92c9f)

v0.7.0 (2015-04-30) - BREAKING CHANGE

Bug Fixes

  • from_usage removes bug where usage strings have no help text (ad4e5451, closes #83)

Features

  • MultipleValues
    • add support for minimum and maximum number of values (53f6b8c9)
    • adds support limited number and named values (ae09f05e)
    • implement shorthand for options with multiple values (6669f0a9)
  • arg allow other types besides Vec for multiple value settings (BREAKING CHANGE 0cc2f698, closes #87)
  • usage implement smart usage strings on errors (d77048ef, closes #88)

v0.6.9 (2015-04-29)

Bug Fixes

  • from_usage removes bug where usage strings have no help text (ad4e5451, closes #83)

0.6.8 (2015-04-27)

Bug Fixes

  • help change long help --long=long -> --long (1e25abfc)
  • RequiredArgs required by default args should no longer be required when their exclusions are present (4bb4c3cc)

Features

  • ArgGroups add ability to create arg groups (09eb4d98)

v0.6.7 (2015-04-22)

Bug Fixes

  • from_usage fix bug causing args to not be required (b76129e9)

Features

  • apps add ability to display additional help info after auto-gen'ed help msg (65cc259e)

v0.6.6 (2015-04-19)

Bug Fixes

  • from_usage tabs and spaces should be treated equally (4fd44181)

Features

  • macros.rs add macro to get version from Cargo.toml (c630969a)

v0.6.5 (2015-04-19)

Bug Fixes

  • macros.rs fix use statements for trait impls (86e4075e)

v0.6.4 (2015-04-17)

Features

  • macros add ability to create enums pub or priv with derives (2c499f80)

v0.6.3 (2015-04-16)

Features

  • macros add macro to create custom enums to use as types (fb672aff)

v0.6.2 (2015-04-14)

Features

  • macros
    • add ability to get mutliple typed values or exit (0b87251f)
    • add ability to get a typed multiple values (e243fe38)
    • add convenience macro to get a typed value or exit (4b7cd3ea)
    • add convenience macro to get a typed value (8752700f)

v0.6.1 (2015-04-13)

Bug Fixes

  • from_usage trim all whitespace before parsing (91d29045)

v0.6.0 (2015-04-13)

Bug Fixes

  • tests fix failing doc tests (3710cd69)

Features

  • app add support for building args from usage strings (d5d48bcf)
  • args add ability to create basic arguments from a usage string (ab409a8f)

v0.5.14 (2015-04-10)

Bug Fixes

  • usage
    • remove unneeded space (51372789)
    • remove warning about unused variables (ba817b9d)

Features

  • usage add ability to get usage string for subcommands too (3636afc4)

v0.5.13 (2015-04-09)

Features

  • SubCommands add method to get name and subcommand matches together (64e53928)
  • ArgMatches add method to get default usage string (02462150)

v0.5.12 (2015-04-08)

Features

  • help sort arguments by name so as to not display a random order (f4b2bf57)

v0.5.11 (2015-04-08)

Bug Fixes

  • flags fix bug not allowing users to specify -v or -h (90e72cff)

v0.5.10 (2015-04-08)

Bug Fixes

  • help fix spacing when option argument has not long version (ca17fa49)

v0.5.9 (2015-04-08)

Bug Fixes

  • positional args all previous positional args become required when a latter one is required (c14c3f31, closes #50)
  • clap remove unstable features for Rust 1.0 (9abdb438)
  • args improve error messages for arguments with mutual exclusions (18dbcf37, closes #51)

v0.5.8 (2015-04-08)

Bug Fixes

  • option args fix bug in getting the wrong number of occurrences for options (82ad6ad7)
  • help fix formatting for option arguments with no long (e8691004)
  • flags add assertion to catch flags with specific value sets (a0a2a40f, closes #52)
  • args improve error messages for arguments with mutual exclusions (bff945fc, closes #51)
  • tests add missing .takes_value(true) to option2 (bdb0e88f)
  • positional args all previous positional args become required when a latter one is required (343d47dc, closes #50)

v0.5.7 (2015-04-08)

Bug Fixes

  • args fix bug in arguments who are required and mutually exclusive (6ceb88a5)

v0.5.6 (2015-04-08)

Bug Fixes

  • help fix formatting of help and usage (28691b52)

v0.5.5 (2015-04-08)

Bug Fixes

  • help fix formatting of help for flags and options (6ec10115)

v0.5.4 (2015-04-08)

Features

  • help add '...' to indicate multiple values supported (297ddba7)

v0.5.3 (2015-04-08)

Features

  • positionals
    • add assertions for positional args with multiple vals (b7fa72d4)
    • add support for multiple values (80784009)

v0.5.2 (2015-04-08)

Bug Fixes

  • apps allow use of hyphens in application and subcommand names (da549dcb)

v0.5.1 (2015-04-08)

Bug Fixes

  • args determine if the only arguments allowed are also required (0a09eb36)

v0.5.0 (2015-04-08)

Features

  • args add support for a specific set of allowed values on options or positional arguments (270eb889)

v0.4.18 (2015-04-08)

Bug Fixes

  • usage display required args in usage, even if only required by others (1b7316d4)

Features

  • subcommands properly list subcommands in help and usage (4ee02344)

v0.4.17 (2015-04-08)

Bug Fixes

  • tests remove cargo test from claptests makefile (1cf73817)

v0.4.16 (2015-04-08)

Bug Fixes

  • option fix bug with option occurrence values (9af52e93)
  • tests fix testing script bug and formatting (d8f03a55)

Features

  • arg allow lifetimes other than 'static in arguments (9e8c1fb9)