Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update picocli to v4.7.6 #568

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Update picocli to v4.7.6 #568

wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 11, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
info.picocli:picocli-codegen (source) 4.6.3 -> 4.7.6 age adoption passing confidence
info.picocli:picocli (source) 4.6.3 -> 4.7.6 age adoption passing confidence

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

  • [#​2102][#​2107] Enhancement: PropertiesDefaultProvider should try to load properties from classpath (last). Thanks to Lumír Návrat for the pull request.
  • [#​2202] Enhancement: Change log level from WARN to INFO when bean not found in ApplicationContext. Thanks to Desmond Kirrane for raising this.
  • [#​2248] Enhancement: Don't show hidden commands in JLine3 command description. Thanks to Reinhard Handler for the pull request.
  • [#​2170] Enhancement: Use ... vararg instead of array parameter to match overridden method signature. Thanks to Michael Vorburger for the pull request.
  • [#​2058] Bugfix: defaultValue should not be applied in addition to user-specified value for options with a custom IParameterConsumer. Thanks to Staffan Arvidsson McShane for raising this.
  • [#​2148] Bugfix: Fix NPE in jline3 Example.jar as ConfigurationPath cannot be null anymore. Thanks to llzen44 for the pull request.
  • [#​2232] Bugfix: fix bug for Optional<T> arguments with initial value. Thanks to hq6 for raising this.
  • [#​2149] Bugfix: @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.
  • [#​2270] Bugfix: Custom type converter for primitive boolean options should not be ignored. Thanks to Sven Kammerer for raising this.
  • [#​2234] BUILD: fix errorprone TruthSelfEquals warnings
  • [#​2172] BUILD: Fix broken build. Thanks to Michael Vorburger for the pull request.
  • [#​2174] BUILD: Fix .gitattributes related CR/LF problems. Thanks to Michael Vorburger for the pull request.
  • [#​2054][#​2176] BUILD: Add Error Prone. Thanks to Michael Vorburger for the pull request.
  • [#​2053] [#​2175] CLEAN: Remove unused extra format arguments. Thanks to Michael Vorburger for the pull request.
  • [#​2171] DOC: Fix a few typos in CommandLine's JavaDoc. Thanks to Michael Vorburger for the pull request.
  • [#​2217] DOC: Clarify documentation for negatable options. Thanks to dbear496 for raising this.
  • [#​2228] DOC: Clarify that ParseResult passed to IExecutionExceptionHandler is the top-level parse result, not the parse result of the subcommand that failed. Thanks to Abel Salgado Romero for raising this.
  • [#​2047] DEP: Bump andymckay/append-gist-action from 1fbfbbc to 6e8d644
  • [#​2091] DEP: Bump actions/checkout from 3.5.2 to 3.6.0
  • [#​2108] DEP: Bump actions/checkout from 3.6.0 to 4.0.0
  • [#​2120] DEP: Bump actions/checkout from 4.0.0 to 4.1.0
  • [#​2225] DEP: Bump actions/checkout from 4.1.0 to 4.1.2
  • [#​2272] DEP: Bump actions/checkout from 4.1.2 to 4.1.4
  • [#​2098] DEP: Bump actions/setup-java from 3.11.0 to 3.12.0
  • [#​2158] DEP: Bump actions/setup-java from 3.12.0 to 4.0.0
  • [#​2236] DEP: Bump actions/setup-java from 4.0.0 to 4.2.1.
  • [#​2111] DEP: Bump actions/upload-artifact from 3.1.2 to 3.1.3
  • [#​2204] DEP: Bump actions/upload-artifact from 3.1.3 to 4.3.1
  • [#​2273] DEP: Bump actions/upload-artifact from 4.3.1 to 4.3.3
  • [#​2227] DEP: Bump com.google.errorprone:error_prone_core from 2.23.0 to 2.26.1
  • [#​2271] DEP: Bump com.google.errorprone:error_prone_core from 2.26.1 to 2.27.1
  • [#​2237] DEP: Bump emibcn/badge-action from 2.0.2 to 2.0.3.
  • [#​2099] DEP: Bump gradle/gradle-build-action from 2.4.2 to 2.8.0
  • [#​2165] DEP: Bump gradle/gradle-build-action from 2.8.0 to 2.11.0
  • [#​2206] DEP: Bump gradle/gradle-build-action from 2.11.1 to 3.1.0
  • [#​2246] DEP: Bump gradle/gradle-build-action from 3.1.0 to 3.3.0.
  • [#​2096] DEP: Bump gradle/wrapper-validation-action from 1.0.6 to 1.1.0
  • [#​2247] DEP: Bump gradle/wrapper-validation-action from 1.1.0 to 3.3.0.
  • [#​2263] DEP: Bump gradle/wrapper-validation-action from 3.3.0 to 3.3.2
  • [#​2085] DEP: Bump github/codeql-action from 2.3.5 to 2.21.4
  • [#​2114] DEP: Bump github/codeql-action from 2.21.4 to 2.21.7
  • [#​2167] DEP: Bump github/codeql-action from 2.21.7 to 3.22.11
  • [#​2230] DEP: Bump github/codeql-action from 3.22.11 to 3.24.8
  • [#​2235] DEP: Bump github/codeql-action from 3.24.8 to 3.24.10.
  • [#​2262] DEP: Bump github/codeql-action from 3.24.10 to 3.25.3
  • [#​2093] DEP: Bump junit5Version from 5.9.3 to 5.10.0
  • [#​2180] DEP: Bump junit5Version from 5.10.0 to 5.10.1
  • [#​2240] DEP: Bump junit5Version from 5.10.1 to 5.10.2.
  • [#​2140] DEP: Bump log4j2Version from 2.20.0 to 2.21.1
  • [#​2178] DEP: Bump log4j2Version from 2.21.1 to 2.22.0
  • [#​2252] DEP: Bump log4j2Version from 2.22.0 to 2.23.1
  • [#​2095] DEP: Bump org.apache.ivy:ivy from 2.5.1 to 2.5.2
  • [#​2094] DEP: Bump org.asciidoctor:asciidoctorj-pdf from 2.3.7 to 2.3.9
  • [#​2229] DEP: Bump org.asciidoctor:asciidoctorj-pdf from 2.3.9 to 2.3.15
  • [#​2244] DEP: Bump org.asciidoctor:asciidoctor-gradle-jvm from 3.3.2 to 4.0.2.
  • [#​2135] DEP: Bump org.fusesource.jansi:jansi from 2.4.0 to 2.4.1
  • [#​2089] DEP: Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.8.21 to 1.9.10
  • [#​2154] DEP: Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.10 to 1.9.21
  • [#​2090] DEP: Bump org.jetbrains.kotlin:kotlin-script-runtime from 1.8.21 to 1.9.10
  • [#​2221] DEP: Bump org.jetbrains.kotlin:kotlin-script-runtime from 1.9.10 to 1.9.23
  • [#​2243] DEP: Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.21 to 1.9.23.
  • [#​2146] DEP: Bump org.jline:jline from 3.23.0 to 3.24.1
  • [#​2241] DEP: Bump org.jline:jline from 3.24.1 to 3.25.1.
  • [#​2261] DEP: Bump org.jline:jline from 3.25.1 to 3.26.1
  • [#​2049] DEP: Bump org.hibernate.validator:hibernate-validator from 8.0.0.Final to 8.0.1.Final
  • [#​2037] DEP: Bump org.scala-lang:scala-library from 2.13.10 to 2.13.11
  • [#​2112] DEP: Bump org.scala-lang:scala-library from 2.13.11 to 2.13.12
  • [#​2242] DEP: Bump org.scala-lang:scala-library from 2.13.12 to 2.13.13.
  • [#​2267] DEP: Bump org.scala-lang:scala-library from 2.13.13 to 2.13.14
  • [#​2052] DEP: Bump ossf/scorecard-action from 2.1.3 to 2.2.0
  • [#​2183] DEP: Bump ossf/scorecard-action from 2.2.0 to 2.3.1
  • [#​2082] DEP: Bump step-security/harden-runner from 2.4.0 to 2.5.1
  • [#​2152] DEP: Bump step-security/harden-runner from 2.5.1 to 2.6.1
  • [#​2268] DEP: Bump step-security/harden-runner from 2.6.1 to 2.7.1
  • DEP: Bump SpringBoot from 2.7.1 to 2.7.2 (for Java versions prior to 17)
  • [#​2255] DEP: Bump andymckay/append-gist-action from 0.2 to 0.3

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

  • [#​2083][#​2084] Enhancement: Java 22 update: improve logic for detecting if the output stream is connected to a terminal. Thanks to Liam Miller-Cushon for the pull request.
  • [#​2087] Enhancement: Mask parameters in trace log when echo=false for interactive options and positional parameters. Thanks to szzsolt for raising this.
  • [#​2060] Bugfix: Fix positional parameters bug with late-resolved arity variable. Thanks to daisukeoto for raising this.
  • [#​2074][#​2075] Bugfix: Don't generate auto-complete for hidden attributes in picocli.shell.jline3.PicoCommand. Thanks to clebertsuconic for the pull request.
  • [#​2059] Bugfix: ArgGroup with exclusive=false and multiplicity=1 should require at least one option; fix regression and refine solution introduced in [#​1848][#​2030]. Thanks to Utkarsh Mittal for raising this.
  • [#​2080] DOC: Improve GraalVM documentation: add graalvm-native-image-plugin. Thanks to Bhavik Patel for the pull request.
  • [#​2045] DOC: Commit html files with LF line-endings. Thanks to Fridrich Strba 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

  • [#​2028][#​2031] API: Add setter for name in picocli.shell.jline3.PicocliCommands. Thanks to Irina Leontyuk for raising this.
  • [#​2026][#​2027] Enhancement: Improved feedback on mistyped subcommands. Thanks to David Pond for the pull request.
  • [#​2029][#​2034] Enhancement: prevent java.nio.charset.UnsupportedCharsetException: cp0 on windows, and fall back to the default charset if the charset provided by System property sun.stdout.encoding is invalid. Thanks to
    Bartosz Spyrko-Smietanko
    for the pull request.
  • [#​2035][#​2036] Bugfix: Option "mapFallbackValue" ignored when inherited to subcommand. Thanks to Dan Ziemba for the pull request.
  • [#​1848][#​2030] Bugfix: fix issue with required options in ArgGroup becoming optional when combined with DefaultValueProvider. Thanks to Ruud Senden and Mike Snowden for the pull request.
  • [#​2020] DEP: Bump step-security/harden-runner from 2.3.0 to 2.4.0
  • [#​2033] DEP: Bump github/codeql-action from 2.2.12 to 2.3.5
  • [#​2015] DEP: Bump junit5Version from 5.9.2 to 5.9.3
  • [#​2014] DEP: Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.8.20 to 1.8.21
  • [#​2013] DEP: Bump org.jetbrains.kotlin:kotlin-script-runtime from 1.8.20 to 1.8.21
  • [#​2008] DEP: Bump springBootVersion from 2.7.10 to 2.7.11
  • [#​2007] DEP: Bump org.asciidoctor:asciidoctorj-pdf from 2.3.6 to 2.3.7

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 to CommandLine.Option.NULL_VALUE, may see a NullPointerException 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

  • [#​1998] Bugfix: ParameterException: NullPointerException: null while processing argument at or before arg[0]. Thanks to Jiri Daněk for raising this.
  • [#​1957] DOC: Fixed broken links in the javadoc. Thanks to Andreas Deininger for raising this.
  • [#​2002] DEP: Bump actions/checkout from 3.5.0 to 3.5.2
  • [#​2005] DEP: Bump gradle/gradle-build-action from 2.4.0 to 2.4.2
  • [#​2003] DEP: Bump github/codeql-action from 2.2.11 to 2.2.12
  • [#​1997] DEP: Bump org.asciidoctor:asciidoctorj-pdf from 2.3.4 to 2.3.6

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

  • Bugfix: fallbackValue=Option.NULL_VALUE did not work for Collection or array options.
  • Fixed isJansiConsoleInstalled performance issue.
  • Kotlin enhancement: improved paramLabel string auto-generated from Kotlin internal methods which have mangled names with embedded "$".
  • Various documentation fixes.

Fixed issues

  • [#​1959] API: Add ability to enable loading resource bundles in annotation processor for tests.
  • [#​1993] Bugfix: fallbackValue=Option.NULL_VALUE did not work for Collection or array options. Thanks to Jiri Daněk for raising this.
  • [#​1975][#​1976] Enhancement: Fixed isJansiConsoleInstalled performance issue. Thanks to ChrisTrenkamp for the pull request.
  • [#​1932] Enhancement: Move System-Rules tests to Java 5 test module; move System-Lambda tests to Java 8+ test module. Facilitate testing with recent JRE's.
  • [#​1984] Enhancement (Kotlin): improve paramLabel string auto-generated from Kotlin internal methods which have mangled names with embedded "$". Thanks to Ken Yee for raising this.
  • [#​1945] DOC: Code sample: add Java version. Thanks to Andreas Deininger for the pull request.
  • [#​1956] Doc: Fix broken link in user manual. Thanks to Andreas Deininger for the pull request.
  • [#​1955] DEP: Bump asciidoctorj from 2.5.5 to 2.5.7. Thanks to Andreas Deininger for the pull request.
  • [#​1980] DEP: Bump actions/checkout from 3.3.0 to 3.5.0
  • [#​1952] DEP: Bump actions/setup-java from 3.9.0 to 3.10.0
  • [#​1985] DEP: Bump actions/setup-java from 3.10.0 to 3.11.0
  • [#​1941] DEP: Bump emibcn/badge-action from 1.2.4 to 2.0.2
  • [#​1942] DEP: Bump github/codeql-action from 2.1.39 to 2.2.1
  • [#​1953] DEP: Bump github/codeql-action from 2.2.1 to 2.2.3
  • [#​1958] DEP: Bump github/codeql-action from 2.2.3 to 2.2.4
  • [#​1979] DEP: Bump github/codeql-action from 2.2.4 to 2.2.8
  • [#​1995] DEP: Bump github/codeql-action from 2.2.8 to 2.2.11
  • [#​1961] DEP: Bump gradle/gradle-build-action from 2.3.3 to 2.4.0
  • [#​1960] DEP: Bump gradle/wrapper-validation-action from 1.0.5 to 1.0.6
  • [#​1962] DEP: Bump log4j2Version from 2.19.0 to 2.20.0
  • [#​1947] DEP: Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.7.20 to 1.8.10
  • [#​1989] DEP: Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.8.10 to 1.8.20
  • [#​1948] DEP: Bump org.jetbrains.kotlin:kotlin-script-runtime from 1.7.20 to 1.8.10
  • [#​1988] DEP: Bump org.jetbrains.kotlin:kotlin-script-runtime from 1.8.10 to 1.8.20
  • [#​1968] DEP: Bump org.jline:jline from 3.22.0 to 3.23.0
  • [#​1990] DEP: Bump ossf/scorecard-action from 2.1.2 to 2.1.3
  • [#​1964] DEP: Bump springBootVersion from 2.7.8 to 2.7.9
  • [#​1978] DEP: Bump springBootVersion from 2.7.9 to 2.7.10
  • [#​1963] DEP: Bump step-security/harden-runner from 2.1.0 to 2.2.0
  • [#​1970] DEP: Bump step-security/harden-runner from 2.2.0 to 2.2.1
  • [#​1992] DEP: Bump step-security/harden-runner from 2.2.1 to 2.3.0

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

  • [#​1874][#​1885][#​1933] Bugfix: The picocli-groovy module should not declare org.codehaus.groovy:groovy-all as dependency. Thanks to Mattias Andersson and Michael Kutz for raising this, and to Paul King for the analysis.
  • [#​1886][#​1896] Bugfix: AsciiDoc generator now correctly outputs options even if all options are in ArgGroups. Thanks to Ruud Senden for the discussion and the pull request.
  • [#​1878][#​1876] Bugfix: Annotation processor now avoids loading resource bundles at compile time. Thanks to Ruud Senden for the discussion and the pull request.
  • [#​1911] Avoid using boxed boolean in CommandLine.Interpreter.applyValueToSingleValuedField. Thanks to Jiehong for the pull request.
  • [#​1870] Bugfix: StringIndexOutOfBoundsException in usage help when command has too many (and long) aliases. Thanks to Martin for raising this.
  • [#​1904] Bugfix: Apply fallbackValue to vararg multi-value options, not just single-value options. Thanks to Andreas Sewe for raising this.
  • [#​1930] Bugfix: Ensure tests pass in environments for Java 5-18.
  • [#​1940] Bugfix: fix 3 failing tests in ManPageGeneratorTest. Thanks to Mike Snowden for the pull request.
  • [#​1881] DOC: Many documentation improvements. Thanks to Andreas Deininger for the pull request.
  • [#​1855][#​1857] DOC: Add new user manual section called Rare Use Cases detailing System.exit usage. Thanks to Tadaya Tsuyukubo for the pull request.
  • [#​1880] DOC: Improve documentation for negatable options that are true by default. Thanks to Sebastian Hoß for raising this.
  • [#​1815] DOC: Improve user manual section for non-validating ArgGroups. Thanks for Paul Harris for raising this.
  • [#​1908] DOC: Update the user manual GraalVM section to use the new official native-maven-plugin. Thanks to tison for the pull request.
  • [#​1924] DOC: Update picocli-codegen/README.adoc. Thanks to Seyyed Emad Razavi for the pull request.
  • [#​1910][#​1917] DOC: Fix broken link to Zero Bug Commitment. Thanks to Jiehong for raising this and thanks to Andreas Deininger for the pull request.
  • [#​1915] DOC: Improve default provider examples. Thanks to David for raising this.
  • [#​1918][#​1920] DOC: Removed unused Travis CI badge and associated broken link from README. Thanks to Andreas Deininger for raising this and the pull request.
  • [#​706] DOC: Add GitHub badge with test count to README.
  • [#​1939] BUILD: Fix picocli-annotation-processing-tests failures on Java 16+: rewrite tests to avoid Google compiler-test API that internally uses com.sun.tools.javac.util.Context.
  • [#​1887] DEP: Bump biz.aQute.bnd.gradle from 6.3.1 to 6.4.0
  • [#​1865] DEP: Bump ivy from 2.5.0 to 2.5.1
  • [#​1931] DEP: Bump springBootVersion from 2.7.5 to 3.0.2
  • [#​1929] DEP: Bump github/codeql-action from 2.1.29 to 2.1.39
  • [#​1926] DEP: Bump step-security/harden-runner from 1.5.0 to 2.1.0
  • [#​1914] DEP: Bump actions/checkout from 3.1.0 to 3.3.0
  • [#​1897] DEP: Bump actions/setup-java from 3.6.0 to 3.9.0
  • [#​1902] DEP: Bump ossf/scorecard-action from 2.0.6 to 2.1.2
  • [#​1938] DEP: Bump actions/upload-artifact from 3.1.1 to 3.1.2
  • [#​1937] DEP: Bump asciidoctorj-pdf from 2.3.3 to 2.3.4
  • [#​1936] DEP: Bump jline from 3.21.0 to 3.22.0
  • [#​1935] DEP: Bump compile-testing from 0.19 to 0.21.0

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 to true 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 the Tracer::setLevel method. For example:

CommandLine.tracer().setLevel(CommandLine.TraceLevel.INFO);

The new public method CommandLine.tracer() returns the singleton Tracer object that is used internally by picocli, and can also be used by custom component implementations to do tracing. For example:

class MyIntConverter implements ITypeConverter<Integer> {
    public Integer convert(String value) {
        try {
            return Integer.parseInt(value);
        } catch (NumberFormatException ex) {
            CommandLine.tracer().info(
                    "Could not convert %s to Integer, returning default value -1", value);
            return -1;
        }
    }
}
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 names
  • CommandLine::setAllowSubcommandsAsOptionParameters allows options to consume subcommand names

When 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 their order attribute.

@&#8203;Command(sortSynopsis = false)
Parser change for char[] options

Prior 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 all char[] options as single-value options, similar to String 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 of char[].

Fixed issues

  • [#​1599] API: The picocli-codegen artifact is now an explicitly declared named JPMS module with a module-info.class.
  • [#​1611] API: The picocli-groovy artifact is now an explicitly declared named JPMS module with a module-info.class.
  • [#​1610] API: The picocli-shell-jline2 is now an explicitly declared named JPMS module with a module-info.class.
  • [#​1609] API: The picocli-shell-jline3 is now an explicitly declared named JPMS module with a module-info.class.
  • [#​1608] API: The picocli-spring-boot-starter is now an explicitly declared named JPMS module with a module-info.class. NOTE: its module name changed to info.picocli.spring.boot from info.picocli.spring.
  • [#​1614] API: Change picocli-spring-boot-starter JPMS module name to info.picocli.spring.boot from info.picocli.spring.
  • [#​1600] API: Add requires static java.sql to picocli module-info.
  • [#​1471] API: Provide a programmatic way to configure Picocli's TraceLevel. Thanks to ekinano for raising this.
  • [#​1125] API: Add parser configuration to allow options to consume values that match subcommand names or option names.
  • [#​1396][#​1401] API: Support generic types in containers (e.g. List, Map). Thanks to Michał Górniewski for the pull request.
  • [#​1380][#​1505] API, bugfix: requiredOptionMarker should not be displayed on ArgGroup options. Thanks to Ahmed El Khalifa for the pull request.
  • [#​1563] API: Add constructor to PicocliSpringFactory to allow custom fallback IFactory. Thanks to Andrew Holland for raising this.
  • [#​1767][#​1802] API: avoid NPE on OptionSpec.getValue() and add IScoped internal API. Thanks to Ruud Senden for the discussion and the pull request.
  • [#​1574] API: Add annotation API to control whether synopsis should be sorted alphabetically or by explicit order.
  • [#​1708][#​1712][#​1723] API: The 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.
  • [#​648][#​1846] Enhancement: Treat char[] as single-value types (Potentially breaking change). Thanks to Lukáš Petrovický for the pull request with the test to verify the solution.
  • [#​1571] Enhancement: Variables in values from the default value provider should be interpolated. Thanks to Bas Passon for raising this.
  • [#​1773] Enhancement: Applications can improve startup time by setting system property picocli.disable.closures to true to disable support for closures in annotations. Thanks to patric-r for raising this.
  • [#​1408] Enhancement: Synopsis should respect order if specified. Thanks to Simon for raising this.
  • [#​964][#​1080] Enhancement: ArgGroup synopsis should respect order (if specified). Thanks to Enderaoe for the pull request with unit tests.
  • [#​1706][#​1710] Enhancement: Subcommands should get missing messages from parent command resource bundle. Thanks to Ruud Senden and Mike Snowden for the pull request.
  • [#​899][#​1578][#​1579] Enhancement: improve built-in Help command description. Thanks to Michael L Heuer for the pull request. Thanks to Garret Wilson for raising this.
  • [#​1713][#​1714] Enhancement: Support optional booleans in annotation processor. Thanks to Jan Waś for the pull request.
  • [#​1387][#​1711] Enhancement: Annotation processor should validate final primitive and String fields with Option and Parameters annotations. Thanks to xehpuk for raising this, and thanks to Adam McElwee for the pull request.
  • [#​1572] Enhancement: Remove redundant braces in ArgGroup synopsis.
  • [#​1602] Enhancement: Fix incorrect debug output for add/removeAlias.
  • [#​1603] Enhancement: Improve debug tracing information for help requests and command execution.
  • [#​1629] Enhancement: Omit empty braces in standard prompt for interactive options without description. Thanks to Andreas Deininger for raising this.
  • [#​1778] Enhancement: Add support for new Spring Boot auto configuration introduced in Spring Boot 2.7. Thanks to Andreas Asplund for the pull request.
  • [#​1836][#​1841] Enhancement: Command aliases on Mixin were not being applied. Thanks to Mike Snowden for the pull request and to Ruud Senden for raising this.
  • [#​1754][#​1759] Enhancement: Autocompletion now correctly handles completion candidates with spaces. Thanks to Juan Martín Sotuyo Dodero for the pull request.
  • [#​1834][#​1838] Bugfix: Incorrect synopsis for char[] options. Thanks to Ruud Senden and Mike Snowden for the pull request.
  • [#​1680] Bugfix: ArgGroups with multiplicity="0" are now disallowed at construction time and no longer throw a StackOverflowError while parsing. Thanks to ARNOLD Somogyi for raising this.
  • [#​1615][#​1616] Bugfix: getCJKAdjustedLength() no longer miscalculates for supplementary code points. Thanks to gwalbran for the pull request.
  • [#​1575] Bugfix: Synopsis should not cluster boolean options if posixClusteredShortOptionsAllowed is set to false.
  • [#​1642] Bugfix: Negatable options should negate explicit values. Thanks to Nat Burns for raising this.
  • [#​1696][#​1697] Bugfix: ManPageGenerator asciidoc output now correctly shows options in nested ArgGroups. Thanks to Ruud Senden for the pull request.
  • [#​1741] Bugfix: @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 has scope = CommandLine.ScopeType.INHERIT. Thanks to Onedy for raising this.
  • [#​1779] Bugfix: Custom factory should be used when creating CommandSpec. Thanks to Philippe Charles for raising this.
  • [#​1644][#​1863] Bugfix: autocompletion of directory names stopped working from picocli 4.6.3. Thanks to NewbieOrange for the pull request, and thanks to philgdn for raising this and verifying the solution.
  • [#​1807] BUILD: Optimize incremental builds and local build cache usage. Thanks to Jean André Gauthier for the pull request and Nelson Osacky for the review.
  • [#​1298] DOC: Publish all-in-one javadoc for all picocli modules.
  • [#​812] DOC: Document how to test a picocli spring-boot application.
  • [#​1596] DOC: fix javadoc typos and incorrect links.
  • [#​1597] DOC: Add examples to Execution Configuration section in user manual.
  • [#​1140] DOC: Add subsection Forcing Interactive Input to user manual Interactive Options section. Thanks to smalirizvi for raising this.
  • [#​967] DOC: User manual now shows how to configure null as defaultValue and fallbackValue.
  • [#​1625] DOC: Fix broken links after renaming default branch to main from master. Thanks to Andreas Deininger for the pull request.
  • [#​1628][#​1630] DOC: Fix broken link in picocli-codegen README. Thanks to Andreas Deininger for the pull request.
  • [#​1627] DOC: User guide, chapter 3.2.3. Forcing Interactive Input: code sample: add Kotlin version. Thanks to Andreas Deininger for the pull request.
  • [#​1650] DOC: User guide, Spring Boot section: add warning about dynamic proxies. Thanks to Ernst Plüss for raising this.
  • [#​1677] DOC: Many improvements and corrections to the user manual. Thanks to Björn Kautler for the pull request.
  • [#​1678] DOC: Change links from http to https, fix broken links. Thanks to Andreas Deininger for the pull request.
  • [#​1750] DOC: Clarify that GPL licensing NOTICE is for docs only.
  • [#​1788] DOC: add link to picocli-examples in the user manual. Thanks to Markus Elfring for raising this.
  • [#​1796] DOC: Fixing broken links and typos. Thanks to Andreas Deininger for the pull request.
  • [#​1798] DOC: update examples for jakarta.validation-api. Thanks to Roy for raising this.
  • [#​1803] DOC: show @Command-annotated method with int return value in user manual. Thanks to SinaMobasheri for raising this.
  • [#​1581] BUILD: Fix dependabot config.
  • [#​1613] DEP: The picocli-groovy module now declares groovy-all as dependency.
  • [#​1604] DEP: Remove dependency on slf4j from picocli-spring-boot-starter.
  • [#​1783] DEP: Update actions/checkout requirement to 2541b12
  • [#​1837] DEP: Bump actions/checkout from 3.0.2 to 3.1.0
  • [#​1607] DEP: Bump actions/setup-java from 2.5.0 to 3
  • [#​1646] DEP: Bump actions/setup-java from 3.0.0 to 3.1.0
  • [#​1655] DEP: Bump actions/setup-java from 3.1.0 to 3.1.1
  • [#​1667] DEP: Bump actions/setup-java from 3.1.1 to 3.2.0
  • [#​1674] DEP: Bump actions/setup-java from 3.2.0 to 3.3.0
  • [#​1717] DEP: Bump actions/setup-java from 3.3.0 to 3.4.0
  • [#​1736] DEP: Bump actions/setup-java from 3.4.0 to 3.

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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/picocli branch from da7e20c to d649ac6 Compare December 13, 2024 22:15
@gschueler gschueler added this to the 3.0 milestone Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant