diff --git a/README.md b/README.md index 3a98e4a93..0c210f9e7 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ The user manual has examples of integrating with [Guice](https://picocli.info/#_ ### Releases * [All Releases](https://github.com/remkop/picocli/releases) -* Latest: 4.6.2 [Release Notes](https://github.com/remkop/picocli/releases/tag/v4.6.2) +* Latest: 4.6.3 [Release Notes](https://github.com/remkop/picocli/releases/tag/v4.6.3) * Older: Picocli 4.0 [Release Notes](https://github.com/remkop/picocli/releases/tag/v4.0.0) * Older: Picocli 3.0 [Release Notes](https://github.com/remkop/picocli/releases/tag/v3.0.0) * Older: Picocli 2.0 [Release Notes](https://github.com/remkop/picocli/releases/tag/v2.0.0) @@ -248,9 +248,9 @@ If you like picocli, there are a few things you can do to help: * Upvote my [Quora answer](https://www.quora.com/What-is-the-best-way-to-parse-command-line-arguments-with-Java/answer/Remko-Popma) to "What is the best way to parse command-line arguments with Java?" * Upvote my [StackOverflow answer](https://stackoverflow.com/a/43780433/1446916) to "How do I parse command line arguments in Java?" -If you like picocli and your project is on GitHub, consider adding this badge to your README.md: [![picocli](https://img.shields.io/badge/picocli-4.6.2-green.svg)](https://github.com/remkop/picocli) +If you like picocli and your project is on GitHub, consider adding this badge to your README.md: [![picocli](https://img.shields.io/badge/picocli-4.6.3-green.svg)](https://github.com/remkop/picocli) ``` -[![picocli](https://img.shields.io/badge/picocli-4.6.2-green.svg)](https://github.com/remkop/picocli) +[![picocli](https://img.shields.io/badge/picocli-4.6.3-green.svg)](https://github.com/remkop/picocli) ``` @@ -338,41 +338,41 @@ See the [source code](https://github.com/remkop/picocli/blob/master/src/main/jav ### Gradle ``` -implementation 'info.picocli:picocli:4.6.2' +implementation 'info.picocli:picocli:4.6.3' ``` ### Maven ``` info.picocli picocli - 4.6.2 + 4.6.3 ``` ### Scala SBT ``` -libraryDependencies += "info.picocli" % "picocli" % "4.6.2" +libraryDependencies += "info.picocli" % "picocli" % "4.6.3" ``` ### Ivy ``` - + ``` ### Grape ```groovy @Grapes( - @Grab(group='info.picocli', module='picocli', version='4.6.2') + @Grab(group='info.picocli', module='picocli', version='4.6.3') ) ``` ### Leiningen ``` -[info.picocli/picocli "4.6.2"] +[info.picocli/picocli "4.6.3"] ``` ### Buildr ``` -'info.picocli:picocli:jar:4.6.2' +'info.picocli:picocli:jar:4.6.3' ``` ### JBang ``` -//DEPS info.picocli:picocli:4.6.2 +//DEPS info.picocli:picocli:4.6.3 ``` diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 260c3ef6d..a98df7b05 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,7 +1,7 @@ # picocli Release Notes -# Picocli 4.6.3 (UNRELEASED) +# Picocli 4.6.3 The picocli community is pleased to announce picocli 4.6.3. This release includes bugfixes and enhancements, as well as documentation and security improvements. diff --git a/docs/A-Whirlwind-Tour-of-Picocli.html b/docs/A-Whirlwind-Tour-of-Picocli.html index ccb34e2a4..314fee6e4 100644 --- a/docs/A-Whirlwind-Tour-of-Picocli.html +++ b/docs/A-Whirlwind-Tour-of-Picocli.html @@ -4,26 +4,24 @@ - + A Whirlwind Tour of Picocli - - + + + @@ -1648,7 +1647,7 @@

A Whirlwind Tour of Picocli

Remko Popma
-version 4.6.2 +version 4.6.3
@@ -1712,7 +1711,7 @@

A CheckSum Utility

24 25 -
@Command(description = "Prints the checksum (MD5 by default) of a file to STDOUT.",
+  
@Command(description = "Prints the checksum (SHA-1 by default) of a file to STDOUT.",
          name = "checksum", mixinStandardHelpOptions = true, version = "checksum 3.0")
 class CheckSum implements Callable<Void> {
 
@@ -1720,7 +1719,7 @@ 

A CheckSum Utility

private File file; @Option(names = {"-a", "--algorithm"}, description = "MD5, SHA-1, SHA-256, ...") - private String algorithm = "MD5"; + private String algorithm = "SHA-1"; public static void main(String[] args) { // CheckSum implements Callable, so parsing, error handling and handling user @@ -1759,7 +1758,7 @@

A CheckSum Utility

checksum help

-

The <file> positional parameter does not have a default, so this a mandatory parameter. The --algorithm option does have a default: "MD5", so it is optional.

+

The <file> positional parameter does not have a default, so this a mandatory parameter. The --algorithm option does have a default: "SHA-1", so it is optional.

Note that our program does not have any logic to validate the user input. The validation was done automatically by picocli as part of the CommandLine.call(Callable, String[]) invocation in our main method. Later we will show some alternatives that give more control to the application.

@@ -1770,14 +1769,14 @@

A CheckSum Utility

Comparing our CheckSum utility against md5sum and sha1sum
-
$ java picocli.example.CheckSum picocli-3.9.5.jar
+
$ java picocli.example.CheckSum --algorithm=MD5 picocli-3.9.5.jar
 509e3e2602854d5b88e2e7baa476a7fe
 
 $ md5sum picocli-3.9.5.jar
 509e3e2602854d5b88e2e7baa476a7fe *picocli-3.9.5.jar
 
 
-$ java picocli.example.CheckSum --algorithm=SHA1 picocli-3.9.5.jar
+$ java picocli.example.CheckSum picocli-3.9.5.jar
 f659a2feef0e8f7f8458aaf7d36c4d92f65320c8
 
 $ sha1sum picocli-3.9.5.jar
@@ -1808,7 +1807,7 @@ 

A CheckSum Utility

$ java picocli.example.CheckSum --help
 Usage: checksum [-hV] [-a=<algorithm>] <file>
-Prints the checksum (MD5 by default) of a file to STDOUT.
+Prints the checksum (SHA-1 by default) of a file to STDOUT.
       <file>      The file whose checksum to calculate.
   -a, --algorithm=<algorithm>
                   MD5, SHA-1, SHA-256, ...
@@ -2738,7 +2737,7 @@ 

Completion Candidates

} @Option(names = {"-a", "--algorithm"}, completionCandidates = AlgoList.class, description = "${COMPLETION-CANDIDATES}, ...") -private String algorithm = "MD5";
+private String algorithm = "SHA-1";
@@ -2817,7 +2816,7 @@

Groovy Scripts

@Option(names = ["-a", "--algorithm"], description = [ "MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512, or", " any other MessageDigest algorithm. See [1] for more details."]) -@Field private String algorithm = "MD5" +@Field private String algorithm = "SHA-1" files.each { println ""+MessageDigest.getInstance(algorithm).digest(it.bytes).encodeHex()+"\t"+it @@ -3086,8 +3085,8 @@

Conclusion

diff --git a/docs/announcing-picocli-1.0.html b/docs/announcing-picocli-1.0.html index 6330fea13..22d56aafa 100644 --- a/docs/announcing-picocli-1.0.html +++ b/docs/announcing-picocli-1.0.html @@ -4,26 +4,24 @@ - + Announcing picocli 1.0 - a mighty tiny command line interface - - - - - + + +
@@ -2541,8 +2464,8 @@
Usi
Gradle
dependencies {
-    implementation 'info.picocli:picocli:4.6.2'
-    annotationProcessor 'info.picocli:picocli-codegen:4.6.2'
+    implementation 'info.picocli:picocli:4.6.3'
+    annotationProcessor 'info.picocli:picocli-codegen:4.6.3'
 }
 
 
@@ -2564,7 +2487,7 @@ 
Usi <path> <groupId>info.picocli</groupId> <artifactId>picocli-codegen</artifactId> - <version>4.6.2</version> + <version>4.6.3</version> </path> </annotationProcessorPaths> <compilerArgs> @@ -2589,7 +2512,7 @@
apply plugin: 'kotlin-kapt' // required dependencies { // ... - kapt 'info.picocli:picocli-codegen:4.6.2' + kapt 'info.picocli:picocli-codegen:4.6.3' }
@@ -2632,7 +2555,7 @@

-
java -cp "picocli-4.6.2.jar:checksum.jar" CheckSum --algorithm SHA-1 hello.txt
+
java -cp "picocli-4.6.3.jar:checksum.jar" CheckSum --algorithm SHA-1 hello.txt
@@ -6316,7 +6239,7 @@

static class Outer { @Option(names = "-x", defaultValue = "XX") String x = "XX"; - @ArgGroup(exclusive = "true") + @ArgGroup(exclusive = true) Inner inner; // no initial value } @@ -6350,7 +6273,7 @@

class Outer { @Option(names = "-x", defaultValue = "XX") var x = "XX"; - @ArgGroup(exclusive = "true") + @ArgGroup(exclusive = true) lateinit var inner: Inner // no initial value } @@ -8182,14 +8105,14 @@

-

11.9. Option Names or Subcommands as Option Values

-
-

Since picocli 4.4, the parser will no longer assign values that match a subcommand name or an option name to options that take a parameter, unless the value is in quotes. - For example:

-
-
-
Java
-
+

11.9. Option Names or Subcommands as Option Values

+
+

Since picocli 4.4, the parser will no longer assign values that match a subcommand name or an option name to options that take a parameter, unless the value is in quotes. +For example:

+
+
+
Java
+
class App {
     @Option(names = "-x") String x;
     @Option(names = "-y") String y;
@@ -8200,11 +8123,11 @@ 

System.out.printf("x='%s', y='%s'%n", app.x, app.y); } }

-
-
-
-
Kotlin
-
+
+
+
-
-

In previous versions of picocli, the above command would accept input -x -y, and the value -y would be assigned to the x String field. - As of picocli 4.4, the above input will be rejected with an error message indicating that the -x option requires a parameter.

-
-
-

If it is necessary to accept values that match option names, such values need to be quoted. - For example:

-
-
-
-
java App -x="-y"
-
-
-
-

This will print the following output:

-
-
-
-
x='-y', y='null'
-
-
-
-
-
Java
-
+
+
+
+

In previous versions of picocli, the above command would accept input -x -y, and the value -y would be assigned to the x String field. +As of picocli 4.4, the above input will be rejected with an error message indicating that the -x option requires a parameter.

+
+
+

If it is necessary to accept values that match option names, such values need to be quoted. +For example:

+
+
+
+
java App -x="-y"
+
+
+
+

This will print the following output:

+
+
+
+
x='-y', y='null'
+
+
+
+

Another idea is to replace or augment picocli’s parser by doing custom parameter processing for such options. For example:

+
+
+
Java
+
class App implements Runnable {
     @Option(names = "-x", parameterConsumer = App.CustomConsumer.class)
     String x;
@@ -8274,11 +8197,11 @@ 

new CommandLine(new App()).execute(args); } }

-
-
-
-
Kotlin
-
+
+
+
-
-

The above code assigns whatever command line argument that follows the -x option to that option, - and allows input like the following:

-
-
-
+
+
+
+

The above code assigns whatever command line argument that follows the -x option to that option, +and allows input like the following:

+
+
+
java App -x=mySubcommand
 java App -x mySubcommand
 java App -x=-y
 java App -x -y -y=123
-
-
-
- +
+
+
+
+ + + + + +
+ + +
+

Applications that reuse a single CommandLine instance for multiple parseArgs or execute invocations should be aware of the following:

+
+
+

Annotated setter method options that explicitly set defaultValue = Option.NULL_VALUE will get a call with a null parameter when the command line did not include that option.

+
+
+

If the setter method annotation does not explicitly set defaultValue = Option.NULL_VALUE, then this method will not be called when the command line did not include that option. This means that the value will retain the value of the previous parseArgs or execute invocation, which may not be desirable. (This only happens for applications that reuse a single CommandLine instance for multiple parseArgs or execute invocations.)

+
+
+
Java
+
+
class App {
+    String x;
+    String y;
+
+    // reset to null when option not specified
+    @Option(names = "-x", defaultValue = Option.NULL)
+    void setX(String x) { this.x = x; }
+
+    // retains value of previous parseArgs invocation when option not specified
+    @Option(names = "-y")
+    void setY(String y) { this.y = y; }
+}
+
+
+
+
Kotlin
+
+
class App {
+    var x
+    var y
+
+    // reset to null when option not specified
+    @Option(names = ["-x"], defaultValue = Option.NULL)
+    fun setX(x: String) { this.x = x }
+
+    // retains value of previous parseArgs invocation when option not specified
+    @Option(names = ["-y"])
+    fun setY(y: String) { this.y = y }
+}
+
+
+
+

@@ -16080,7 +16056,7 @@

<dependency> <groupId>info.picocli</groupId> <artifactId>picocli-spring-boot-starter</artifactId> - <version>4.6.2</version> + <version>4.6.3</version> </dependency>

@@ -16088,7 +16064,7 @@

Gradle (Groovy)
dependencies {
-    implementation 'info.picocli:picocli-spring-boot-starter:4.6.2'
+    implementation 'info.picocli:picocli-spring-boot-starter:4.6.3'
 }
@@ -16096,7 +16072,7 @@

Gradle (Kotlin)
dependencies {
-    implementation("info.picocli:picocli-spring-boot-starter:4.6.2")
+    implementation("info.picocli:picocli-spring-boot-starter:4.6.3")
 }
@@ -16506,7 +16482,7 @@

22.3. Micronaut Example

-

Micronaut Logo

+

Micronaut Logo

-
alias mycommand='java -cp "/path/to/picocli-4.6.2.jar:/path/to/myapp.jar" org.myorg.MainClass'
+
alias mycommand='java -cp "/path/to/picocli-4.6.3.jar:/path/to/myapp.jar" org.myorg.MainClass'
@@ -17807,7 +17783,7 @@

-
path/to/native-image -cp picocli-4.6.2.jar --static -jar myapp.jar
+
path/to/native-image -cp picocli-4.6.3.jar --static -jar myapp.jar
-
@Grab('info.picocli:picocli-groovy:4.6.2')
+
@Grab('info.picocli:picocli-groovy:4.6.3')
 @GrabConfig(systemClassLoader=true)
 @Command(name = "myScript",
         mixinStandardHelpOptions = true, // add --help and --version options
@@ -18071,7 +18047,7 @@ 

30.1.2. G When upgrading scripts from picocli versions older than 4.0, just changing the version number is not enough! -Scripts should use @Grab('info.picocli:picocli-groovy:4.6.2'). The old artifact id @Grab('info.picocli:picocli:4.6.2') will not work, +Scripts should use @Grab('info.picocli:picocli-groovy:4.6.3'). The old artifact id @Grab('info.picocli:picocli:4.6.3') will not work, because the @picocli.groovy.PicocliScript annotation class and supporting classes have been moved into a separate module, picocli-groovy. @@ -18166,7 +18142,7 @@

-
@Grab('info.picocli:picocli-groovy:4.6.2')
+
@Grab('info.picocli:picocli-groovy:4.6.3')
 @GrabExclude('org.codehaus.groovy:groovy-all') // work around GROOVY-7613
 ...
@@ -18357,14 +18333,14 @@

37.1. Build too
Gradle
-
implementation 'info.picocli:picocli:4.6.2'
+
implementation 'info.picocli:picocli:4.6.3'
Gradle (Kotlin)
dependencies {
-    implementation("info.picocli:picocli:4.6.2")
+    implementation("info.picocli:picocli:4.6.3")
 }
@@ -18374,46 +18350,46 @@

37.1. Build too
<dependency>
   <groupId>info.picocli</groupId>
   <artifactId>picocli</artifactId>
-  <version>4.6.2</version>
+  <version>4.6.3</version>
 </dependency>

Scala SBT
-
libraryDependencies += "info.picocli" % "picocli" % "4.6.2"
+
libraryDependencies += "info.picocli" % "picocli" % "4.6.3"
Ivy
-
<dependency org="info.picocli" name="picocli" rev="4.6.2" />
+
<dependency org="info.picocli" name="picocli" rev="4.6.3" />
Grape
@Grapes(
-    @Grab(group='info.picocli', module='picocli', version='4.6.2')
+    @Grab(group='info.picocli', module='picocli', version='4.6.3')
 )
Leiningen
-
[info.picocli/picocli "4.6.2"]
+
[info.picocli/picocli "4.6.3"]
Buildr
-
'info.picocli:picocli:jar:4.6.2'
+
'info.picocli:picocli:jar:4.6.3'
JBang
-
//DEPS info.picocli:picocli:4.6.2
+
//DEPS info.picocli:picocli:4.6.3

@@ -18421,7 +18397,7 @@

37.1. Build too

37.2. Source

By using picocli in source form, you can avoid having an external dependency on picocli. -Picocli has only one source file: CommandLine.java. +Picocli has only one source file: CommandLine.java. This facilitates including picocli in your project: simply copy and paste the code of this file into a file called CommandLine.java, add it to your project, and enjoy!

@@ -18430,8 +18406,8 @@

37.2. Source

@@ -18469,4 +18445,4 @@

37.2. Source

handleTocOnResize(); - + \ No newline at end of file diff --git a/docs/man/gen-manpage.html b/docs/man/gen-manpage.html index a4bca79a8..def3f109b 100644 --- a/docs/man/gen-manpage.html +++ b/docs/man/gen-manpage.html @@ -579,7 +579,7 @@

Example

-
java -Duser.language=de -cp "myapp.jar;picocli-4.6.2.jar;picocli-codegen-4.6.2.jar" picocli.codegen.docgen.manpage.ManPageGenerator my.pkg.MyClass
+
java -Duser.language=de -cp "myapp.jar;picocli-4.6.3.jar;picocli-codegen-4.6.3.jar" picocli.codegen.docgen.manpage.ManPageGenerator my.pkg.MyClass
@@ -587,8 +587,8 @@

Example

diff --git a/docs/man/gen-proxy-config.html b/docs/man/gen-proxy-config.html index 598b43d78..9cc2eae9c 100644 --- a/docs/man/gen-proxy-config.html +++ b/docs/man/gen-proxy-config.html @@ -460,7 +460,7 @@

Description

Generates a JSON file with the interface names to generate dynamic proxy classes for in the native image. The generated JSON file can be passed to the -H:DynamicProxyConfigurationFiles=/path/to/proxy-config.json option of the native-image GraalVM utility. -See https://github.com/oracle/graal/blob/master/substratevm/DynamicProxy.md

+See https://www.graalvm.org/reference-manual/native-image/DynamicProxy/

@@ -540,7 +540,7 @@

Example

-
java -cp "myapp.jar;picocli-4.6.2.jar;picocli-codegen-4.6.2.jar" picocli.codegen.aot.graalvm.DynamicProxyConfigGenerator my.pkg.MyClass
+
java -cp "myapp.jar;picocli-4.6.3.jar;picocli-codegen-4.6.3.jar" picocli.codegen.aot.graalvm.DynamicProxyConfigGenerator my.pkg.MyClass
@@ -548,8 +548,8 @@

Example

diff --git a/docs/man/gen-reflect-config.html b/docs/man/gen-reflect-config.html index ff4c44681..752c1ed43 100644 --- a/docs/man/gen-reflect-config.html +++ b/docs/man/gen-reflect-config.html @@ -460,7 +460,7 @@

Description

Generates a JSON file with the program elements that will be accessed reflectively for the specified @Command classes. The generated JSON file can be passed to the -H:ReflectionConfigurationFiles=/path/to/reflect-config.json option of the native-image GraalVM utility. -See https://github.com/oracle/graal/blob/master/substratevm/Reflection.md

+See https://www.graalvm.org/reference-manual/native-image/Reflection/

@@ -536,7 +536,7 @@

Example

-
java -cp "myapp.jar;picocli-4.6.2.jar;picocli-codegen-4.6.2.jar" picocli.codegen.aot.graalvm.ReflectionConfigGenerator my.pkg.MyClass
+
java -cp "myapp.jar;picocli-4.6.3.jar;picocli-codegen-4.6.3.jar" picocli.codegen.aot.graalvm.ReflectionConfigGenerator my.pkg.MyClass
@@ -544,8 +544,8 @@

Example

diff --git a/docs/man/gen-resource-config.html b/docs/man/gen-resource-config.html index 3acda7ea6..0e9aca03f 100644 --- a/docs/man/gen-resource-config.html +++ b/docs/man/gen-resource-config.html @@ -461,7 +461,7 @@

Description

Generates a JSON file with the resources and resource bundles to include in the native image. The generated JSON file can be passed to the -H:ResourceConfigurationFiles=/path/to/resource-config.json option of the native-image GraalVM utility. -See https://github.com/oracle/graal/blob/master/substratevm/Resources.md

+See https://www.graalvm.org/reference-manual/native-image/Resources/

@@ -545,7 +545,7 @@

Example

-
java -cp "myapp.jar;picocli-4.6.2.jar;picocli-codegen-4.6.2.jar" picocli.codegen.aot.graalvm.ResourceConfigGenerator my.pkg.MyClass
+
java -cp "myapp.jar;picocli-4.6.3.jar;picocli-codegen-4.6.3.jar" picocli.codegen.aot.graalvm.ResourceConfigGenerator my.pkg.MyClass
@@ -553,8 +553,8 @@

Example

diff --git a/docs/man/generate-completion.html b/docs/man/generate-completion.html index 456ff168b..511a0e407 100644 --- a/docs/man/generate-completion.html +++ b/docs/man/generate-completion.html @@ -487,8 +487,8 @@

Options

diff --git a/docs/man/index.html b/docs/man/index.html index c0dc21e29..85026e577 100644 --- a/docs/man/index.html +++ b/docs/man/index.html @@ -4,25 +4,23 @@ - + Picocli Built-In Tools - - - + + +
@@ -550,7 +549,7 @@

Picocli Built-In Tools

diff --git a/docs/man/picocli.AutoComplete.html b/docs/man/picocli.AutoComplete.html index 48e72c34e..b2fcfac91 100644 --- a/docs/man/picocli.AutoComplete.html +++ b/docs/man/picocli.AutoComplete.html @@ -574,7 +574,7 @@

Example

-
java -cp "myapp.jar;picocli-4.6.2.jar" \
+
java -cp "myapp.jar;picocli-4.6.3.jar" \
             picocli.AutoComplete my.pkg.MyClass
@@ -583,8 +583,8 @@

Example

diff --git a/docs/migrating-from-commons-cli.html b/docs/migrating-from-commons-cli.html index 3def3c5de..3296cb429 100644 --- a/docs/migrating-from-commons-cli.html +++ b/docs/migrating-from-commons-cli.html @@ -4,26 +4,24 @@ - + Migrating from Commons CLI to picocli - - - + + + @@ -610,7 +609,7 @@

Migrating from Commons CLI to picocli

Remko Popma
-version 4.6.2, +version 4.6.3, 2018-11-19
@@ -1050,7 +1049,7 @@

Conclusion

diff --git a/docs/picocli-2.0-do-more-with-less.html b/docs/picocli-2.0-do-more-with-less.html index 3d4fa11e7..eb75db958 100644 --- a/docs/picocli-2.0-do-more-with-less.html +++ b/docs/picocli-2.0-do-more-with-less.html @@ -4,25 +4,23 @@ - + Picocli 2.0: Do More With Less - - - + + +
@@ -997,7 +996,7 @@

Conclusion

diff --git a/docs/picocli-2.0-groovy-scripts-on-steroids.html b/docs/picocli-2.0-groovy-scripts-on-steroids.html index 08010b5ab..0e6b8b5b2 100644 --- a/docs/picocli-2.0-groovy-scripts-on-steroids.html +++ b/docs/picocli-2.0-groovy-scripts-on-steroids.html @@ -4,25 +4,23 @@ - + Picocli 2.0: Groovy Scripts on Steroids - - - + + +
@@ -887,7 +886,7 @@

Conclusion

diff --git a/docs/picocli-on-graalvm.html b/docs/picocli-on-graalvm.html index 6c8e2266f..6dd888641 100644 --- a/docs/picocli-on-graalvm.html +++ b/docs/picocli-on-graalvm.html @@ -4,25 +4,23 @@ - + Picocli on GraalVM: Blazingly Fast Command Line Apps - - - + + +
@@ -735,7 +734,7 @@

Conclusion

diff --git a/docs/picocli-programmatic-api.adoc b/docs/picocli-programmatic-api.adoc index 6cebbe319..2a5bb2d7a 100644 --- a/docs/picocli-programmatic-api.adoc +++ b/docs/picocli-programmatic-api.adoc @@ -1,8 +1,8 @@ = Programmatic API //:author: Remko Popma //:email: rpopma@apache.org -:revnumber: 4.6.3-SNAPSHOT -:revdate: 2021-11-05 +:revnumber: 4.6.3 +:revdate: 2022-02-09 :toc: left :numbered: :toclevels: 2 diff --git a/docs/picocli-programmatic-api.html b/docs/picocli-programmatic-api.html index 6f7c1af6f..5a44f0e61 100644 --- a/docs/picocli-programmatic-api.html +++ b/docs/picocli-programmatic-api.html @@ -4,25 +4,23 @@ - + Programmatic API - - - + + +