Commits
Tarun Sukhani authored 596e64a3fea
feat: upgrade to JUnit 6.0.3 (PF-89, release 1.12.40)
PF-89 Phase A assessment + Phase B mechanical bump in one ticket.
The framework was already on Jupiter 5.13.4 + Platform 1.13.4 with zero
JUnit 4 / Vintage on the framework classpath. JUnit 6.0 unifies Jupiter,
Platform, and Vintage onto a single shared version (6.0.x) and raises
the Java baseline to 17 — both met by the existing JDK 25 toolchain.
The Jupiter Extension API (BeforeAllCallback, BeforeEachCallback,
TestExecutionExceptionHandler, ExtensionContext.getRequiredTestClass)
and Platform Launcher API (Launcher, LauncherFactory,
LauncherDiscoveryRequestBuilder, TestExecutionListener, TestIdentifier,
TestExecutionResult, DiscoverySelectors.selectClass) used by
play.test.{BaseTest, FunctionalTest, PlayJUnitExtension, TestEngine}
are unchanged across 5.13 → 6.0, so the framework recompiles and runs
unchanged.
Phase A — assessment
* documentation/assessments/PF-89-junit-6-upgrade.md — 250-line written
assessment covering all six investigation items the ticket required:
current pin, custom test base class audit, CLI + ant entry-point map,
test-runner template review, downstream impact (jclaw + framework
test-src), and companion dependency compatibility matrix. Recommended
path: mechanical bump. Rejects layered-shim and full-restructure paths
with evidence.
Phase B — implementation
* framework/dependencies.yml — six version-string changes:
- junit-jupiter-{api,engine,params} 5.13.4 → 6.0.3
- junit-platform-{launcher,engine,commons} 1.13.4 → 6.0.3
Comment block points at the assessment doc for the audit trail.
* framework/lib/ — 6 jars swapped via `ant resolve -Dprune=true`.
No production Java source touched (the assessment proved none was
needed).
* documentation/manual/releases/release1.12.x/releasenotes-1.12.0.textile
— adds h4 1.12.40 PF-89 subsection documenting the bump and the
one-line downstream alignment requirement for consumers using
junit-vintage-engine (e.g. jclaw must bump its vintage pin from 5.14.4
to 6.0.3 to stay aligned with the framework's new Platform version;
app-side jupiter test code unchanged).
Verification: ant test green — unit tests, 22 integration tests, and
29 CLI tests all pass on the rebuilt JUnit 6.0.3 classpath. PF-80
consolidated `test` target intact.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>