Conversation
There was a problem hiding this comment.
Pull request overview
This PR modernizes the project’s test execution and Maven build configuration by moving TestNG execution under an explicit suite definition and updating build/plugin settings in pom.xml.
Changes:
- Add a
testng.xmlsuite file and configure Surefire to run tests via that suite. - Ensure a
@BeforeSuitehook always runs to print the test JVM/version details. - Modernize/align
pom.xmlplugin versions and build configuration; remove the VS Code workspace file from the repo.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/test/resources/testng.xml | Introduces a TestNG suite definition used to drive test discovery/execution. |
| src/test/java/org/apache/datasketches/memory/internal/A_BeforeSuite.java | Forces the environment-printing @BeforeSuite hook to always run. |
| pom.xml | Updates Maven/TestNG/plugin versions, refactors JVM arg properties, and wires Surefire to testng.xml. |
| DS-Java-Memory-24.code-workspace | Removes an editor workspace file from version control. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This /main/ branch is basically a Java 25 extension of the DS-Memory 6.0.0 API, which required Java 21.
You must use Java 25 to compile and run this, but the API is very similar to the API used in DS-Memory 6.0.0.
These updates to /main/ do the following:
I am moving to a new CI Architecture to reduce duplication of the GHA workflows across main and the release branches. It is taking advantage of the "Reusable Workflows" feature of GHA. Right now it is only implemented for the "auto-jdk-os-matrix" workflow. If successful, we can extend it to other workflows and also to other repositories.
Technical Advantages of the New CI Architecture
Single Source of Truth: Centralizing logic in the workflows branch eliminates the need to "cherry-pick" CI fixes across multiple legacy release branches (Java 8, 11, 17, 21, 25, etc.).
Multi-Branch Versioning: The reusable-jdk-os-matrix.yml uses a dual-checkout strategy. It pulls the specific Java source code from the target branch while simultaneously pulling the latest CI logic from the workflows branch.
Architecture-Aware Testing: The new matrix logic explicitly passes java_arch, ensuring compatibility as the project transitions toward ARM-based runners (AArch64) alongside standard x64.
Fail-Safe Observability: Debugging steps (like printing the current workflow) use continue-on-error: true. This prevents non-critical "print" failures from blocking the primary Maven test results.
Reduced CI Technical Debt: By decoupling the parameters (JDK version, OS) in the caller from the execution (Maven lifecycle) in the reusable engine, we ensure that infrastructure updates (like migrating to newer GitHub Actions versions) only need to be performed once.