Skip to content

ArgumentParser 1.3.0

Compare
Choose a tag to compare
@natecook1000 natecook1000 released this 07 Dec 05:27
· 36 commits to main since this release
c8ed701

Changes

  • The @Option, @Argument, @Flag, and @OptionGroup property wrappers now conditionally conform to Sendable when the wrapper's Value type conforms. With this change, you can mark ParsableCommand types as Sendable when 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 @preconcurrency attribute to import ArgumentParser statements.

  • To support migration to Sendable annotation, the minimum Swift version for swift-argument-parser has 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 ExpressibleByArgument types with non empty allValueStrings. Types also conforming to CaseIterable do not need to manually implement allValueStrings, instead it is derived from allCases. (#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 COLUMNS environment 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!