picocli v4.7.0-fixes Release Notes

    • [#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.
    • โœ… [#648][#1846] Enhancement: Treat char[] as single-value types (Potentially breaking change). Thanks to Lukรกลก Petrovickรฝ for the pull request for the test.
    • 0๏ธโƒฃ [#1571] Enhancement: Variables in values from the default value provider should be interpolated. Thanks to Bas Passon for raising this.
    • [#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.
    • [#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.
    • [#1834][#1838] 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.
    • โšก๏ธ [#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.
    • 0๏ธโƒฃ [#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 2541b1294d2704b0964813337f33b291d3f8596b
    • [#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.4.1
    • [#1806] DEP: Bump actions/setup-java from 3.4.1 to 3.5.0
    • [#1826] DEP: Bump actions/setup-java from 3.5.0 to 3.5.1
    • [#1624] DEP: Bump actions/upload-artifact from 2.3.1 to 3
    • [#1687] DEP: Bump actions/upload-artifact from 3.0.0 to 3.1.0
    • [#1585] DEP: Bump github/codeql-action from 1.0.30 to 1.1.0
    • [#1593] DEP: Bump github/codeql-action from 1.1.0 to 1.1.2
    • [#1601] DEP: Bump github/codeql-action from 1.1.2 to 1.1.3
    • [#1631] DEP: Bump github/codeql-action from 1.1.3 to 1.1.4
    • [#1636] DEP: Bump github/codeql-action from 1.1.4 to 1.1.5
    • [#1643] DEP: Bump github/codeql-action from 1.1.5 to 2.1.6
    • [#1652] DEP: Bump github/codeql-action from 2.1.6 to 2.1.7
    • [#1654] DEP: Bump github/codeql-action from 2.1.7 to 2.1.8
    • [#1669] DEP: Bump github/codeql-action from 2.1.8 to 2.1.9
    • [#1676] DEP: Bump github/codeql-action from 2.1.9 to 2.1.10
    • [#1682] DEP: Bump github/codeql-action from 2.1.10 to 2.1.11
    • [#1700] DEP: Bump github/codeql-action from 2.1.11 to 2.1.12
    • [#1720] DEP: Bump github/codeql-action from 2.1.12 to 2.1.14
    • [#1728] DEP: Bump github/codeql-action from 2.1.14 to 2.1.15
    • [#1739] DEP: Bump github/codeql-action from 2.1.15 to 2.1.16
    • [#1781] DEP: Bump github/codeql-action from 2.1.18 to 2.1.1
    • [#1786] DEP: Bump github/codeql-action from 2.1.18 to 2.1.20
    • [#1792] DEP: Bump github/codeql-action from 2.1.20 to 2.1.21
    • [#1797] DEP: Bump github/codeql-action from 2.1.21 to 2.1.22
    • [#1817] DEP: Bump github/codeql-action from 2.1.22 to 2.1.23
    • [#1820] DEP: Bump github/codeql-action from 2.1.22 to 2.1.24
    • [#1823] DEP: Bump github/codeql-action from 2.1.24 to 2.1.25
    • [#1831] DEP: Bump github/codeql-action from 2.1.25 to 2.1.26
    • [#1842] DEP: Bump github/codeql-action from 2.1.26 to 2.1.27
    • ๐Ÿ— [#1782] DEP: Bump gradle/gradle-build-action from c6619898ec857b418d6436d3efe8a0becf74eb9e to 2.2.4
    • ๐Ÿ— [#1787] DEP: Bump gradle/gradle-build-action from c6619898ec857b418d6436d3efe8a0becf74eb9e to 2.2.5
    • ๐Ÿ— [#1825] DEP: Bump gradle/gradle-build-action from 2.3.0 to 2.3.1
    • ๐Ÿ— [#1832] DEP: Bump gradle/gradle-build-action from 2.3.1 to 2.3.2
    • [#1586] DEP: Bump ossf/scorecard-action from 1.0.2 to 1.0.3
    • [#1594] DEP: Bump ossf/scorecard-action from 1.0.3 to 1.0.4
    • [#1691] DEP: Bump ossf/scorecard-action from 1.0.4 to 1.1.0
    • [#1699] DEP: Bump ossf/scorecard-action from 1.1.0 to 1.1.1
    • [#1805] DEP: Bump ossf/scorecard-action from 1.1.2 to 2.0.0
    • [#1813] DEP: Bump ossf/scorecard-action from 2.0.0 to 2.0.2
    • [#1816] DEP: Bump ossf/scorecard-action from 2.0.0 to 2.0.3
    • [#1828] DEP: Bump ossf/scorecard-action from 2.0.3 to 2.0.4
    • ๐Ÿ”’ [#1583] DEP: Bump step-security/harden-runner from 1.3.0 to 1.4.0
    • ๐Ÿ”’ [#1639] DEP: Bump step-security/harden-runner from 1.4.0 to 1.4.1
    • ๐Ÿ”’ [#1666] DEP: Bump step-security/harden-runner from 1.4.1 to 1.4.2
    • ๐Ÿ”’ [#1730] DEP: Bump step-security/harden-runner from 1.4.3 to 1.4.4
    • ๐Ÿ”’ [#1833] DEP: Bump step-security/harden-runner from 1.4.5 to 1.5.0
    • [#1580] DEP: Bump asciidoctor to 2.5.3 from 2.5.2. Thanks to Andreas Deininger for the pull request.
    • [#1688] DEP: Bump asciidoctorj-pdf from 1.6.2 to 2.0.0
    • [#1690] DEP: Bump asciidoctorj-pdf from 2.0.0 to 2.0.2
    • [#1692] DEP: Bump asciidoctorj-pdf from 2.0.2 to 2.0.3
    • [#1694] DEP: Bump asciidoctorj-pdf from 2.0.3 to 2.0.4
    • [#1695] DEP: Bump asciidoctorj-pdf from 2.0.4 to 2.0.6
    • [#1715] DEP: Bump asciidoctorj-pdf from 2.0.6 to 2.0.8
    • [#1722] DEP: Bump asciidoctorj-pdf from 2.0.8 to 2.1.2
    • [#1785] DEP: Bump asciidoctorj-pdf from 2.1.6 to 2.3.0
    • [#1618] DEP: Bump biz.aQute.bnd.gradle from 6.1.0 to 6.2.0
    • [#1698] DEP: Bump biz.aQute.bnd.gradle from 6.2.0 to 6.3.0
    • [#1703] DEP: Bump biz.aQute.bnd.gradle from 6.3.0 to 6.3.1
    • โœ… [#1582] DEP: Bump groovy-all from 2.4.10 to 2.5.15 // latest version of Groovy that supports Java 5
    • [#1589] DEP: Bump hamcrest-core from 1.3 to 2.2
    • [#1621] DEP: Bump hibernate-validator from 7.0.2.Final to 7.0.3.Final
    • [#1633][#1635] DEP: Bump hibernate-validator from 7.0.3.Final to 7.0.4.Final
    • [#1821] DEP: Bump hibernate-validator from 7.0.5.Final to 8.0.0.Final
    • [#1812] DEP: Bump hibernate-validator from 7.0.5.Final to 8.0.0.Final
    • [#1622] DEP: Bump hibernate-validator-annotation-processor from 7.0.2.Final to 7.0.3.Final
    • [#1634] DEP: Bump hibernate-validator-annotation-processor from 7.0.3.Final to 7.0.4.Final
    • [#1587] DEP: Bump ivy from 2.4.0 to 2.5.0
    • [#1584] DEP: Bump jansi from 2.1.0 to 2.4.0
    • [#1573] DEP: Bump JLine3 version to 3.21.0 from 3.19.0.
    • [#1590] DEP: Bump junit-dep from 4.11 to 4.11.20120805.1225
    • [#1591] DEP: Bump junit from 4.12 to 4.13.2
    • ๐Ÿ”Œ [#1649] DEP: Bump kotlin-gradle-plugin from 1.6.10 to 1.6.20
    • ๐Ÿ”Œ [#1829] DEP: Bump kotlin-gradle-plugin from 1.7.10 to 1.7.20
    • [#1648] DEP: Bump kotlin-script-runtime from 1.6.10 to 1.6.20
    • [#1830] DEP: Bump kotlin-script-runtime from 1.7.10 to 1.7.20
    • [#1617] DEP: Bump log4j2Version from 2.17.1 to 2.17.2
    • [#1729] DEP: Bump log4j2Version from 2.17.2 to 2.18.0
    • [#1819] DEP: Bump log4j2Version from 2.18.0 to 2.19.0
    • [#1822] DEP: Bump scala-library from 2.13.8 to 2.13.9
    • [#1843] DEP: Bump scala-library from 2.13.9 to 2.13.10
    • [#1576] DEP: Bump Spring Boot version from 2.5.6 to 2.6.3
    • [#1606] DEP: Bump Spring Boot version from 2.6.3 to 2.6.4
    • [#1641] DEP: Bump Spring Boot version from 2.6.4 to 2.6.5
    • [#1645] DEP: Bump Spring Boot version from 2.6.5 to 2.6.6
    • [#1684] DEP: Bump Spring Boot version from 2.6.7 to 2.6.8
    • [#1686] DEP: Bump Spring Boot version from 2.6.8 to 2.7.0
    • [#1719] DEP: Bump Spring Boot version from 2.7.0 to 2.7.1
    • [#1747] DEP: Bump Spring Boot version from 2.7.1 to 2.7.2
    • [#1780] DEP: Bump spring Boot Version from 2.7.2 to 2.7.3
    • [#1824] DEP: Bump springBootVersion from 2.7.3 to 2.7.4
    • [#1588] DEP: Bump system-rules from 1.17.1 to 1.19.0