ppkarwasz opened a new pull request, #24:
URL: https://github.com/apache/commons-xml/pull/24
> [!NOTE]
> Stacked on #23. The base branch is `feature/ci-matrix`, so this PR shows
only its own commit. Please merge #23 first; GitHub will then retarget this one
at `main` automatically.
`java.xml` is pure Java, so the OS and JDK axes barely interact. The one
OS-specific behavior this library touches is file URI / systemId normalization
on Windows, which is old, stable code that any single Windows job exercises.
Crossing three OSes with two JDK endpoints therefore spent jobs on combinations
that cannot differ, while leaving the axes that do differ underexplored.
## The new matrix
| OS | Distribution | JDK | Purpose |
|---|---|---|---|
| windows-latest | temurin | 8, 11, 17, 21, 25, 26, 27-ea | JDK majors; also
covers systemId normalization at every version |
| ubuntu-latest | temurin | 25 | Linux canary: case-sensitive filesystem,
and what contributors run |
| ubuntu-latest | semeru | 8, 21 | OpenJ9 class-library lineage |
| ubuntu-latest | zulu | 8.0.201 | A runtime predating the later `jdk.xml.*`
backports |
| ubuntu-latest | graalvm | 25 | Native image, via `-Pnative-xalan` (from
#23) |
Twelve JVM jobs plus the two Android legs, against twenty-one for a full 3x7
matrix, with strictly better coverage of the axes that produce different
results.
## Rationale for the omissions
**macOS** is intentionally dropped: its filesystem is case-insensitive like
Windows and POSIX-pathed like Linux, so it is strictly interior to the other
two. If we want to keep the build verified for Mac-based contributors, a
scheduled weekly macOS job would be enough.
**Corretto, Liberica, Microsoft, SapMachine** track the OpenJDK Updates
projects closely; for `java.xml` purposes they are interchangeable with Temurin.
## Verification
Every distribution and version in the matrix was confirmed to be published
before being added:
- Temurin 26 is GA and 27 has EA builds for windows-x64 (Adoptium API).
- IBM Semeru publishes 8 and 21 (`ibmruntimes/semeru{8,21}-binaries`).
- Zulu 8.0.201 is published for linux x64 (Azul metadata API).
- GraalVM 25 is the latest release; 26 and 27 are not published.
The suite was run locally against the JDK 8 legs, which are the ones most
likely to break: **Temurin 8u492 and IBM Semeru (OpenJ9) 8u412 both BUILD
SUCCESS**, all seven surefire executions green. The GraalVM job's exact command
(`mvn ... -Pnative-xalan test`) also passes locally on GraalVM 21: 123 native
tests, zero failures.
Two legs could not be exercised locally and are first tested by this PR's
own CI run: **Zulu 8.0.201** (no such JDK installed here) and **Semeru 21**.
The Windows jobs likewise run for the first time here; they are the same code
paths as the Linux ones apart from systemId normalization, which is precisely
what they are there to check.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]