All Versions
Latest Version
Avg Release Cycle
38 days
Latest Release
694 days ago

Changelog History
Page 1

  • v1.1.4 Changes

    August 26, 2022

    ๐Ÿ”„ Changes

    • 0๏ธโƒฃ The generate-manual plugin now defaults to creating single page manuals. The --single-page flag has been replaced with --multi-page to restore the previous default functionality. ([#472])

    Migration: Update scripts that invoked generate-manual without --single-page to include --multi-page and update scripts that invoked generate-manual with --single-page to omit the flag.

    • ๐Ÿšš The "experimental" prefix from the generate-manual plugin has been removed. ([#475])

    Migration: Update scripts to invoke the generate manual plugin via swift package generate-manual instead of swift package plugin experimental-generate-manual.

    ๐Ÿ›  Fixes

    • ๐Ÿ”Œ The generate-manual plugin is correctly declared as a product, making the plugin visible to clients. ([#456])
    • ๐Ÿ”Œ The generate-manual plugin's --authors arguments are now correctly passed to the underlying generation tool. ([#471])
    • ๐Ÿ”Œ Manuals generated by the generate-manual plugin now include the option's value names and do not include value names for flags. ([#473])
    • Built-in flags such as --help and --version are now correctly marked as optional fixing some generated content which indicated the flags are always required. ([#474])
    • Value descriptions are now correctly derived for types which are ExpressibleByArgument and RawRepresentable by String. Help menus will now display valid default values for such types. ([#476])

    ๐Ÿš€ The 1.1.4 release includes contributions from [ian-twilightcoder], [MarcoEidinger], and [rauhul]. Thank you!

  • v1.1.3 Changes

    June 23, 2022

    โž• Additions

    • ๐Ÿ”Œ ArgumentParser now includes a SwiftPM plugin for generating man pages. Explore the functionality and configuration by running swift package plugin experimental-generate-manual --help from your package root. ([#332])

    ๐Ÿ›  Fixes

    • Hidden subcommands are now excluded from completion scripts. ([#443])
    • When an invalid value is provided for a CaseIterable type, the error message now includes a list of valid inputs. ([#445])
    • There's now a diagnostic when an AsyncParsableCommand is incorrectly placed under a non-async root command. ([#436])

    ๐Ÿš€ The 1.1.3 release includes contributions from [keith], [KeithBird], [konomae], [LucianoPAlmeida], and [rauhul]. Thank you!

  • v1.1.2 Changes

    April 11, 2022

    ๐Ÿ”„ Changes

    • ๐Ÿ— CMake builds now always statically links ArgumentParserToolInfo. ([#424])

    ๐Ÿ›  Fixes

    • When a user provides an array-based option's key (e.g. --key) without any values, the error message now correctly describes the problem. ([#435])

    ๐Ÿš€ The 1.1.2 release includes contributions from [compnerd] and [KeithBird]. Thank you!

  • v1.1.1 Changes

    March 16, 2022

    ๐Ÿ›  Fixes

    • ๐Ÿ“ฆ Moves the platform requirement from the package level down to the new types and protocols with async members. This was a source-breaking change in 1.1.0. ([#427])
    • ๐Ÿ›  Fixed issues in the CMake build configuration.
  • v1.1.0 Changes

    March 14, 2022

    โž• Additions

    • ๐Ÿ‘ A command's run() method now supports async/await when the command conforms to AsyncParsableCommand. ([#404])
    • ๐Ÿ†• New API for distinguishing between public, hidden, and private arguments and option groups, and a new extended help screen accessible via --help-hidden. ([#366], [#390], and [#405 through #413][1.1.0])
    • ๐Ÿ”ง You can now override the autogenerated usage string when configuring a command. ([#400])

    ๐Ÿ”„ Changes

    • ๐Ÿ“œ ArgumentParser now requires Swift 5.5.

    ๐Ÿ›  Fixes

    • The auto-generated usage string now correctly hides all optional parameters when over the length limit. ([#416])
    • One @Option initializer now has its parameters in the correct order; the incorrect initializer is deprecated. ([#391])
    • Help flags are now correctly captured in .unconditionalRemaining argument arrays.
    • ๐Ÿ“š Documentation fixes and improvements.

    ๐Ÿš€ The 1.1.0 release includes contributions from [keith], [MartinP7r], [McNight], [natecook1000], [rauhul], and [zkiraly]. Thank you!

  • v1.0.3 Changes

    January 31, 2022

    ๐Ÿ”„ Changes

    • When a user provides an incorrect value for an option, an ArgumentParser-based program now includes the valid values when possible.

      $ example --format png
      Error: The value 'png' is invalid for '--format <format>'.
      Please provide one of 'text', 'json' or 'csv'.

    ๐Ÿ›  Fixes

    • Resolves an issue with zsh custom completions for command names that include a dash.
    • ๐Ÿ‘Œ Improves the generated completions scripts for fish.
    • ๐Ÿ— Resolves issues that prevented building ArgumentParser for WebAssembly using SwiftWasm toolchains.
    • ๐Ÿ‘Œ Improved window size handling on Windows.
    • ๐Ÿ›  Fixed a crash when using --experimental-dump-help with commands that provide non-parsed values.
    • ๐Ÿ›  Fixes an issue where subcommands that declare array arguments with the .unconditionalRemaining parsing strategy unexpectedly miss arguments, extending the change in [#333] to subcommands. ([#397])
    • ๐Ÿ—„ Corrects the order of an @Option initializer's parameters, deprecating the old version. ([#391])
    • ๐Ÿ“š Expanded and corrected documentation.

    ๐Ÿš€ The 1.0.3 release includes contributions from [atierian], [CraigSiemens], [dduan], [floam], [KS1019], [McNight], [mdznr], [natecook1000], [rauhul], and [yonihemi]. Thank you!

  • v1.0.2 Changes

    November 09, 2021

    ๐Ÿ›  Fixes

    • โž• Addresses an issue when building tests under Mac Catalyst.

    ๐Ÿš€ The 1.0.2 release includes a contribution from [jakepetroules]. Thank you!

  • v1.0.1 Changes

    September 14, 2021

    ๐Ÿ›  Fixes

    • โž• Addresses an issue when compiling under Mac Catalyst.

    ๐Ÿš€ The 1.0.1 release includes a contribution from [imxieyi]. Thank you!

  • v1.0.0 Changes

    September 10, 2021

    ๐Ÿš€ The 1.0 release marks an important milestone โ€” ๐Ÿ“œ ArgumentParser is now source stable!

    ๐Ÿ”„ Changes

    • ๐Ÿ“š ArgumentParser now provides a DocC documentation catalog, so you can view rendered articles and symbol documentation directly within Xcode.

    ๐Ÿ›  Fixes

    • ๐Ÿ“œ Parsing works as expected for options with single-dash names that are declared using the .upToNextOption parsing strategy.

  • v0.5.0 Changes

    September 02, 2021

    โž• Additions

    • When a user doesn't provide a required argument, the error message now includes that argument's help text. ([#324])
    • ๐Ÿ“œ Command-line tools built with ArgumentParser now include an experimental flag to dump command/argument/help information as JSON: --experimental-dump-help. ([#310])

    ๐Ÿ”„ Changes

    • All public enumerations are now structs with static properties, to make compatibility with future additions simpler.

    ๐Ÿ›  Fixes

    • ๐Ÿ“œ Array properties defined as @Option with the .upToNextOption parsing strategy now include all provided values. ([#304]) In the example below, all four values are now included in the resulting array, where only the last two were included in previous releases:

      struct Example: ParsableCommand {
          @Option(parsing: .upToNextOption)
          var option: [String]
      $ example --option one two --option three four
    • When a command defines an array property as an @Argument with the .unconditionalRemaining parsing strategy, option and flag parsing now stops at the first positional argument or unrecognized flag. ([#333])

    • Completion scripts correctly use customized help flags. ([#308])

    • ๐Ÿ›  Fixes errors with bash custom completion arguments and the executable path. ([#320], [#323])

    • ๐Ÿ›  Fixes the behavior when a user specifies both the help subcommand and a help flag. ([#309])

    • A variety of internal improvements. ([#315], [#316], [#321], [#341])

    ๐Ÿš€ The 0.5.0 release includes contributions from [atierian], [compnerd], [dirtyhabits97], [Frizlab], [KS1019], [natecook1000], and [rauhul]. Thank you!