diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d7389c475..66a45bb5d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,13 +32,18 @@ jobs: - name: Verify tag state id: version run: | + version=${GITHUB_REF#refs/tags/} + if [[ "$version" == *-* ]]; then + echo "Tag '$version' is not a release version (contains '-'), skipping" + exit 1 + fi git fetch --tags echo "All recent tags:" git tag -l --sort=version:refname | head -5 echo "Current commit: $(git rev-parse HEAD)" echo "Git describe: $(git describe --tags --always)" - echo "Tag: ${GITHUB_REF#refs/tags/}" - echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + echo "Tag: $version" + echo "version=$version" >> $GITHUB_OUTPUT - name: Setup Java uses: actions/setup-java@v5 @@ -63,7 +68,7 @@ jobs: MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} MVX_USE_SYSTEM_JAVA: true run: | - ./mvx mvn -- -B deploy -Dnjord.autoPublish -Pbundle,javadoc,format-check,sign -s .github/release-settings.xml + ./mvx mvn -B deploy -Dnjord.autoPublish -Pbundle,javadoc,format-check,sign -s .github/release-settings.xml - name: Post release env: @@ -103,7 +108,7 @@ jobs: exit 1 fi - name=$(./mvx mvn -- -q -DforceStdout --raw-streams help:evaluate -N -Dexpression=project.name) + name=$(./mvx mvn -B -q -DforceStdout --raw-streams help:evaluate -N -Dexpression=project.name) version=${{ steps.version.outputs.version }} echo "Creating release \"$name $version\" from tag" gh release create $version --verify-tag --notes-from-tag --title "$name $version" diff --git a/.gitignore b/.gitignore index 7a74f903e..516498b70 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ build.rc .mvn/wrapper/maven-wrapper.jar .dependency-reduced-pom.xml +.flattened-pom.xml diff --git a/.mvn/maven.config b/.mvn/maven.config new file mode 100644 index 000000000..7dc73fb29 --- /dev/null +++ b/.mvn/maven.config @@ -0,0 +1 @@ +-Dnisse.source.jgit.dynamicVersion=true diff --git a/.mvn/nisse-translation.properties b/.mvn/nisse-translation.properties new file mode 100644 index 000000000..3a59440b7 --- /dev/null +++ b/.mvn/nisse-translation.properties @@ -0,0 +1,2 @@ +jgit.dynamicVersion=revision,+fallback +jgit.dateIso8601=nisse.jgit.dateIso8601 diff --git a/.mvx/config.json5 b/.mvx/config.json5 index 85c508501..548963bdf 100644 --- a/.mvx/config.json5 +++ b/.mvx/config.json5 @@ -10,7 +10,7 @@ distribution: "temurin", }, maven: { - version: "4.0.0-rc-5", + version: "3.9.14", }, node: { version: "20", diff --git a/README.md b/README.md index 549b39282..5e84368f0 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ JLine is a Java library for handling console input. It's similar to [GNU Readlin ## Requirements - **Java 11 or higher**: JLine 4.x requires Java 11 as the minimum runtime version -- **Maven 4.0 or higher**: JLine 4.x requires Maven 4.0+ for building from source -- **Note**: JLine 3.x supports Java 8+ and Maven 3.x+, but JLine 4.x requires Java 11+ and Maven 4.0+ +- **Maven 3.9 or higher**: JLine 4.x requires Maven 3.9+ for building from source +- **Note**: JLine 3.x supports Java 8+ and Maven 3.x+, but JLine 4.x requires Java 11+ and Maven 3.9+ ## Features diff --git a/builtins/pom.xml b/builtins/pom.xml index 112d89e32..229062524 100644 --- a/builtins/pom.xml +++ b/builtins/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-builtins JLine Builtins @@ -22,9 +28,11 @@ + org.jline jline-reader + org.jline jline-style diff --git a/console-ui/pom.xml b/console-ui/pom.xml index ec7b94921..8f68dd6b3 100644 --- a/console-ui/pom.xml +++ b/console-ui/pom.xml @@ -1,7 +1,13 @@ - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-console-ui JLine Console UI (Deprecated) @@ -13,6 +19,7 @@ + org.jline jline-builtins diff --git a/console/pom.xml b/console/pom.xml index b9e74268b..4a35c3f1c 100644 --- a/console/pom.xml +++ b/console/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-console JLine Console @@ -30,6 +36,7 @@ jline-builtins + org.jline jline-style diff --git a/demo/pom.xml b/demo/pom.xml index 702e4a780..61fa2f4a2 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-demo JLine Demo @@ -22,6 +28,7 @@ + org.jline jline-terminal-ffm @@ -29,6 +36,7 @@ jline-terminal-jni + org.jline jline-reader @@ -36,9 +44,11 @@ jline-builtins + org.jline jline-console + org.jline jline-shell @@ -58,9 +68,11 @@ jline-remote-telnet + org.jline jline-style + org.jline jline-groovy @@ -135,6 +147,7 @@ + org.jline jline-picocli diff --git a/graal/pom.xml b/graal/pom.xml index 666784f0c..cf16c10a9 100644 --- a/graal/pom.xml +++ b/graal/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-graal JLine Native Demo @@ -22,6 +28,7 @@ + org.jline jline-shell diff --git a/groovy/pom.xml b/groovy/pom.xml index 16ef3f594..93e121b9d 100644 --- a/groovy/pom.xml +++ b/groovy/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-groovy JLine Groovy @@ -21,6 +27,7 @@ + org.jline jline-console diff --git a/jansi-core/pom.xml b/jansi-core/pom.xml index fb3d0d2df..be000e91b 100644 --- a/jansi-core/pom.xml +++ b/jansi-core/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jansi-core Jansi Core diff --git a/jansi/pom.xml b/jansi/pom.xml index bb2af7c7d..861dc5eb8 100644 --- a/jansi/pom.xml +++ b/jansi/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jansi Jansi Bundle @@ -27,6 +33,7 @@ test + org.jline jline-terminal test @@ -36,6 +43,7 @@ test + org.jline jansi-core test diff --git a/jline/pom.xml b/jline/pom.xml index 80737fee7..f1bdf5d71 100644 --- a/jline/pom.xml +++ b/jline/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline JLine Bundle @@ -52,6 +58,7 @@ true + org.jline jline-terminal test @@ -62,10 +69,12 @@ + org.jline jline-terminal-ffm test + org.jline jline-reader test @@ -75,10 +84,12 @@ test + org.jline jline-shell test + org.jline jline-console test @@ -93,6 +104,7 @@ test + org.jline jline-style test @@ -102,6 +114,7 @@ test + org.jline jansi-core test diff --git a/native/pom.xml b/native/pom.xml index bcf0570b1..1c78f9849 100644 --- a/native/pom.xml +++ b/native/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-native jar diff --git a/picocli/pom.xml b/picocli/pom.xml index 524d81dc0..33eb1bd11 100644 --- a/picocli/pom.xml +++ b/picocli/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-picocli JLine Picocli @@ -21,9 +27,11 @@ + org.jline jline-console + org.jline jline-shell diff --git a/pom.xml b/pom.xml index 380b3899f..c80187e63 100644 --- a/pom.xml +++ b/pom.xml @@ -9,11 +9,13 @@ https://opensource.org/licenses/BSD-3-Clause --> - + + + 4.0.0 org.jline jline-parent - ${nisse.jgit.dynamicVersion} + ${revision} pom JLine JLine @@ -48,10 +50,31 @@ + + native + terminal + terminal-ffm + terminal-jni + reader + shell + builtins + console-ui + prompt + console + picocli + groovy + remote-ssh + remote-telnet + style + demo + graal + jansi-core + + scm:git:https://github.com/jline/jline3.git scm:git:https://github.com/jline/jline3.git - ${nisse.jgit.dynamicVersion} + HEAD https://github.com/jline/jline3 @@ -79,7 +102,7 @@ 22 11 - 4.0.0-rc-3 + 3.9.0 true @@ -107,6 +130,87 @@ + + org.jline + jline-native + ${project.version} + + + org.jline + jline-terminal + ${project.version} + + + org.jline + jline-terminal-ffm + ${project.version} + + + org.jline + jline-terminal-jni + ${project.version} + + + org.jline + jline-reader + ${project.version} + + + org.jline + jline-shell + ${project.version} + + + org.jline + jline-builtins + ${project.version} + + + org.jline + jline-console-ui + ${project.version} + + + org.jline + jline-prompt + ${project.version} + + + org.jline + jline-console + ${project.version} + + + org.jline + jline-picocli + ${project.version} + + + org.jline + jline-groovy + ${project.version} + + + org.jline + jline-remote-ssh + ${project.version} + + + org.jline + jline-remote-telnet + ${project.version} + + + org.jline + jline-style + ${project.version} + + + org.jline + jansi-core + ${project.version} + + org.fusesource.jansi jansi @@ -547,6 +651,32 @@ com.diffplug.spotless spotless-maven-plugin + + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + resolveCiFriendliesOnly + + + + flatten + + flatten + + process-resources + + + flatten.clean + + clean + + clean + + + @@ -558,6 +688,10 @@ !nobundle + + jline + jansi + @@ -574,10 +708,6 @@ - - jline - jansi - @@ -657,25 +787,4 @@ - - native - terminal - terminal-ffm - terminal-jni - reader - shell - builtins - console-ui - prompt - console - picocli - groovy - remote-ssh - remote-telnet - style - demo - graal - jansi-core - - diff --git a/prompt/pom.xml b/prompt/pom.xml index 22cf94b14..8b6349858 100644 --- a/prompt/pom.xml +++ b/prompt/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-prompt JLine Prompt diff --git a/reader/pom.xml b/reader/pom.xml index edce9ca3b..09b1c68b4 100644 --- a/reader/pom.xml +++ b/reader/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-reader JLine Reader diff --git a/remote-ssh/pom.xml b/remote-ssh/pom.xml index 2983f2061..022dfe124 100644 --- a/remote-ssh/pom.xml +++ b/remote-ssh/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-remote-ssh JLine Remote SSH diff --git a/remote-telnet/pom.xml b/remote-telnet/pom.xml index cd4a4a7b7..67d18e870 100644 --- a/remote-telnet/pom.xml +++ b/remote-telnet/pom.xml @@ -9,15 +9,22 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-remote-telnet JLine Remote Telnet + org.jline jline-builtins diff --git a/shell/pom.xml b/shell/pom.xml index a4329d07a..e545c3982 100644 --- a/shell/pom.xml +++ b/shell/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-shell JLine Shell diff --git a/style/pom.xml b/style/pom.xml index be0f5d7c6..86ce975d3 100644 --- a/style/pom.xml +++ b/style/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-style JLine Style diff --git a/terminal-ffm/pom.xml b/terminal-ffm/pom.xml index 103746a07..22291efe9 100644 --- a/terminal-ffm/pom.xml +++ b/terminal-ffm/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-terminal-ffm JLine FFM Terminal diff --git a/terminal-jni/pom.xml b/terminal-jni/pom.xml index 0603f8685..7ece2a963 100644 --- a/terminal-jni/pom.xml +++ b/terminal-jni/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-terminal-jni JLine JNI Terminal @@ -22,10 +28,12 @@ + org.jline jline-native + org.jline jline-terminal diff --git a/terminal/pom.xml b/terminal/pom.xml index e8efae7e3..f11186b75 100644 --- a/terminal/pom.xml +++ b/terminal/pom.xml @@ -9,9 +9,15 @@ https://opensource.org/licenses/BSD-3-Clause --> - + - + 4.0.0 + + + org.jline + jline-parent + ${revision} + jline-terminal JLine Terminal