picocli v4.7.0-fixes Release Notes
-
- [#1599] API: The
picocli-codegen
artifact is now an explicitly declared named JPMS module with amodule-info.class
. - [#1611] API: The
picocli-groovy
artifact is now an explicitly declared named JPMS module with amodule-info.class
. - [#1610] API: The
picocli-shell-jline2
is now an explicitly declared named JPMS module with amodule-info.class
. - [#1609] API: The
picocli-shell-jline3
is now an explicitly declared named JPMS module with amodule-info.class
. - [#1608] API: The
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
. - [#1614] API: Change
picocli-spring-boot-starter
JPMS module name toinfo.picocli.spring.boot
frominfo.picocli.spring
. - [#1600] API: Add
requires static java.sql
to picoclimodule-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 onArgGroup
options. Thanks to Ahmed El Khalifa for the pull request. - [#1563] API: Add constructor to
PicocliSpringFactory
to allow custom fallbackIFactory
. Thanks to Andrew Holland for raising this. - [#1767][#1802] API: avoid NPE on
OptionSpec.getValue()
and addIScoped
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
totrue
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
andParameters
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 aStackOverflowError
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 hasscope = 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
asdefaultValue
andfallbackValue
. - 0๏ธโฃ [#1625] DOC: Fix broken links after renaming default branch to
main
frommaster
. 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 withint
return value in user manual. Thanks to SinaMobasheri for raising this. - ๐ [#1581] BUILD: Fix dependabot config.
- [#1613] DEP: The
picocli-groovy
module now declaresgroovy-all
as dependency. - ๐ [#1604] DEP: Remove dependency on
slf4j
frompicocli-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
- [#1599] API: The