Compatibility¶
polyglot-adapter spans API modules, runtime modules, build tools, maintained samples, and CI.
This page defines what the repository currently verifies, what is only a target, and what must
change before stronger support claims are made.
Current Verified Support¶
The current 0.3.1-SNAPSHOT repository line verifies the following:
- Maven wrapper and CI workflows on Maven 3.9+
- pinned local SDKMAN runtime: Java
25-graalce - repository minimum Java version: 21
- root CI baseline workflow on Java 21
- root CI runtime workflow on GraalVM JDK 25
- all modules compiled with
maven.compiler.release=21 - root enforcer minimum Java version: 21
- GraalVM dependency line:
25.0.2 - Spring Boot repository dependency-management line:
4.0.4 - maintained Spring sample currently aligned to Spring Boot
4.0.4 - maintained sample smoke verification on GraalVM JDK 25 for:
samples/java-maven-examplesamples/java-maven-codegen-examplesamples/spring-boot-example
This means the repository currently carries a unified minimum Java baseline with two exercised verification lines:
- Java 21 as the repository minimum compile baseline
- Java 25 / GraalVM 25.x as the currently exercised runtime and maintained-sample verification line
It now verifies the current Spring Boot 4.0.4 line through the starter tests and the maintained Spring sample.
The repository root pins the expected local Java runtime in .sdkmanrc. For
runtime work, maintained samples, and full test execution, contributors are expected to run
sdk env before using the Maven wrapper.
Current Verified Ranges And Caveats¶
| Area | Current verified line | Evidence in repository | Notes |
|---|---|---|---|
| Maven | 3.9+ | root enforcer and wrapper usage | Release and CI assume the wrapper |
| Java minimum for repository modules | 21 | root pom.xml, module POMs, Java 21 CI build |
The repository contract now uses Java 21 as the minimum baseline |
| Java runtime verification line | 25 | .sdkmanrc, GraalVM 25 CI runtime job, sample verification on 25 |
GraalVM 25.x remains the current verified runtime lane |
| GraalVM runtime deps | 25.0.2 | root dependency management, sample POMs, sample workflows | Current maintained runtime line |
| Spring Boot starter line | 4.0.4 | root dependency management, starter tests, maintained Spring sample | Verified in the current repository line, not a broad historical range claim |
| Maintained sample smoke verification | Java 25 / GraalVM 25 | samples.yml, sample POMs |
Samples are verification inputs, not independent support guarantees |
Target Support, Not Yet Verified¶
The stabilization path toward 1.0.0 may still aim for:
- broader Spring Boot compatibility claims beyond the currently verified
4.0.4line
This remains a target only. It should not be described as supported until the repository actually verifies it.
What Should Not Yet Be Claimed¶
Do not currently claim:
- a broad Spring Boot 4.x compatibility range beyond the currently verified
4.0.4line - Spring Boot 3.x support
- support for GraalVM lines other than the currently exercised 25.x line
- broad runtime verification on Java lines other than the currently exercised 25 line
Do not infer support from:
- successful local builds on one contributor machine
- sample existence by itself
- code that looks source-compatible without CI verification
Experimental And Unsupported Surface¶
- JavaScript runtime binding remains experimental and should not be used to broaden compatibility claims for the Python-first stable path
- JavaScript code generation remains unsupported
- unsupported runtime areas such as hot reload or multi-version source isolation are not part of compatibility promises
Compatibility Contract¶
- The root build must keep explicit Maven plugin versions and reproducible build settings.
- Public artifacts in
api/and stable runtime modules should preserve backward compatibility within a minor release line unless release notes state otherwise. - Samples are reference verification inputs, not compatibility guarantees by themselves.
- Experimental or incubating APIs should be documented as such before release.
- Support claims must follow verified automation, not aspiration.
Current Java Support Story¶
- The repository minimum Java baseline is 21.
- Repository modules compile against Java 21.
- Runtime execution, starter verification, and maintained samples are currently exercised on GraalVM JDK 25.
- Java 25 remains the pinned local SDKMAN runtime for full repository work because it matches the current verified GraalVM runtime line.
When You Change the Baseline¶
If you raise or lower any supported version:
- Update the root
pom.xmlproperties and enforcer rules. - Update
README.md. - Update CI workflows under
.github/workflows/. - Update sample applications affected by the change.
- Call out the compatibility change in release notes and changelog entries.
- Update this page to distinguish the new verified support from any still-unverified targets.