This is an automated email from the ASF dual-hosted git repository.
Cole-Greer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/master by this push:
new b99d3bf6a9 CTR Update docs and enforment of java and maven versions
b99d3bf6a9 is described below
commit b99d3bf6a9cd0cfb0242307ff1ef04560271eac9
Author: Cole Greer <[email protected]>
AuthorDate: Wed Oct 14 13:06:55 2026 -0700
CTR Update docs and enforment of java and maven versions
Updates docs and maven-enforcer-plugin config to enforce Java 17+ and
maven 3.6.3+. Both of these requirements are pre-existing in the repo,
this is just updating docs and enforcement to reflect the existing
reality.
---
.skills/tinker-dev/SKILL.md | 2 +-
.skills/tinker-dev/references/dev-environment-setup.md | 4 ++--
.skills/tinker-dev/scripts/check-env.sh | 18 ++++++++++--------
.../src/dev/developer/development-environment.asciidoc | 5 ++++-
pom.xml | 2 +-
5 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/.skills/tinker-dev/SKILL.md b/.skills/tinker-dev/SKILL.md
index ccf0d0728b..ce4a03c43a 100644
--- a/.skills/tinker-dev/SKILL.md
+++ b/.skills/tinker-dev/SKILL.md
@@ -7,7 +7,7 @@ description: >
Covers coding conventions, build recipes, test evaluation, documentation,
development environment setup, and Gremlin MCP server usage.
license: Apache-2.0
-compatibility: Requires Java 11+, Maven 3.5.3+, Docker. Individual GLVs may
need Python, Node.js, .NET SDK, or Go.
+compatibility: Requires Java 17, 21, or 25, Maven 3.6.3+, Docker. Individual
GLVs may need Python, Node.js, .NET SDK, or Go.
metadata:
version: 1.0.0
project: Apache TinkerPop
diff --git a/.skills/tinker-dev/references/dev-environment-setup.md
b/.skills/tinker-dev/references/dev-environment-setup.md
index 6e5ce1c880..15e3229525 100644
--- a/.skills/tinker-dev/references/dev-environment-setup.md
+++ b/.skills/tinker-dev/references/dev-environment-setup.md
@@ -7,10 +7,10 @@ The canonical reference is
`docs/src/dev/developer/development-environment.ascii
### Minimum (Java-only build)
-- **Java 11 or 17** — OpenJDK recommended. Use [SDKMAN!](https://sdkman.io/)
to manage versions.
+- **Java 17, 21, or 25** — Java 17 is the minimum; 21 and 25 are the other
supported LTS releases. OpenJDK recommended. Use [SDKMAN!](https://sdkman.io/)
to manage versions.
Note: some deep reflection requires `--add-opens` JVM options, which are
already configured
in the pom files.
-- **Maven 3.5.3+** — also manageable via SDKMAN.
+- **Maven 3.6.3+** — also manageable via SDKMAN.
With just Java and Maven you can build JVM modules and get a clean `mvn clean
install`, but
GLV builds and many integration tests will be skipped.
diff --git a/.skills/tinker-dev/scripts/check-env.sh
b/.skills/tinker-dev/scripts/check-env.sh
index ebe8db1cd8..f2c00f7914 100755
--- a/.skills/tinker-dev/scripts/check-env.sh
+++ b/.skills/tinker-dev/scripts/check-env.sh
@@ -44,23 +44,25 @@ echo ""
echo "Core prerequisites:"
if command -v java &>/dev/null; then
java_version=$(java -version 2>&1 | head -1 | sed 's/.*"\(.*\)".*/\1/' |
cut -d. -f1)
- if [[ "$java_version" -eq 11 || "$java_version" -eq 17 ]]; then
- ok "Java $java_version (11 or 17 required)"
- elif [[ "$java_version" -gt 17 ]]; then
- bad "Java $java_version found — only Java 11 or 17 are supported (use
sdkman.io to switch)"
+ if [[ "$java_version" -eq 17 || "$java_version" -eq 21 || "$java_version"
-eq 25 ]]; then
+ ok "Java $java_version (17, 21, or 25 supported)"
+ elif [[ "$java_version" -gt 17 && "$java_version" -lt 26 ]]; then
+ skip "Java $java_version found — the build accepts 17 through 25, but
only the LTS releases 17, 21 and 25 are supported"
+ elif [[ "$java_version" -ge 26 ]]; then
+ bad "Java $java_version found — Java 17 through 25 required (use
sdkman.io to switch)"
else
- bad "Java $java_version found — version 11 or 17 required (use
sdkman.io to install)"
+ bad "Java $java_version found — Java 17, 21, or 25 required (use
sdkman.io to install)"
fi
else
- bad "Java not found — install Java 11 or 17 (use sdkman.io)"
+ bad "Java not found — install Java 17, 21, or 25 (use sdkman.io)"
fi
# --- Maven ---
if command -v mvn &>/dev/null; then
mvn_version=$(mvn --version 2>/dev/null | head -1 | grep -oE
'[0-9]+\.[0-9]+\.[0-9]+' | head -1)
- ok "Maven $mvn_version (3.5.3+ required)"
+ ok "Maven $mvn_version (3.6.3+ required)"
else
- bad "Maven not found — install Maven 3.5.3+ (try sdkman.io)"
+ bad "Maven not found — install Maven 3.6.3+ (try sdkman.io)"
fi
# --- Docker ---
diff --git a/docs/src/dev/developer/development-environment.asciidoc
b/docs/src/dev/developer/development-environment.asciidoc
index 43aba9a4da..88a49c70ae 100644
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@ -33,7 +33,7 @@ At a minimum, development of TinkerPop requires
link:https://openjdk.org/project
also run on link:https://openjdk.org/projects/jdk/21/[Java 21] and
link:https://openjdk.org/projects/jdk/25/[Java 25].
Note, however, that there are some issues with deep reflection
so there are `--add-opens` JVM options included in the pom files to enable
this to work. Maven (requiring a minimum of
-link:https://maven.apache.org/download.cgi[Maven 3.5.3+]) is used as the
common build system, which even
+link:https://maven.apache.org/download.cgi[Maven 3.6.3+]) is used as the
common build system, which even
controls the builds of non-JVM
link:https://tinkerpop.apache.org/docs/x.y.z/reference/#gremlin-drivers-variants[GLVs]
such as `gremlin-python`. Java and Maven are described as a "minimum" for a
development environment, because they
will only build JVM portions of TinkerPop and many integration tests will not
fire with this simple setup. It is
@@ -125,6 +125,9 @@ Gremlin Console subprocess, and renders the console output
as tabbed HTML. The o
distributions, installs the required plugins into the console, starts a
Gremlin Server (for the `:remote` examples) and
a Gephi mock, then invokes Maven to run the extension. Javadocs should be
built using Java 17.
+NOTE: Documentation generation uses the `asciidoctor-maven-plugin`, which
requires link:https://maven.apache.org/download.cgi[Maven 3.8.8+],
+newer than the Maven 3.6.3 minimum for the rest of the build.
+
The `docs/tinkeradoc-extension` project is a standalone Maven project rather
than a module of the root reactor, so a
`mvn clean install` from the project root does not build it. It must be built
and installed into the local repository
before generating documentation -- both because the `asciidoctor-maven-plugin`
consumes it as a plugin dependency and
diff --git a/pom.xml b/pom.xml
index 5d556aceee..1eb3cdd928 100644
--- a/pom.xml
+++ b/pom.xml
@@ -262,7 +262,7 @@ limitations under the License.
<version>[17,26)</version>
</requireJavaVersion>
<requireMavenVersion>
- <version>[3.5.3,)</version>
+ <version>[3.6.3,)</version>
</requireMavenVersion>
</rules>
</configuration>