github remkop/picocli v4.5.2
Picocli 4.5.2

latest releases: v4.7.6, v4.7.5, v4.7.4...
3 years ago

Picocli 4.5.2

The picocli community is pleased to announce picocli 4.5.2.

This release contains bug fixes and enhancements:

  • Auto-enable ANSI colors on MSYS2 terminals.
  • Abbreviated options are now matched correctly even when value attached with '=' separator.
  • The built-in HelpCommand now respects subcommands case-sensitivity and abbreviations.
  • Required parameters no longer consume negated options.
  • Positional parameters in Argument Groups no longer result in ArithmeticException: / by zero exceptions.
  • The user manual now has tabs showing examples in languages other than Java.
    This is a work in progress: many examples still only have a Java version.
    Contributions welcome!
  • Many, many documentation enhancements, most of which contributed by the community.

Many thanks to the picocli community who contributed 28 pull requests in this release!
Please see the Fixed Issues section below for the individual contributors. Great work!

This is the seventy-fourth public release.
Picocli follows semantic versioning.

Table of Contents

  • New and noteworthy
  • Fixed issues
  • Deprecations
  • Potential breaking changes

New and Noteworthy

The user manual now has tabs showing examples in languages other than Java.
This is a work in progress: many examples still only have a Java version.
Contributions welcome!

Fixed issues

  • [#1186] Enhancement: Auto-enable ANSI colors on MSYS2 (Git for Windows, MSYS2-based Windows Terminal shells, etc.). Thanks to Sysmat for raising this.
  • [#1162] Bugfix: Abbreviated options are not matched if value attached with '=' separator (like -x=3). Thanks to Chris Laprun for raising this.
  • [#1156][#1172] Bugfix: the built-in HelpCommand now respects subcommands case-sensitivity and abbreviations. Thanks to NewbieOrange for the pull request.
  • [#1197] Bugfix: required parameters should not consume negated options. Thanks to Kevin Turner for raising this.
  • [#1213] Bugfix: @Parameters in @ArgGroup should not result in ArithmeticException: / by zero. Thanks to Loren Keagle for raising this.
  • [#1158] DOC: Fix broken links to GraalVM repo. Thanks to Andreas Deininger for the pull request.
  • [#1155] DOC: Fix sample code in chapter "Validation". Thanks to Andreas Deininger for the pull request.
  • [#1157] DOC: Fix typo "a argument group" in user manual. Thanks to sabrina for raising this.
  • [#1160] DOC: Added section Was a Value Defaulted? to the user manual.
  • [#1161] DOC: Fix typo "4,2" (should be 4.2) in user manual. Thanks to sabrina for raising this.
  • [#1165] DOC: Fix jline3 example: add AnsiConsole::systemUninstall in finally clause. Thanks to David Walluck for raising this.
  • [#1168][#1169] DOC: Ensure org.jline.terminal.Terminal is closed when done. Thanks to David Walluck for the pull request.
  • [#1167] DOC: Fix broken links in Quick Guide. Thanks to Andreas Deininger for the pull request.
  • [#1171] DOC: Various documentation improvements. Thanks to Andreas Deininger for the pull request.
  • [#1173] DOC: Improve example applications for the user manual and Quick Guide. Thanks to Andreas Deininger for the pull request.
  • [#1175] DOC: section on compatible versions to picocli-shell-jline3/README.md. Thanks to Nick Cross for raising this.
  • [#1176] DOC: Update JLine picocli-shell-jline3 example to 3.16.0. Thanks to Nick Cross for the pull request.
  • [#890][#1187] DOC: Extend and improve subcommands documentation. Thanks to Andreas Deininger for the pull request.
  • [#1190] DOC: Improve InetSocketAddressConverter demo. Thanks to Andreas Deininger for the pull request.
  • [#1192] DOC: Fix broken links in documentation. Thanks to Andreas Deininger for the pull request.
  • [#1196] DOC: Quick Guide examples can now be executed on the documentation page via JDoodle.com. Thanks to Andreas Deininger for the pull request.
  • [#1200] DOC: User manual checksum example can now be executed on the documentation page via JDoodle.com. Thanks to Andreas Deininger for the pull request.
  • [#1199] DOC: Fix paramLabel in examples. Thanks to Andreas Deininger for the pull request.
  • [#1198] DOC: Add copy button to code blocks. Thanks to Andreas Deininger for the pull request.
  • [#1201] DOC: User manual checksum example: add Kotlin source code on second tab. Thanks to Andreas Deininger for the pull request.
  • [#1202] DOC: Update to latest Asciidoctor gradle plugin. Thanks to Andreas Deininger for the pull request.
  • [#1203] DOC: Replace 'coderay' source code highlighter with 'rouge' to support Kotlin, Scala and Groovy. Thanks to Andreas Deininger for the pull request.
  • [#1205] DOC: User manual checksum example: add more tabs for Groovy, Groovy script and Scala. Thanks to Andreas Deininger for the pull request.
  • [#1208] DOC: Fix: Show copy buttons in code blocks with latest Asciidoctor gradle plugin. Thanks to Andreas Deininger for the pull request.
  • [#1209] DOC: Show Maven coordinates in JLine2/3 README. Thanks to Jiří Holuša for the pull request.
  • [#1210] DOC: User manual subcommands example: add tab with Kotlin source code. Thanks to Andreas Deininger for the pull request.
  • [#1211] DOC: User manual subcommands section: add several tabs with Kotlin source code. Thanks to Andreas Deininger for the pull request.
  • [#1170] TEST: Ensure ANSI is disabled in ManPageGeneratorTest regardless of environment. Thanks to David Walluck for the pull request.
  • [#1166][#1103] TEST: Ensure ANSI is disabled in TracerTest regardless of environment. Thanks to David Walluck for the pull request.
  • [#1179] TEST: Use .invalid domain name for InetAddress test. Thanks to David Phillips for the pull request.
  • [#1178] BUILD: Run Travis build on macOS. Thanks to David Phillips for the pull request.
  • [#1192] Dependency Upgrade: Bump AsciiDoctor to 2.1.0 from 1.6.2. Thanks to Andreas Deininger for the pull request.

Deprecations

No features were deprecated in this release.

Potential breaking changes

This release has no breaking changes.

Don't miss a new picocli release

NewReleases is sending notifications on new releases.