ajalt/clikt (com.github.ajalt.clikt:clikt)
### [`v5.0.1`](https://redirect.github.com/ajalt/clikt/blob/HEAD/CHANGELOG.md#501)
[Compare Source](https://redirect.github.com/ajalt/clikt/compare/5.0.0...5.0.1)
##### Added
- Added completion commands for suspending and chained commands. ([#553](https://redirect.github.com/ajalt/clikt/pull/553))
- Added no-op suspending commands. ([#554](https://redirect.github.com/ajalt/clikt/pull/554))
##### Changed
- Unknown option errors and missing argument errors that occur at the same time will now both be reported. ([#553](https://redirect.github.com/ajalt/clikt/pull/553))
### [`v5.0.0`](https://redirect.github.com/ajalt/clikt/blob/HEAD/CHANGELOG.md#500)
[Compare Source](https://redirect.github.com/ajalt/clikt/compare/4.4.0...5.0.0)
##### Added
- Publish `iosArm64` and `iosX64` targets.
- Added `NoSuchArgument` exception that is thrown when too many arguments were given on the command line. Previously, a less specific `UsageError` was thrown instead.
- Added `CommandLineParser.tokenize` that splits a string into argv tokens.
- Added `CommandLineParser` that provides functions for parsing and finalizing commands manually for more control.
- Added `Context.invokedSubcommands` that contains all subcommands of the current command that are going to be invoked when `allowMultipleSubcommands` is `true`.
- Added `SuspendingCliktCommand` that has a `suspend fun run` method, allowing you to use coroutines in your commands.
- Added `ChainedCliktCommand` that allows you to return a value from your `run` method and pass it to the next command in the chain.
- Added `Context.data` as an alternative to `obj` that allows you to store more than one object in the context.
- Added `Context.echoer` to customize how `echo` messages are printed.
- Added `CompletionGenerator` to manually generate completions for a command.
- Added `Context.exitProcess` which you can use to prevent the process from exiting during tests.
- Added core module that supports watchOS, tvOS, and wasmWasi targets and has no dependencies.
- Added more options to `CliktCommand.test` to control the terminal interactivity. ([#517](https://redirect.github.com/ajalt/clikt/pull/517))
- Added `associate{}`, `associateBy{}`, and `associateWith{}` transforms for options that allow you to convert the keys and values of the map. ([#529](https://redirect.github.com/ajalt/clikt/pull/529))
- Added support for aliasing options to other options. ([#535](https://redirect.github.com/ajalt/clikt/pull/535))
- Added `limit` and `ignoreCase` parameters to `option().split()`. ([#541](https://redirect.github.com/ajalt/clikt/pull/541))
- Support calling `--help` on subcommands when parents have required parameters.
##### Changed
- In a subcommand with and an `argument()` with `multiple()` or `optional()`, the behavior is now the same regardless of the value of `allowMultipleSubcommands`: if a token matches a subcommand name, it's now treated as a subcommand rather than a positional argument.
- Due to changes to the internal parsing algorithm, the exact details of error messages when multiple usage errors occur have changed in some cases.
- **Breaking Change:** Moved the following parameters from `CliktCommand`'s constructor; override the corresponding properties instead:
| removed parameter | replacement property |
|-----------------------------|---------------------------------|
| `help` | `fun help` |
| `epilog` | `fun helpEpilog` |
| `invokeWithoutSubcommand` | `val invokeWithoutSubcommand` |
| `printHelpOnEmptyArgs` | `val printHelpOnEmptyArgs` |
| `helpTags` | `val helpTags` |
| `autoCompleteEnvvar` | `val autoCompleteEnvvar` |
| `allowMultipleSubcommands` | `val allowMultipleSubcommands` |
| `treatUnknownOptionsAsArgs` | `val treatUnknownOptionsAsArgs` |
| `hidden` | `val hiddenFromHelp` |
- The following methods on `CliktCommand` have been renamed: `commandHelp` -> `help`, `commandHelpEpilog` -> `epilog`. The old names are deprecated.
- **Breaking Change:** `CliktCommand.main` and `CliktCommand.parse` are now extension functions rather than methods.
- **Breaking Change:** `Context.obj` and `Context.terminal`, and `OptionTransformContext.terminal` are now extension functions rather than properties.
- **Breaking Change:** The `RenderedSection` and `DefinitionRow` classes have moved to `AbstractHelpFormatter`.
- Markdown support in the help formatter is no longer included by default. To enable it, include the `:clikt-markdown` dependency and call `yourCommand.installMordantMarkdown()` before parsing.
- Updated Kotlin to 2.0.0
##### Fixed
- Fixed excess arguments not being reported when `allowMultipleSubcommands=true` and a subcommand has excess arguments followed by another subcommand.
- Commands with `printHelpOnEmptyArgs=true` will no longer print help if an option has a value from an environment variable or value source. ([#382](https://redirect.github.com/ajalt/clikt/pull/382))
##### Deprecated
- Deprecated `Context.originalArgv`. It will now always return an empty list. If your commands need an argv, you can pass it to them before you run them, or set in on the new `Context.data` map.
- Deprecated `Context.expandArgumentFiles`. Use `Context.argumentFileReader` instead.
- Renamed the following `Context` fields to be more consistent. The old names are deprecated.
| old name | new name |
|-------------------------------|---------------------------------|
| `Context.envvarReader` | `Context.readEnvvar` |
| `Context.correctionSuggestor` | `Context.suggestTypoCorrection` |
| `Context.argumentFileReader` | `Context.readArgumentFile` |
| `Context.tokenTransformer` | `Context.transformToken` |
##### Removed
- Removed previously deprecated experimental annotations.
- Removed `MordantHelpFormatter.graphemeLength`
- Removed `TermUi`
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
4.4.0
->5.0.1
Release Notes
ajalt/clikt (com.github.ajalt.clikt:clikt)
### [`v5.0.1`](https://redirect.github.com/ajalt/clikt/blob/HEAD/CHANGELOG.md#501) [Compare Source](https://redirect.github.com/ajalt/clikt/compare/5.0.0...5.0.1) ##### Added - Added completion commands for suspending and chained commands. ([#553](https://redirect.github.com/ajalt/clikt/pull/553)) - Added no-op suspending commands. ([#554](https://redirect.github.com/ajalt/clikt/pull/554)) ##### Changed - Unknown option errors and missing argument errors that occur at the same time will now both be reported. ([#553](https://redirect.github.com/ajalt/clikt/pull/553)) ### [`v5.0.0`](https://redirect.github.com/ajalt/clikt/blob/HEAD/CHANGELOG.md#500) [Compare Source](https://redirect.github.com/ajalt/clikt/compare/4.4.0...5.0.0) ##### Added - Publish `iosArm64` and `iosX64` targets. - Added `NoSuchArgument` exception that is thrown when too many arguments were given on the command line. Previously, a less specific `UsageError` was thrown instead. - Added `CommandLineParser.tokenize` that splits a string into argv tokens. - Added `CommandLineParser` that provides functions for parsing and finalizing commands manually for more control. - Added `Context.invokedSubcommands` that contains all subcommands of the current command that are going to be invoked when `allowMultipleSubcommands` is `true`. - Added `SuspendingCliktCommand` that has a `suspend fun run` method, allowing you to use coroutines in your commands. - Added `ChainedCliktCommand` that allows you to return a value from your `run` method and pass it to the next command in the chain. - Added `Context.data` as an alternative to `obj` that allows you to store more than one object in the context. - Added `Context.echoer` to customize how `echo` messages are printed. - Added `CompletionGenerator` to manually generate completions for a command. - Added `Context.exitProcess` which you can use to prevent the process from exiting during tests. - Added core module that supports watchOS, tvOS, and wasmWasi targets and has no dependencies. - Added more options to `CliktCommand.test` to control the terminal interactivity. ([#517](https://redirect.github.com/ajalt/clikt/pull/517)) - Added `associate{}`, `associateBy{}`, and `associateWith{}` transforms for options that allow you to convert the keys and values of the map. ([#529](https://redirect.github.com/ajalt/clikt/pull/529)) - Added support for aliasing options to other options. ([#535](https://redirect.github.com/ajalt/clikt/pull/535)) - Added `limit` and `ignoreCase` parameters to `option().split()`. ([#541](https://redirect.github.com/ajalt/clikt/pull/541)) - Support calling `--help` on subcommands when parents have required parameters. ##### Changed - In a subcommand with and an `argument()` with `multiple()` or `optional()`, the behavior is now the same regardless of the value of `allowMultipleSubcommands`: if a token matches a subcommand name, it's now treated as a subcommand rather than a positional argument. - Due to changes to the internal parsing algorithm, the exact details of error messages when multiple usage errors occur have changed in some cases. - **Breaking Change:** Moved the following parameters from `CliktCommand`'s constructor; override the corresponding properties instead: | removed parameter | replacement property | |-----------------------------|---------------------------------| | `help` | `fun help` | | `epilog` | `fun helpEpilog` | | `invokeWithoutSubcommand` | `val invokeWithoutSubcommand` | | `printHelpOnEmptyArgs` | `val printHelpOnEmptyArgs` | | `helpTags` | `val helpTags` | | `autoCompleteEnvvar` | `val autoCompleteEnvvar` | | `allowMultipleSubcommands` | `val allowMultipleSubcommands` | | `treatUnknownOptionsAsArgs` | `val treatUnknownOptionsAsArgs` | | `hidden` | `val hiddenFromHelp` | - The following methods on `CliktCommand` have been renamed: `commandHelp` -> `help`, `commandHelpEpilog` -> `epilog`. The old names are deprecated. - **Breaking Change:** `CliktCommand.main` and `CliktCommand.parse` are now extension functions rather than methods. - **Breaking Change:** `Context.obj` and `Context.terminal`, and `OptionTransformContext.terminal` are now extension functions rather than properties. - **Breaking Change:** The `RenderedSection` and `DefinitionRow` classes have moved to `AbstractHelpFormatter`. - Markdown support in the help formatter is no longer included by default. To enable it, include the `:clikt-markdown` dependency and call `yourCommand.installMordantMarkdown()` before parsing. - Updated Kotlin to 2.0.0 ##### Fixed - Fixed excess arguments not being reported when `allowMultipleSubcommands=true` and a subcommand has excess arguments followed by another subcommand. - Commands with `printHelpOnEmptyArgs=true` will no longer print help if an option has a value from an environment variable or value source. ([#382](https://redirect.github.com/ajalt/clikt/pull/382)) ##### Deprecated - Deprecated `Context.originalArgv`. It will now always return an empty list. If your commands need an argv, you can pass it to them before you run them, or set in on the new `Context.data` map. - Deprecated `Context.expandArgumentFiles`. Use `Context.argumentFileReader` instead. - Renamed the following `Context` fields to be more consistent. The old names are deprecated. | old name | new name | |-------------------------------|---------------------------------| | `Context.envvarReader` | `Context.readEnvvar` | | `Context.correctionSuggestor` | `Context.suggestTypoCorrection` | | `Context.argumentFileReader` | `Context.readArgumentFile` | | `Context.tokenTransformer` | `Context.transformToken` | ##### Removed - Removed previously deprecated experimental annotations. - Removed `MordantHelpFormatter.graphemeLength` - Removed `TermUi`Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.