mirror of
https://github.com/clap-rs/clap
synced 2024-11-10 14:54:15 +00:00
docs: Update changelog
This commit is contained in:
parent
653e121bcc
commit
588c46b6c6
1 changed files with 74 additions and 0 deletions
74
CHANGELOG.md
74
CHANGELOG.md
|
@ -27,6 +27,80 @@ _gated behind `unstable-v4`_
|
||||||
<!-- next-header -->
|
<!-- next-header -->
|
||||||
## [Unreleased] - ReleaseDate
|
## [Unreleased] - ReleaseDate
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- Parsed, typed arguments via `Arg::value_parser` / `ArgMatches::{get_one,get_many}` (#2683, #3732)
|
||||||
|
- Several built-in `TypedValueParser`s available with an API open for expansion
|
||||||
|
- `value_parser!(T)` macro for selecting a parser for a given type (#3732) and open to expansion via the `ValueParserFactory` trait (#3755)
|
||||||
|
- `[&str]` is implicitly a value parser for possible values
|
||||||
|
- All `ArgMatches` getters do not assume required arguments (#2505)
|
||||||
|
- Add `ArgMatches::remove_*` variants to transfer ownership
|
||||||
|
- Add `ArgMatches::try_*` variants to avoid panics for developer errors (#3621)
|
||||||
|
- Add a `get_raw` to access the underlying `OsStr`s
|
||||||
|
- `PathBuf` value parsers imply `ValueHint::AnyPath` for completions (#3732)
|
||||||
|
- Explicit control over parsing via `Arg::action` (#3774)
|
||||||
|
- `ArgAction::StoreValue`: existing `takes_value(true)` behavior
|
||||||
|
- `ArgAction::IncOccurrences`: existing `takes_value(false)` behavior
|
||||||
|
- `ArgAction::Help`: existing `--help` behavior
|
||||||
|
- `ArgAction::Version`: existing `--version` behavior
|
||||||
|
- `ArgAction::Set`: Overwrite existing values (like `Arg::multiple_occurrences` mixed with `Command::args_override_self`) (#3777)
|
||||||
|
- `ArgAction::Append`: like `Arg::multiple_occurrences` (#3777)
|
||||||
|
- `ArgAction::SetTrue`: Treat `--flag` as `--flag=true` (#3775)
|
||||||
|
- Implies `Arg::default_value("false")` (#3786)
|
||||||
|
- Parses `Arg::env` via `Arg::value_parser`
|
||||||
|
- `ArgAction::SetFalse`: Treat `--flag` as `--flag=false` (#3775)
|
||||||
|
- Implies `Arg::default_value("true")` (#3786)
|
||||||
|
- Parses `Arg::env` via `Arg::value_parser`
|
||||||
|
- `ArgAction::Count`: Treat `--flag --flag --flag` as `--flag=1 --flag=2 --flag=3` (#3775)
|
||||||
|
- Implies `Arg::default_value("0")` (#3786)
|
||||||
|
- Parses `Arg::env` via `Arg::value_parser`
|
||||||
|
- *(derive)* Opt-in to new `Arg::value_parser` / `Arg::action` with either `#[clap(value_parser)]` (#3589, #3742) / `#[clap(action)]` attributes (#3794)
|
||||||
|
- Default `ValueParser` is determined by `value_parser!` (#3199, #3496)
|
||||||
|
- Default `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)
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
*parser*
|
||||||
|
- Set `ArgMatches::value_source` and `ArgMatches::occurrences_of` for external subcommands (#3732)
|
||||||
|
- Use value delimiter for `Arg::default_missing_values` (#3761, #3765)
|
||||||
|
- Split`Arg::default_value` / `Arg::env` on value delimiters independent of whether `--` was used (#3765)
|
||||||
|
- Allow applying defaults to flags (#3294, 3775)
|
||||||
|
- Defaults no longer satisfy `required` and its variants (#3793)
|
||||||
|
|
||||||
|
### Compatibility
|
||||||
|
|
||||||
|
MSRV is now 1.56.0 (#3732)
|
||||||
|
|
||||||
|
Behavior
|
||||||
|
- Defaults no longer satisfy `required` and its variants (#3793)
|
||||||
|
|
||||||
|
Moving (old location deprecated)
|
||||||
|
- `clap::{PossibleValue, ValueHint}` to `clap::builder::{PossibleValue, ValueHint}`
|
||||||
|
- `clap::{Indices, OsValues, ValueSource, Values}` to `clap::parser::{Indices, OsValues, ValueSource, Values}`
|
||||||
|
- `clap::ArgEnum` to `clap::ValueEnum` (#3799)
|
||||||
|
|
||||||
|
Replaced
|
||||||
|
- `Arg::allow_invalid_utf8` with `Arg::value_parser(value_parser!(PathBuf))` (#3753)
|
||||||
|
- `Arg::validator` / `Arg::validator_os` with `Arg::value_parser` (#3753)
|
||||||
|
- `Arg::validator_regex` with users providing their own `builder::TypedValueParser` (#3756)
|
||||||
|
- `Arg::forbid_empty_values` with `builder::NonEmptyStringValueParser` / `builder::PathBufValueParser` (#3753)
|
||||||
|
- `Arg::possible_values` with `Arg::value_parser([...])`, `builder::PossibleValuesParser`, or `builder::EnumValueParser` (#3753)
|
||||||
|
- `Arg::max_occurrences` with `arg.action(ArgAction::Count).value_parser(value_parser!(u64).range(..N))` for flags (#3797)
|
||||||
|
- `Arg::multiple_occurrences` with `ArgAction::Append` or `ArgAction::Count` though positionals will need `Arg::multiple_values` (#3772, #3797)
|
||||||
|
- `Command::args_override_self` with `ArgAction::Set` (#2627, #3797)
|
||||||
|
- `AppSettings::NoAutoVersion` with `ArgAction` or `Command::disable_version_flag` (#3800)
|
||||||
|
- `AppSettings::NoHelpVersion` with `ArgAction` or `Command::disable_help_flag` / `Command::disable_help_subcommand` (#3800)
|
||||||
|
- `ArgMatches::{value_of, value_of_os, value_of_os_lossy, value_of_t}` with `ArgMatches::{get_one,remove_one}` (#3753)
|
||||||
|
- `ArgMatches::{values_of, values_of_os, values_of_os_lossy, values_of_t}` with `ArgMatches::{get_many,remove_many}` (#3753)
|
||||||
|
- `ArgMatches::is_valid_arg` with `ArgMatches::{try_get_one,try_get_many}` (#3753)
|
||||||
|
- `ArgMatches::occurrences_of` with `ArgMatches::value_source` or `ArgAction::Count` (#3797)
|
||||||
|
- `ArgAction::StoreValue` with `ArgAction::Set` or `ArgAction::Append` (#3797)
|
||||||
|
- `ArgAction::IncOccurrences` with `ArgAction::SetTrue` or `ArgAction::Count` (#3797)
|
||||||
|
- *(derive)* `#[clap(parse(from_flag))]` replaced with `#[clap(action = ArgAction::SetTrue)]` (#3794)
|
||||||
|
- *(derive)* `#[clap(parse(from_occurrences))]` replaced with `#[clap(action = ArgAction::Count)]` though the field's type must be `u64` (#3794)
|
||||||
|
- *(derive)* `#[clap(parse(...))]` replaced with `#[clap(value_parser)]` (#3589, #3794)
|
||||||
|
|
||||||
## [3.1.18] - 2022-05-10
|
## [3.1.18] - 2022-05-10
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
Loading…
Reference in a new issue