History - remkop/picocli GitHub Wiki
0.9.4 (May 2017)
- Initial public release
@Command
annotation for command name and usage help message customization
@Option
and @Parameters
annotations for named options and positional parameters
- fine-grained control over
arity
: number of option parameters
- built-in type converters
- customizable type conversion
- ANSI colors
- Help API for fine-grained usage help message customization
CommandLine.run
convenience method to parse and invoke Runnable
commands on one line (superceded by execute
in 4.0)
0.9.7 (Jun 2017)
- subcommands and nested sub-subcommands
- parser configuration to allow option overwriting
- parser configuration to allow unmatched arguments
0.9.8 (Aug 2017)
- API for registering subcommands declaratively with
@Command(subcommands={...})
annotation
- API for
usageHelp
and versionHelp
attributes on @Option
1.0.0 (Aug 2017)
- generate bash and zsh completion scripts
Map
options like -Dkey1=val1 -Dkey2=val2
- parser tracing for troubleshooting
- added
CommandLine.call
convenience method for Callable
commands (superceded by execute
in 4.0)
2.0.0 (Oct 2017)
- Groovy scripts can use picocli annotations
- added
CommandLine.parseWithHandler
convenience method (superceded by execute
in 4.0)
- convenience methods
run
, call
and parseWithHandler
now work correctly for subcommands
- convenience methods
run
, call
and parseWithHandler
now automatically print help and version information when requested
- parser enhancement: positional arguments no longer need to follow options (any order is allowed)
2.1.0 (Nov 2017)
@-files
(argument files)
- multi-value boolean options (like
-vvv
)
2.2.0 (Dec 2017)
@ParentCommand
annotation allows subcommands to reference the parent command
- type converters for Java 7 (
Path
, etc) and Java 8 (java.time
classes)
- option-specific type converters
IVersionProvider
- initial Dependency Injection support (
IFactory
)
2.3.0 (Feb 2018)
stopAtPositional
and stopAtUnmatched
parser configuration
- options with optional parameter now have
""
empty string fallback value (if option specified without parameter)
3.0.0 (May 2018)
- programmatic API in addition to the annotations (
CommandSpec
, OptionSpec
and PositionalParamSpec
, ...)
- mixins for reuse
- standard help options
--help
and --version
- built-in Help command
@Unmatched
annotation
- Stdout or Stderr (automatic help follows unix conventions)
- exit code support
3.1.0 (Jun 2018)
3.2.0 (Jul 2018)
- full Dependency Injection support
@Option
and @Parameters
-annotated methods
- JLine TAB completion
${DEFAULT-VALUE}
and ${COMPLETION-CANDIDATES}
variables in descriptions
@Spec
annotation for injecting the CommandSpec
model into a command
3.3.0 (Jul 2018)
- offer suggestions for unmatched options
3.4.0 (Aug 2018)
- API for applications to output colors
3.5.0 (Aug 2018)
- masked interactive options for password
3.6.0 (Sep 2018)
- custom default providers
- define subcommands in
@Command
-annotated methods
- internationalization via resource bundles
3.7.0 (Oct 2018)
- GraalVM support via new module
picocli-codegen
- JLine2 integration via
picocli-shell-jline2
module
- improved parsing of quoted values
3.8.0 (Nov 2018)
- Mixin support in
@Command
methods
3.8.1 (Dec 2018)
- JCommander-style argument files
3.9.0 (Jan 2019)
- API for customizing the usage help message
- JLine3 integration via
picocli-shell-jline3
module
- improved heuristics for enabling ANSI colors
4.0.0 (July 2019)
picocli-codegen
annotation processor for effortless GraalVM native images
execute
API:
- exit codes
- facilitates parser configuration
- static
run
, call
and parseWithHandlers
bootstrap methods are now deprecated
- mutually exclusive options
- mutually dependent options
- nested repeatable argument groups
- variable interpolation (variable expansion) in annotation attributes
- negatable options
- custom parameter processing
- customizable fallback value for options with optional parameter (when option specified without parameter)
- auto-detect terminal width
- improved support for Chinese, Japanese and Korean usage help
- Spring Boot integration via
picocli-spring-boot-starter
module
- picocli is now a JPMS module
- separate
picocli-groovy
module
4.1.0 (Nov 2019)
- built-in properties file-based default provider
- built-in
generate-completion
subcommand for generating bash/zsh completion scripts
- new API for creating custom usage help sections
4.1.2 (Dec 2019)
- integration with JLine 3.13.2: auto-completion showing descriptions
4.2.0 (Feb 2020)
- repeatable subcommands
- generate man pages, HTML and PDF documentation
- bash/zsh auto-completion for positional parameters
- show an entry for
@file
argument files in the options list
4.3.0 (May 2020)
- inherited options
- case-insensitive options and commands
- mixins can refer back to the command where they are used
- automatic indexes for positional parameters
- show an entry for
--
in the options list
4.4.0 (Jul 2020)
- abbreviated options and commands
- built-in
gen-manpage
subcommand for generating documentation
4.5.0 (Aug 2020)
- built-in
ColorScheme
styles for error text and stacktraces