-
Notifications
You must be signed in to change notification settings - Fork 418
History
Remko Popma edited this page Sep 28, 2020
·
9 revisions
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 invokeRunnable
commands on one line (superceded byexecute
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
andversionHelp
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 forCallable
commands (superceded byexecute
in 4.0)
2.0.0 (Oct 2017)
- Groovy scripts can use picocli annotations
- added
CommandLine.parseWithHandler
convenience method (superceded byexecute
in 4.0) - convenience methods
run
,call
andparseWithHandler
now work correctly for subcommands - convenience methods
run
,call
andparseWithHandler
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
andstopAtUnmatched
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
andPositionalParamSpec
, ...) - 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)
- command aliases
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 theCommandSpec
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
andparseWithHandlers
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