diff --git a/dependencies.gradle b/dependencies.gradle
index 61614cae5..ba52f8b14 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -5,12 +5,12 @@ ext {
// PICOCLI VERSION
// projectPreviousPublishedVersion is non-SNAPSHOT, only published releases
- projectPreviousPublishedVersion = "4\\.7\\.3" // for task bumpReadmeVersion
+ projectPreviousPublishedVersion = "4\\.7\\.4" // for task bumpReadmeVersion
// projectPreviousVersionRegex may be a SNAPSHOT
- projectPreviousVersionRegex = "4\\.7\\.4-SNAPSHOT" // for task bumpVersion
- projectVersion = "4.7.4" // for all build tasks
+ projectPreviousVersionRegex = "4\\.7\\.4" // for task bumpVersion
+ projectVersion = "4.7.5-SNAPSHOT" // for all build tasks
releaseDate = "2023-06-03" // for task bumpVersion
- releaseDatePreviousRegex = "2023\\-04\\-16" // for task bumpVersion
+ releaseDatePreviousRegex = "2023\\-06\\-03" // for task bumpVersion
// DEPENDENCIES
asciidoctorGradlePluginVersion = "3.3.2"
diff --git a/docs/autocomplete.adoc b/docs/autocomplete.adoc
index e748e3db5..2b9b18614 100644
--- a/docs/autocomplete.adoc
+++ b/docs/autocomplete.adoc
@@ -1,7 +1,7 @@
= Autocomplete for Java Command Line Applications
//:author: Remko Popma
//:email: rpopma@apache.org
-:revnumber: 4.7.4
+:revnumber: 4.7.5-SNAPSHOT
:revdate: 2023-06-03
:toc: left
:numbered:
diff --git a/docs/index.adoc b/docs/index.adoc
index be0d9f29b..ac3f62244 100644
--- a/docs/index.adoc
+++ b/docs/index.adoc
@@ -1,7 +1,7 @@
= picocli - a mighty tiny command line interface
//:author: Remko Popma
//:email: rpopma@apache.org
-:revnumber: 4.7.4
+:revnumber: 4.7.5-SNAPSHOT
:revdate: 2023-06-03
:toc: left
:numbered:
@@ -120,7 +120,7 @@ class CheckSum implements Callable {
[[CheckSum-App-Groovy]]
[source,groovy,role="secondary"]
----
-@Grab('info.picocli:picocli-groovy:4.7.4')
+@Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT')
import picocli.CommandLine
import static picocli.CommandLine.*
@@ -152,7 +152,7 @@ class Checksum implements Callable {
[[CheckSum-App-Groovy-Script]]
[source,groovy,role="secondary"]
----
-@Grab('info.picocli:picocli-groovy:4.7.4')
+@Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT')
import static picocli.CommandLine.*
import groovy.transform.Field
import java.security.MessageDigest
@@ -279,7 +279,7 @@ Below are examples of configuring Gradle or Maven to use picocli as an external
[source,groovy,role="primary"]
----
dependencies {
- implementation 'info.picocli:picocli:4.7.4'
+ implementation 'info.picocli:picocli:4.7.5-SNAPSHOT'
}
----
.Maven
@@ -288,7 +288,7 @@ dependencies {
info.picoclipicocli
- 4.7.4
+ 4.7.5-SNAPSHOT
----
@@ -325,8 +325,8 @@ https://immutables.github.io/apt.html[This page] shows the steps to configure Ec
[source,groovy,role="primary"]
----
dependencies {
- implementation 'info.picocli:picocli:4.7.4'
- annotationProcessor 'info.picocli:picocli-codegen:4.7.4'
+ implementation 'info.picocli:picocli:4.7.5-SNAPSHOT'
+ annotationProcessor 'info.picocli:picocli-codegen:4.7.5-SNAPSHOT'
}
@@ -348,7 +348,7 @@ compileJava {
info.picoclipicocli-codegen
- 4.7.4
+ 4.7.5-SNAPSHOT
@@ -368,7 +368,7 @@ then replace `annotationProcessor` with `kapt`:
apply plugin: 'kotlin-kapt' // required
dependencies {
// ...
- kapt 'info.picocli:picocli-codegen:4.7.4'
+ kapt 'info.picocli:picocli-codegen:4.7.5-SNAPSHOT'
}
```
@@ -399,7 +399,7 @@ Now, assuming we created a jar named `checksum.jar` containing our compiled `Che
[source,bash]
----
-java -cp "picocli-4.7.4.jar:checksum.jar" CheckSum --algorithm SHA-1 hello.txt
+java -cp "picocli-4.7.5-SNAPSHOT.jar:checksum.jar" CheckSum --algorithm SHA-1 hello.txt
----
You may want to package your application in such a way that end users can invoke it with a short command like this:
@@ -10381,7 +10381,7 @@ Eventually, we are ready to run our application:
[source,bash]
----
-java -cp "picocli-4.7.4.jar;myapp.jar" org.myorg.GreetingApp Sarah Lea
+java -cp "picocli-4.7.5-SNAPSHOT.jar;myapp.jar" org.myorg.GreetingApp Sarah Lea
----
With no command line parameter `--locale` given, the message texts are printed in the default language (here: English):
@@ -10395,7 +10395,7 @@ In order to control the locale chosen for our output, we have to make use of the
[source,bash]
----
-java -cp "picocli-4.7.4.jar;myapp.jar" org.myorg.GreetingApp --locale=es Sarah Lea
+java -cp "picocli-4.7.5-SNAPSHOT.jar;myapp.jar" org.myorg.GreetingApp --locale=es Sarah Lea
----
Now our message texts are printed in Spanish:
@@ -11714,21 +11714,21 @@ Since picocli dependencies are not available in the Spring Initializr, we have t
info.picoclipicocli-spring-boot-starter
- 4.7.4
+ 4.7.5-SNAPSHOT
----
.Gradle (Groovy)
[source,groovy,role="secondary"]
----
dependencies {
- implementation 'info.picocli:picocli-spring-boot-starter:4.7.4'
+ implementation 'info.picocli:picocli-spring-boot-starter:4.7.5-SNAPSHOT'
}
----
.Gradle (Kotlin)
[source,kotlin,role="secondary"]
----
dependencies {
- implementation("info.picocli:picocli-spring-boot-starter:4.7.4")
+ implementation("info.picocli:picocli-spring-boot-starter:4.7.5-SNAPSHOT")
}
----
@@ -13078,7 +13078,7 @@ As mentioned in <>, earlier in this manual, one way to
[source,bash]
----
-java -cp "picocli-4.7.4.jar;myapp.jar" org.myorg.MyMainClass --option=value arg0 arg1
+java -cp "picocli-4.7.5-SNAPSHOT.jar;myapp.jar" org.myorg.MyMainClass --option=value arg0 arg1
----
That is quite verbose. You may want to package your application in such a way that end users can invoke it by its command name like this:
@@ -13097,7 +13097,7 @@ On unix-based operating systems, you can ask your users to define an alias. For
[source,bash]
----
-alias mycommand='java -cp "/path/to/picocli-4.7.4.jar:/path/to/myapp.jar" org.myorg.MainClass'
+alias mycommand='java -cp "/path/to/picocli-4.7.5-SNAPSHOT.jar:/path/to/myapp.jar" org.myorg.MainClass'
----
Append the above line to your `~/.bashrc` file to make this alias available in every new shell session.
@@ -13146,7 +13146,7 @@ After installing GraalVM and installing the `native-image` generator utility (wi
you can then create a native image by invoking the `native-image` command:
----
-path/to/native-image -cp picocli-4.7.4.jar --static -jar myapp.jar
+path/to/native-image -cp picocli-4.7.5-SNAPSHOT.jar --static -jar myapp.jar
----
CAUTION: To create a native image, the compiler toolchain for your platform needs to be installed. See https://www.infoq.com/articles/java-native-cli-graalvm-picocli/[Build Great Native CLI Apps in Java with Graalvm and Picocli] for details.
@@ -13291,7 +13291,7 @@ The script body is executed if the user input was valid and did not request usag
[source,groovy]
----
-@Grab('info.picocli:picocli-groovy:4.7.4')
+@Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT')
@GrabConfig(systemClassLoader=true)
@Command(name = "myScript",
mixinStandardHelpOptions = true, // add --help and --version options
@@ -13332,7 +13332,7 @@ The table below compares these two base classes.
WARNING: 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.7.4')`. The old artifact id `@Grab('info.picocli:picocli:4.7.4')` will not work,
+Scripts should use `@Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT')`. The old artifact id `@Grab('info.picocli:picocli:4.7.5-SNAPSHOT')` will not work,
because the `@picocli.groovy.PicocliScript` annotation class and supporting classes have been moved into a separate module, `picocli-groovy`.
==== Closures in Annotations
@@ -13390,7 +13390,7 @@ NOTE: When using a Groovy version older than 2.4.7, use this workaround for the
[source,groovy]
----
-@Grab('info.picocli:picocli-groovy:4.7.4')
+@Grab('info.picocli:picocli-groovy:4.7.5-SNAPSHOT')
@GrabExclude('org.codehaus.groovy:groovy-all') // work around GROOVY-7613
...
----
@@ -13533,13 +13533,13 @@ You can add picocli as an external dependency to your project, or you can includ
.Gradle
[source,groovy,role="primary"]
----
-implementation 'info.picocli:picocli:4.7.4'
+implementation 'info.picocli:picocli:4.7.5-SNAPSHOT'
----
.Gradle (Kotlin)
[source,kotlin,role="secondary"]
----
-implementation("info.picocli:picocli:4.7.4")
+implementation("info.picocli:picocli:4.7.5-SNAPSHOT")
----
.Maven
@@ -13548,50 +13548,50 @@ implementation("info.picocli:picocli:4.7.4")
info.picoclipicocli
- 4.7.4
+ 4.7.5-SNAPSHOT
----
.Scala SBT
[source,role="secondary"]
----
-libraryDependencies += "info.picocli" % "picocli" % "4.7.4"
+libraryDependencies += "info.picocli" % "picocli" % "4.7.5-SNAPSHOT"
----
.Ivy
[source,role="secondary"]
----
-
+
----
.Grape
[source,role="secondary"]
----
@Grapes(
- @Grab(group='info.picocli', module='picocli', version='4.7.4')
+ @Grab(group='info.picocli', module='picocli', version='4.7.5-SNAPSHOT')
)
----
.Leiningen
[source,role="secondary"]
----
-[info.picocli/picocli "4.7.4"]
+[info.picocli/picocli "4.7.5-SNAPSHOT"]
----
.Buildr
[source,role="secondary"]
----
-'info.picocli:picocli:jar:4.7.4'
+'info.picocli:picocli:jar:4.7.5-SNAPSHOT'
----
.JBang
[source,role="secondary"]
----
-//DEPS info.picocli:picocli:4.7.4
+//DEPS info.picocli:picocli:4.7.5-SNAPSHOT
----
=== Source
By using picocli in source form, you can avoid having an external dependency on picocli.
-Picocli has only one source file: link:https://github.com/remkop/picocli/blob/v4.7.4/src/main/java/picocli/CommandLine.java[CommandLine.java].
+Picocli has only one source file: link:https://github.com/remkop/picocli/blob/v4.7.5-SNAPSHOT/src/main/java/picocli/CommandLine.java[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!
diff --git a/docs/picocli-programmatic-api.adoc b/docs/picocli-programmatic-api.adoc
index 7b4281037..0577392df 100644
--- a/docs/picocli-programmatic-api.adoc
+++ b/docs/picocli-programmatic-api.adoc
@@ -1,7 +1,7 @@
= Programmatic API
//:author: Remko Popma
//:email: rpopma@apache.org
-:revnumber: 4.7.4
+:revnumber: 4.7.5-SNAPSHOT
:revdate: 2023-06-03
:toc: left
:numbered:
diff --git a/docs/quick-guide.adoc b/docs/quick-guide.adoc
index 01eeae94b..391e51e4e 100644
--- a/docs/quick-guide.adoc
+++ b/docs/quick-guide.adoc
@@ -1,7 +1,7 @@
= Quick Guide
//:author: Remko Popma
//:email: rpopma@apache.org
-:revnumber: 4.7.4
+:revnumber: 4.7.5-SNAPSHOT
:revdate: 2023-06-03
:toc: left
:numbered:
@@ -52,7 +52,7 @@ Below we show a small but fully functional example picocli-based command line ap
.Invoking the command
----
-$ java -cp "myapp.jar;picocli-4.7.4.jar" ASCIIArt --font-size=9 Hello picocli
+$ java -cp "myapp.jar;picocli-4.7.5-SNAPSHOT.jar" ASCIIArt --font-size=9 Hello picocli
# # # # # # #
# # # # #
# # *** # # **** #*** # **# **** **# # #
@@ -162,7 +162,7 @@ The application can be used as follows:
.Resolving two letter language codes
----
-$ java -cp "myapp.jar;picocli-4.7.4.jar" ISOCodeResolver language de cs en sd se
+$ java -cp "myapp.jar;picocli-4.7.5-SNAPSHOT.jar" ISOCodeResolver language de cs en sd se
de: German
cs: Czech
en: English
@@ -172,7 +172,7 @@ se: Northern Sami
.Resolving two letter country codes
----
-$ java -cp "myapp.jar;picocli-4.7.4.jar" ISOCodeResolver country cn fr th ro no
+$ java -cp "myapp.jar;picocli-4.7.5-SNAPSHOT.jar" ISOCodeResolver country cn fr th ro no
CN: China
FR: France
TH: Thailand
diff --git a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/DynamicProxyConfigGenerator.java b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/DynamicProxyConfigGenerator.java
index 2e84d377d..cba40c510 100644
--- a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/DynamicProxyConfigGenerator.java
+++ b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/DynamicProxyConfigGenerator.java
@@ -58,7 +58,7 @@ public class DynamicProxyConfigGenerator {
},
footerHeading = "%nExample%n",
footer = {
- " java -cp \"myapp.jar;picocli-4.7.4.jar;picocli-codegen-4.7.4.jar\" " +
+ " java -cp \"myapp.jar;picocli-4.7.5-SNAPSHOT.jar;picocli-codegen-4.7.5-SNAPSHOT.jar\" " +
"picocli.codegen.aot.graalvm.DynamicProxyConfigGenerator my.pkg.MyClass"
},
mixinStandardHelpOptions = true, version = "picocli-codegen gen-proxy-config " + CommandLine.VERSION)
diff --git a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/JniConfigGenerator.java b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/JniConfigGenerator.java
index 5d8acb659..ec2de6b00 100644
--- a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/JniConfigGenerator.java
+++ b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/JniConfigGenerator.java
@@ -31,7 +31,7 @@ public class JniConfigGenerator {
},
footerHeading = "%nExample%n",
footer = {
- " java -cp \"myapp.jar;picocli-4.7.4.jar;picocli-codegen-4.7.4.jar\" " +
+ " java -cp \"myapp.jar;picocli-4.7.5-SNAPSHOT.jar;picocli-codegen-4.7.5-SNAPSHOT.jar\" " +
"picocli.codegen.aot.graalvm.JniConfigGenerator my.pkg.MyClass"
},
mixinStandardHelpOptions = true, sortOptions = false,
diff --git a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ReflectionConfigGenerator.java b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ReflectionConfigGenerator.java
index 77a8dd013..b2c8f730e 100644
--- a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ReflectionConfigGenerator.java
+++ b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ReflectionConfigGenerator.java
@@ -95,7 +95,7 @@ public class ReflectionConfigGenerator {
},
footerHeading = "%nExample%n",
footer = {
- " java -cp \"myapp.jar;picocli-4.7.4.jar;picocli-codegen-4.7.4.jar\" " +
+ " java -cp \"myapp.jar;picocli-4.7.5-SNAPSHOT.jar;picocli-codegen-4.7.5-SNAPSHOT.jar\" " +
"picocli.codegen.aot.graalvm.ReflectionConfigGenerator my.pkg.MyClass"
},
mixinStandardHelpOptions = true, sortOptions = false,
diff --git a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ResourceConfigGenerator.java b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ResourceConfigGenerator.java
index cc0807bac..a93f1bdd8 100644
--- a/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ResourceConfigGenerator.java
+++ b/picocli-codegen/src/main/java/picocli/codegen/aot/graalvm/ResourceConfigGenerator.java
@@ -54,7 +54,7 @@ public class ResourceConfigGenerator {
},
footerHeading = "%nExample%n",
footer = {
- " java -cp \"myapp.jar;picocli-4.7.4.jar;picocli-codegen-4.7.4.jar\" " +
+ " java -cp \"myapp.jar;picocli-4.7.5-SNAPSHOT.jar;picocli-codegen-4.7.5-SNAPSHOT.jar\" " +
"picocli.codegen.aot.graalvm.ResourceConfigGenerator my.pkg.MyClass"
},
mixinStandardHelpOptions = true, version = "picocli-codegen gen-resource-config " + CommandLine.VERSION)
diff --git a/picocli-codegen/src/main/java/picocli/codegen/docgen/manpage/ManPageGenerator.java b/picocli-codegen/src/main/java/picocli/codegen/docgen/manpage/ManPageGenerator.java
index 356b7ab6d..b0fcf616b 100644
--- a/picocli-codegen/src/main/java/picocli/codegen/docgen/manpage/ManPageGenerator.java
+++ b/picocli-codegen/src/main/java/picocli/codegen/docgen/manpage/ManPageGenerator.java
@@ -190,7 +190,7 @@ private void verboseDetailed(String message, Object... params) {
"",
"Example",
"-------",
- " java -Duser.language=de -cp \"myapp.jar;picocli-4.7.4.jar;picocli-codegen-4.7.4.jar\" " +
+ " java -Duser.language=de -cp \"myapp.jar;picocli-4.7.5-SNAPSHOT.jar;picocli-codegen-4.7.5-SNAPSHOT.jar\" " +
"picocli.codegen.docgen.manpage.ManPageGenerator my.pkg.MyClass"
}
)
diff --git a/src/main/java/picocli/AutoComplete.java b/src/main/java/picocli/AutoComplete.java
index be8176d27..17fe51258 100644
--- a/src/main/java/picocli/AutoComplete.java
+++ b/src/main/java/picocli/AutoComplete.java
@@ -116,7 +116,7 @@ private static boolean syspropDefinedAndNotFalse(String key) {
"",
"Example",
"-------",
- " java -cp \"myapp.jar;picocli-4.7.4.jar\" \\",
+ " java -cp \"myapp.jar;picocli-4.7.5-SNAPSHOT.jar\" \\",
" picocli.AutoComplete my.pkg.MyClass"
},
exitCodeListHeading = "%nExit Codes:%n",
diff --git a/src/main/java/picocli/CommandLine.java b/src/main/java/picocli/CommandLine.java
index 889f4c571..7960e216c 100644
--- a/src/main/java/picocli/CommandLine.java
+++ b/src/main/java/picocli/CommandLine.java
@@ -148,7 +148,7 @@
public class CommandLine {
/** This is picocli version {@value}. */
- public static final String VERSION = "4.7.4";
+ public static final String VERSION = "4.7.5-SNAPSHOT";
private static final Tracer TRACER = new Tracer();
private CommandSpec commandSpec;
@@ -979,7 +979,7 @@ public CommandLine setStopAtUnmatched(boolean newValue) {
* or whether such values should be rejected with a missing parameter exception.
* The default is {@code false}, so by default input like {@code -x=subcommand} is rejected if {@code -x} is an option that takes a String parameter, and {@code subcommand} is a subcommand of this command.
* @return {@code true} when options can have parameter values that match subcommand names or aliases, {@code false} when such values should be rejected with a missing parameter exception
- * @since 4.7.4
+ * @since 4.7.5-SNAPSHOT
* @see ParserSpec#allowSubcommandsAsOptionParameters()
*/
public boolean isAllowSubcommandsAsOptionParameters() {
@@ -994,7 +994,7 @@ public boolean isAllowSubcommandsAsOptionParameters() {
* subcommands, call the setter last, after adding subcommands.
* @param newValue the new setting. When {@code true}, options can have parameter values that match subcommand names or aliases, when {@code false}, such values are rejected with a missing parameter exception
* @return this {@code CommandLine} object, to allow method chaining
- * @since 4.7.4
+ * @since 4.7.5-SNAPSHOT
* @see ParserSpec#allowSubcommandsAsOptionParameters(boolean)
*/
public CommandLine setAllowSubcommandsAsOptionParameters(boolean newValue) {
@@ -1009,7 +1009,7 @@ public CommandLine setAllowSubcommandsAsOptionParameters(boolean newValue) {
* The default is {@code false}, so by default input like {@code -x=--some-option} is rejected if {@code -x} is an option that takes a String parameter, and {@code --some-option} is an option of this command.
*
This method only considers actual options of this command, as opposed to {@link #isUnmatchedOptionsAllowedAsOptionParameters()}, which considers values that resemble options.
* @return {@code true} when options can have parameter values that match the name of an option in this command, {@code false} when such values should be rejected with a missing parameter exception
- * @since 4.7.4
+ * @since 4.7.5-SNAPSHOT
* @see #isUnmatchedOptionsAllowedAsOptionParameters()
* @see ParserSpec#allowOptionsAsOptionParameters()
*/
@@ -1029,7 +1029,7 @@ public boolean isAllowOptionsAsOptionParameters() {
* subcommands, call the setter last, after adding subcommands.
* @param newValue the new setting. When {@code true}, options can have parameter values that match the name of an option in this command, when {@code false}, such values are rejected with a missing parameter exception
* @return this {@code CommandLine} object, to allow method chaining
- * @since 4.7.4
+ * @since 4.7.5-SNAPSHOT
* @see #setUnmatchedOptionsAllowedAsOptionParameters(boolean)
* @see ParserSpec#allowOptionsAsOptionParameters(boolean)
*/
@@ -4737,7 +4737,7 @@ enum Target {
* Note that picocli cannot reliably detect declaration order in commands that have both {@code @Option}-annotated methods and {@code @Option}-annotated fields.
* The default ({@code true}) is to sort alphabetically.
* @return whether options in the synopsis should be shown in alphabetic order.
- * @since 4.7.4 */
+ * @since 4.7.5-SNAPSHOT */
boolean sortSynopsis() default true;
/** Prefix required options with this character in the options list. The default is no marker: the synopsis
@@ -5033,7 +5033,7 @@ public interface IVersionProvider {
*
*
* The {@link #convert(String)} method of this class always throws an UnsupportedOperationException.
- * @since 4.7.4
+ * @since 4.7.5-SNAPSHOT
*/
public static final class UseDefaultConverter implements ITypeConverter