ArgumentParser 1.3.0
Changes
-
The
@Option,@Argument,@Flag, and@OptionGroupproperty wrappers now conditionally conform toSendablewhen the wrapper'sValuetype conforms. With this change, you can markParsableCommandtypes asSendablewhen you want to be able to pass a parsed command across concurrent contexts. (#582)Migration: Users that aren't ready to resolve sendability warnings can add the
@preconcurrencyattribute toimport ArgumentParserstatements. -
To support migration to
Sendableannotation, the minimum Swift version forswift-argument-parserhas been increased to Swift 5.7. Users of older Swift versions will be able to continue using version 1.2.3 of the library. (#582)
Additions
- Help screens now include possible options for
ExpressibleByArgumenttypes with non emptyallValueStrings. Types also conforming toCaseIterabledo not need to manually implementallValueStrings, instead it is derived fromallCases. (#594)
Fixes
- The titles for nested option groups are preserved when embedded into commands without specifying a new title. (#592)
- When wrapping help and error messages, the library now uses the
COLUMNSenvironment variable when set, instead of immediately falling back to 80 columns. (#596) - Bash completion scripts now respect the extensions given in a
.file(...)completion kind. (#590) - Bash completion scripts now properly escape command names that include hyphens. (#573)
- Documentation improvements. (#572, #565, #602)
The 1.2.3 release includes contributions from @Alkenso, @compnerd, @gwynne,
@kennyyork, @natecook1000, @rauhul, @robertmryan, and @vlm. Thank you!