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:
4.6.3
->4.7.6
4.6.3
->4.7.6
Release Notes
remkop/picocli (info.picocli:picocli-codegen)
v4.7.6
The picocli community is pleased to announce picocli 4.7.6.
This release includes bugfixes and enhancements.
Many thanks to the picocli community for raising these issues and providing the pull requests to address them!
This is the eighty-fifth public release.
Picocli follows semantic versioning.
Artifacts in this release are signed by Remko Popma (6601 E5C0 8DCC BB96).
Table of Contents
New and Noteworthy
PropertiesDefaultProvider
now tries to load properties from the classpath if the file cannot be found in the user.home directory.Fixed issues
PropertiesDefaultProvider
should try to load properties from classpath (last). Thanks to Lumír Návrat for the pull request....
vararg instead of array parameter to match overridden method signature. Thanks to Michael Vorburger for the pull request.defaultValue
should not be applied in addition to user-specified value for options with a customIParameterConsumer
. Thanks to Staffan Arvidsson McShane for raising this.Example.jar
asConfigurationPath
cannot benull
anymore. Thanks to llzen44 for the pull request.Optional<T>
arguments with initial value. Thanks to hq6 for raising this.@Option
-annotated setter method not invoked with default value when used in mixin for both command and subcommand. Thanks to Zhonghao Wang for raising this.boolean
options should not be ignored. Thanks to Sven Kammerer for raising this.TruthSelfEquals
warningsParseResult
passed toIExecutionExceptionHandler
is the top-level parse result, not the parse result of the subcommand that failed. Thanks to Abel Salgado Romero for raising this.1fbfbbc
to6e8d644
Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v4.7.5
The picocli community is pleased to announce picocli 4.7.5.
This release includes bugfixes and enhancements.
Many thanks to the picocli community for raising these issues and providing the pull requests to address them!
This is the eighty-forth public release.
Picocli follows semantic versioning.
Artifacts in this release are signed by Remko Popma (6601 E5C0 8DCC BB96).
Table of Contents
New and Noteworthy
Fixed issues
echo=false
forinteractive
options and positional parameters. Thanks to szzsolt for raising this.picocli.shell.jline3.PicoCommand
. Thanks to clebertsuconic for the pull request.exclusive=false
andmultiplicity=1
should require at least one option; fix regression and refine solution introduced in [#1848][#2030]. Thanks to Utkarsh Mittal for raising this.graalvm-native-image-plugin
. Thanks to Bhavik Patel for the pull request.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v4.7.4
The picocli community is pleased to announce picocli 4.7.4.
This release includes bugfixes and enhancements.
Many thanks to the picocli community for raising these issues and providing the pull requests to address them!
This is the eighty-third public release.
Picocli follows semantic versioning.
Artifacts in this release are signed by Remko Popma (6601 E5C0 8DCC BB96).
Table of Contents
New and Noteworthy
See fixed items below.
I cheated on the semantic versioning in this release: a public setter method was added in a class in the
picocli.shell.jline3
module. In spite of that, the version number went from 4.7.3 to 4.7.4 (not 4.8.0). My apologies.Fixed issues
picocli.shell.jline3.PicocliCommands
. Thanks to Irina Leontyuk for raising this.java.nio.charset.UnsupportedCharsetException: cp0
on windows, and fall back to the default charset if the charset provided by System propertysun.stdout.encoding
is invalid. Thanks toBartosz Spyrko-Smietanko for the pull request.
ArgGroup
becoming optional when combined withDefaultValueProvider
. Thanks to Ruud Senden and Mike Snowden for the pull request.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v4.7.3
The picocli community is pleased to announce picocli 4.7.3.
This release includes bugfixes and enhancements.
This is the eighty-second public release.
Picocli follows semantic versioning.
Artifacts in this release are signed by Remko Popma (6601 E5C0 8DCC BB96).
Table of Contents
New and Noteworthy
Fixed a regression introduced in picocli 4.7.2.
Multi-value options whose
fallbackValue
is set toCommandLine.Option.NULL_VALUE
, may see aNullPointerException
if the option is specified on the command line without a parameter but with a=
attached, like--option=
.Also, this release fixes broken links in the Javadoc.
Fixed issues
Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v4.7.2
The picocli community is pleased to announce picocli 4.7.2.
This release includes bugfixes and enhancements.
This is the eighty-first public release.
Picocli follows semantic versioning.
Artifacts in this release are signed by Remko Popma (6601 E5C0 8DCC BB96).
Table of Contents
New and Noteworthy
fallbackValue=Option.NULL_VALUE
did not work forCollection
or array options.isJansiConsoleInstalled
performance issue.paramLabel
string auto-generated from Kotlininternal
methods which have mangled names with embedded "$".Fixed issues
fallbackValue=Option.NULL_VALUE
did not work forCollection
or array options. Thanks to Jiri Daněk for raising this.isJansiConsoleInstalled
performance issue. Thanks to ChrisTrenkamp for the pull request.paramLabel
string auto-generated from Kotlininternal
methods which have mangled names with embedded "$". Thanks to Ken Yee for raising this.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v4.7.1
The picocli community is pleased to announce picocli 4.7.1.
This release includes bugfixes and enhancements.
This is the eightieth public release.
Picocli follows semantic versioning.
Artifacts in this release are signed by Remko Popma (6601 E5C0 8DCC BB96).
Table of Contents
New and Noteworthy
Fixed issues
picocli-groovy
module should not declareorg.codehaus.groovy:groovy-all
as dependency. Thanks to Mattias Andersson and Michael Kutz for raising this, and to Paul King for the analysis.CommandLine.Interpreter.applyValueToSingleValuedField
. Thanks to Jiehong for the pull request.StringIndexOutOfBoundsException
in usage help when command has too many (and long) aliases. Thanks to Martin for raising this.fallbackValue
to vararg multi-value options, not just single-value options. Thanks to Andreas Sewe for raising this.ManPageGeneratorTest
. Thanks to Mike Snowden for the pull request.System.exit
usage. Thanks to Tadaya Tsuyukubo for the pull request.picocli-codegen/README.adoc
. Thanks to Seyyed Emad Razavi for the pull request.picocli-annotation-processing-tests
failures on Java 16+: rewrite tests to avoid Googlecompiler-test
API that internally usescom.sun.tools.javac.util.Context
.Deprecations
No features were deprecated in this release.
Potential breaking changes
This release has no breaking changes.
v4.7.0
The picocli community is pleased to announce picocli 4.7.0.
This release includes bugfixes and enhancements.
A potentially breaking change is that the parser now treats
char[]
as a single-value type.From this release, applications can programmatically set the trace level, and use tracing in custom components.
Applications can improve startup time by setting system property
picocli.disable.closures
totrue
to disable support for closures in annotations.Many more fixes and enhancements, see the sections below for more details.
This is the seventy-ninth public release.
Picocli follows semantic versioning.
Artifacts in this release are signed by Remko Popma (6601 E5C0 8DCC BB96).
Table of Contents
New and Noteworthy
Tracing API
From picocli 4.7.0, applications can programmatically set the trace level, and use tracing in custom components.
In addition to setting system property
picocli.trace
, applications can now change the trace level via theTracer::setLevel
method. For example:The new public method
CommandLine.tracer()
returns the singletonTracer
object that is used internally by picocli, and can also be used by custom component implementations to do tracing. For example:Enable Consuming Option Names or Subcommands
By default, options that take a parameter do not consume values that match a subcommand name or an option name.
This release introduces two parser configuration options to change this behaviour:
CommandLine::setAllowOptionsAsOptionParameters
allows options to consume option namesCommandLine::setAllowSubcommandsAsOptionParameters
allows options to consume subcommand namesWhen set to
true
, all options in the command (options that take a parameter) can consume values that match option names or subcommand names.This means that any option will consume the maximum number of arguments possible for its arity.
USE WITH CAUTION!
If an option is defined as
arity = "*"
, this option will consume all remaining command line arguments following this option (until the End-of-options delimiter) as parameters of this option.Unsorted Synopsis
By default, the synopsis displays options in alphabetical order.
Picocli 4.7.0 introduces a
sortSynopsis = false
attribute to let the synopsis display options in the order they are declared in your class, or sorted by theirorder
attribute.Parser change for
char[]
optionsPrior to 4.7, the picocli parser treated options and positional parameters with type
char[]
as array (multi-value) options, except for interactive options. However, it is more intuitive to treat allchar[]
options as single-value options, similar toString
options.For end users, this means that existing applications that use non-interactive
char[]
options will no longer allow multiple characters to be specified separately on the command line. That is, input like-c A -c B -c C
will be rejected and the user needs to specify-c ABC
instead.Applications that want to preserve the previous behaviour will need to change their code to use
java.lang.Character[]
instead ofchar[]
.Fixed issues
picocli-codegen
artifact is now an explicitly declared named JPMS module with amodule-info.class
.picocli-groovy
artifact is now an explicitly declared named JPMS module with amodule-info.class
.picocli-shell-jline2
is now an explicitly declared named JPMS module with amodule-info.class
.picocli-shell-jline3
is now an explicitly declared named JPMS module with amodule-info.class
.picocli-spring-boot-starter
is now an explicitly declared named JPMS module with amodule-info.class
. NOTE: its module name changed toinfo.picocli.spring.boot
frominfo.picocli.spring
.picocli-spring-boot-starter
JPMS module name toinfo.picocli.spring.boot
frominfo.picocli.spring
.requires static java.sql
to picoclimodule-info
.TraceLevel
. Thanks to ekinano for raising this.requiredOptionMarker
should not be displayed onArgGroup
options. Thanks to Ahmed El Khalifa for the pull request.PicocliSpringFactory
to allow custom fallbackIFactory
. Thanks to Andrew Holland for raising this.OptionSpec.getValue()
and addIScoped
internal API. Thanks to Ruud Senden for the discussion and the pull request.order
.setUsageHelpLongOptionsMaxWidth
method no longer throws an exception when an invalid value is specified; instead, the value is ignored and an INFO-level trace message is logged. Thanks to Fabio for the pull request.char[]
as single-value types (Potentially breaking change). Thanks to Lukáš Petrovický for the pull request with the test to verify the solution.picocli.disable.closures
totrue
to disable support for closures in annotations. Thanks to patric-r for raising this.order
if specified. Thanks to Simon for raising this.order
(if specified). Thanks to Enderaoe for the pull request with unit tests.Help
command description. Thanks to Michael L Heuer for the pull request. Thanks to Garret Wilson for raising this.Option
andParameters
annotations. Thanks to xehpuk for raising this, and thanks to Adam McElwee for the pull request.multiplicity="0"
are now disallowed at construction time and no longer throw aStackOverflowError
while parsing. Thanks to ARNOLD Somogyi for raising this.getCJKAdjustedLength()
no longer miscalculates for supplementary code points. Thanks to gwalbran for the pull request.posixClusteredShortOptionsAllowed
is set to false.@Command
-annotated method parameters are assigned incorrect indices when contained in a@Command
class that is added as a subcommand to another@Command
class which hasscope = CommandLine.ScopeType.INHERIT
. Thanks to Onedy for raising this.CommandSpec
. Thanks to Philippe Charles for raising this.null
asdefaultValue
andfallbackValue
.main
frommaster
. Thanks to Andreas Deininger for the pull request.picocli-codegen
README
. Thanks to Andreas Deininger for the pull request.picocli-examples
in the user manual. Thanks to Markus Elfring for raising this.@Command
-annotated method withint
return value in user manual. Thanks to SinaMobasheri for raising this.picocli-groovy
module now declaresgroovy-all
as dependency.slf4j
frompicocli-spring-boot-starter
.2541b12
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 these updates again.
This PR was generated by Mend Renovate. View the repository job log.