Update dependency info.picocli:picocli to v3.9.6 #222
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.8.0
->3.9.6
Release Notes
remkop/picocli (info.picocli:picocli)
v3.9.6
The picocli community is pleased to announce picocli 3.9.6.
This release improves support for interactive (password) options:
char[]
instead of String, to allow applications to null out the array after use so that sensitive information is no longer resident in memoryarity = "0..1"
This is the fifty-second public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
This release improves support for interactive (password) options:
char[]
instead of String, to allow applications to null out the array after use so that sensitive information is no longer resident in memoryarity = "0..1"
For example, if an application has these options:
With the following input, the
password
field will be initialized to"123"
without prompting the user for input:However, if the password is not specified, the user will be prompted to enter a value. In the following example, the password option has no parameter, so the user will be prompted to type in a value on the console:
Fixed issues
char[]
for interactive options. Thanks to Lukáš Petrovický for raising this issue.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v3.9.5
The picocli community is pleased to announce picocli 3.9.5.
This release contains a critical workaround to protect against JVM crashes when running on RedHat Linux 3.10.0-327.44.2.el7.x86_64.
Picocli 3.9.0 introduced a change in the heuristics for emitting ANSI escape characters. As part of this change, picocli may load the
org.fusesource.jansi.AnsiConsole
class from the JAnsi library when not running on Windows. This may crash the JVM (see fusesource/jansi-native#17).The workaround in this release is to only load the
AnsiConsole
class when running on Windows.Users using 3.9.0 and higher are strongly recommended to upgrade to 3.9.5 or later.
This is the fiftieth public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Fixed issues
org.fusesource.jansi.AnsiConsole
when not running on Windows to avoid JVM crashes on non-Windows platforms.allowWrite = true
attribute for final fields.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v3.9.4
The picocli community is pleased to announce picocli 3.9.4.
This release contains bugfixes and enhancements.
From this release,
enum
-typed options and positional parameters that are multi-value can be stored inEnumSet
collections (in addition to other Collections, arrays and Maps).Also, a better error message is now shown when unknown options are encountered while processing clustered short options. The new error message includes both the failing part and the original command line argument.
Bugfixes:
ReflectionConfigGenerator
incorrectly listed superclass fields as fields of the concrete subclass, causing "GraalVM error: Error parsing reflection configuration in json" when creating a native image.InitializationException
.This is the forty-ninth public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Fixed issues
enum
multi-value options and positional parameters inEnumSet<>
collections. Thanks to Lee Atkinson for raising this.InitializationException
: "Another subcommand named 'method' already exists...". Thanks to PorygonZRocks for the bug report.ReflectionConfigGenerator
incorrectly listed superclass fields as fields of the concrete subclass, causing "GraalVM error: Error parsing reflection configuration in json". Thanks to Sebastian Thomschke for the bug report.ReflectionConfigGenerator
now generates json in alphabetic order.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v3.9.3
The picocli community is pleased to announce picocli 3.9.3.
This release contains bugfixes and enhancements.
This is the forty-eight public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Fixed issues
-
) should be considered positional parameters. Thanks to Oliver Weiler for the bug report.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v3.9.2
The picocli community is pleased to announce picocli 3.9.2.
This release contains bugfixes and enhancements.
Picocli now has a mailing list
picocli at googlegroups dot com
. Alternatively visit the picocli Google group web interface.The user manual has improved documentation for internationalization and localization, and the section on Dependency Injection now has a Spring Boot example and link to the Micronaut user manual.
Bugfixes:
AutoComplete
now uses the specifiedIFactory
correctly forCommandLine
; defaultingusageHelp
orversionHelp
options no longer prevents validation of required options; and usage help for booleans options witharity = "1"
now correctly show the option parameter in the synopsis.Many thanks to the many members of the picocli community who contributed pull requests, bug reports and participated in discussions!
This is the forty-seventh public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Picocli now has a mailing list
picocli at googlegroups dot com
. Alternatively visit the picocli Google group web interface.The user manual has improved documentation for internationalization and localization. Dependency Injection is now a top-level section and now has a Spring Boot example and link to the Micronaut user manual.
Fixed issues
CommandLine
inAutoComplete
use correctIFactory
implementation. Thanks to Mikołaj Krzyżanowski for the pull request.usageHelp
orversionHelp
options incorrectly prevented validation of required options and positional parameters. Thanks to Pietro Braione for the bug report.arity = "1"
now correctly show the option parameter in synopsis. Thanks to prewersk for the bug report.picocli at googlegroups dot com
: picocli Google group.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v3.9.1
The picocli community is pleased to announce picocli 3.9.1.
The
picocli.AutoComplete
application no longer callsSystem.exit()
unless requested by setting system propertypicocli.autocomplete.systemExitOnError
orpicocli.autocomplete.systemExitOnSuccess
to any value other thanfalse
. Applications that rely on the exit codes introduced in picocli 3.9.0 need to set these system properties.This release adds support for quoted map keys with embedded '=' characters.
This release contains bugfixes and enhancements.
This is the forty-sixth public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Fixed issues
enum
constant names, nottoString()
values, after value mismatch. Thanks to startewho for the bug report.picocli.AutoComplete
with StringBuilder. Thanks to Sergio Escalante for the pull request.picocli.AutoComplete
should not callSystem.exit()
unless requested. Thanks to Markus Heiden, Bob Tiernay and RobertZenz for analysis and ideas contributing to the solution.Deprecations
No features were deprecated in this release.
Potential breaking changes
The
picocli.AutoComplete
application no longer callsSystem.exit()
unless requested by setting system propertypicocli.autocomplete.systemExitOnError
orpicocli.autocomplete.systemExitOnSuccess
to any value other thanfalse
.Applications that rely on the exit codes introduced in picocli 3.9.0 need to set these system properties.
The new support for quoted map keys with embedded '=' characters [#594] may impact some existing applications.
If
CommandLine::setTrimQuotes()
is set totrue
, quotes are now removed from map keys and map values. This did not use to be the case.For example:
When
CommandLine::setTrimQuotes()
was set totrue
, given input like the below:The above used to result in a map with key
AppOptions
and value"-Da=b -Dx=y"
(including the quotes), but the same program and input now results in a map with keyAppOptions
and value-Da=b -Dx=y
(without quotes).Also, when
CommandLine::setTrimQuotes()
isfalse
(the default), input like the below will now cause aParameterException
("value should be in KEY=VALUE format"):Prior to this release, the above was silently ignored (no errors but also no key-value pairs in the resulting map).
v3.9.0
The picocli community is pleased to announce picocli 3.9.0.
This release contains bugfixes and enhancements in the main picocli module, and adds a new module:
picocli-shell-jline3
.The new module Picocli Shell JLine3 (
picocli-shell-jline3
) contains components and documentation for buildinginteractive shell command line applications with JLine 3 and picocli.
This release contains API enhancements to allow customization of the usage help message:
Help
instancesThis release also has improved heuristics to decide whether ANSI escape codes should be emitted or not.
The simplified @-file (argument file) format is now fully compatible with JCommander: empty lines are ignored and comments may start with leading whitespace.
The
picocli.Autocompletion
application now accepts a parameter specifying a custom factory, and returns a non-zero exit code on error, to facilitate incorporating it into the build.Bug fixes in this release:
@Command
method options and positional parameter values are now cleared correctly when reusing aCommandLine
instanceFinally, this release improves internal quality and robustness by increasing the test code coverage. About 300 tests were added to bring the total to 1300+ tests. This improved line coverage to 98% (was 88%) and complexity coverage to 98% (was 82%).
This is the forty-fifth public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Help Section Renderer API
This release introduces new API to facilitate customizing the usage help message:
IHelpFactory
allows applications to plug inHelp
subclasses, andIHelpSectionRenderer
allows applications to add custom sections to the usage help message, or redefine existing sections.The usage help message is no longer hard-coded, but is now constructed from the section renderers defined in
CommandLine::getHelpSectionMap
(orUsageMessageSpec::sectionMap
for a singleCommandSpec
).By default this map contains the predefined section renderers:
Applications can add, remove or replace sections in this map. The
CommandLine::getHelpSectionKeys
method (orUsageMessageSpec::sectionKeys
for a singleCommandSpec
) returns the section keys in the order that the usage help message should render the sections. The default keys are (in order):This ordering may be modified with the
CommandLine::setHelpSectionKeys
setter method (orUsageMessageSpec::sectionKeys(List)
for a singleCommandSpec
).Option
order
AttributeOptions are sorted alphabetically by default, but this can be switched off by specifying
@Command(sortOptions = false)
on the command declaration. This displays options in the order they are declared.However, when mixing
@Option
methods and@Option
fields, options do not reliably appear in declaration order.The
@Option(order = <int>)
attribute can be used to explicitly control the position in the usage help message at which the option should be shown. Options with a lower number are shown before options with a higher number.New Module
picocli-shell-jline3
Picocli Shell JLine3 contains components and documentation for building interactive shell command line applications with JLine 3 and picocli.
This release contains the
picocli.shell.jline3.PicocliJLineCompleter
class.PicocliJLineCompleter
is a small component that generates completion candidates to allow users to get command line TAB auto-completion for a picocli-based application running in a JLine 3 shell.It is similar to the class with the same name in the
picocli.shell.jline2
package in thepicocli-shell-jline2
module.See the module's README for more details.
Improved ANSI Heuristics
This release has improved heuristics to decide whether ANSI escape codes should be emitted or not.
Support was added for the following environment variables to control enabling ANSI:
NO_COLOR
CLICOLOR_FORCE
CLICOLOR
ConEmuANSI
ANSICON
Fixed issues
picocli-shell-jline3
module. Thanks to mattirn for the pull request.picocli-shell-jline3
example by using JLine'sDefaultParser
to split lines into arguments. Thanks to mattirn for the pull request.Help.detailedSynopsis()
into protected methods.@Option(order = <int>)
attribute to allow explicit control of option ordering in the usage help message; useful when mixing methods and fields with@Option
annotation.CommandSpec.names
returning bothname
andaliases
.CommandSpec.addMethodSubcommands
now throwspicocli.CommandLine.InitializationException
instead ofjava.lang.UnsupportedOperationException
when the user object of the parent command is ajava.lang.reflect.Method
.AutoComplete
error message when not overwriting existing files.picocli.AutoComplete
now accepts a parameter specifying a customIFactory
implementation. Thanks to Bob Tiernay for the suggestion.picocli.AutoComplete
now returns a non-zero return code on error. Thanks to Bob Tiernay for the suggestion.=
when option parameter was attached to option name.Deprecations
No features were deprecated in this release.
Potential breaking changes
CommandSpec.addMethodSubcommands
now throwsInitializationException
instead ofjava.lang.UnsupportedOperationException
when the user object of the parent command is ajava.lang.reflect.Method
.AutoComplete application now prints different error message when not overwriting existing script files. This may break tests that verify the console output.
v3.8.2
The picocli community is pleased to announce picocli 3.8.2.
This release contains bugfixes only.
When running a native image with Graal, ANSI colors are now shown correctly.
This is the forty-forth public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Fixed issues
Deprecations
No features were deprecated in this release.
Potential breaking changes
This is a patch release and has no breaking changes.
v3.8.1
The picocli community is pleased to announce picocli 3.8.1.
This release contains bugfixes and minor enhancements.
Command methods explicitly throwing a
ParametersException
is now correctly handled by picocli, showing the error message and the usage help message.This release adds support for JCommander-style argument files (one argument per line, no quoting) and better tracing.
Many thanks to the many members of the picocli community who contributed!
This is the forty-third public release.
Picocli follows semantic versioning.
Table of Contents
New and Noteworthy
Simplified Argument Files
In this argument file format every line (except comment lines) is interpreted as a single argument. Arguments containing whitespace do not need to be quoted, but it is not possible to have arguments with embedded newlines.
Set system property
picocli.useSimplifiedAtFiles
without a value or with value"true"
(case-insensitive) to enable this simpler argument file format.This format is similar to the way JCommander processes argument files, which makes it easier for command line applications to migrate from JCommander to picocli.
Improved Tracing
The following information has been added to the tracing output in this release:
Fixed issues
picocli.trimQuotes
. Thanks to Lukáš Petrovický for the pull request.Deprecations
No features were deprecated in this release.
Potential breaking changes
This is a patch release and has no breaking changes.
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.