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]

Reply via email to