Verify the plugin still compiles against its declared prerequisite - #1683
Closed
slachiewicz wants to merge 1 commit into
Closed
Verify the plugin still compiles against its declared prerequisite#1683slachiewicz wants to merge 1 commit into
slachiewicz wants to merge 1 commit into
Conversation
slachiewicz
force-pushed
the
ci-verify-maven-baseline
branch
from
August 10, 2026 07:51
bff0641 to
f4796b7
Compare
Member
Author
|
Taking the first option: the fix is #1684, separately labelled so it lands in the release notes as a bug rather than under build. This job goes green once that merges; keeping it draft until then. Checked that neither PR conflicts with #1680 — the file sets are disjoint, and #1680 compiles clean against the 3.6.3 baseline, so this job will not turn it red. |
The verify matrix runs current Maven only, so nothing exercises the 3.6.3 baseline that <prerequisites> claims. Compiling main and test sources against it catches API drift for a fraction of the cost of a test run. The build runs `clean` first. Without it the compiler reports "Nothing to compile - all classes are up to date" against a target/ populated by an earlier build, and the job passes green without having compiled anything at all. The job is expected to fail until #1682 is fixed: RenderDependenciesMojo uses MojoExecutionException(Throwable), which Maven added in 3.9.0. Generated-by: Claude Opus 5 (1M context)
slachiewicz
force-pushed
the
ci-verify-maven-baseline
branch
from
August 10, 2026 21:52
f4796b7 to
1f6d8ba
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a CI job that compiles main and test sources against the Maven version
<prerequisites>declares, so the plugin's supported baseline is actually tested.test-compilerather thanverifyon purpose: API drift is a compile-time property, socompiling both source roots is sufficient, and it avoids the cost of a second full test run.
It builds with the normal CI Maven — only the
${mavenVersion}dependency stack moves — sothe inherited
requireMavenVersion(3.9) is unaffected.cleanis load-bearing. Without it the compiler reports "Nothing to compile - all classes areup to date" against a
target/left by an earlier step, and the job passes green havingcompiled nothing against the baseline.
Rebased onto master now that #1684 has landed, so the job is green. It was red before that fix,
which was the point — see #1682.
Why the existing checks missed the drift
3.10.0-rc-1and4.0.0-rc-6; 3.6.3 is never built.requireMavenVersionconstrains the Maven that builds the project, not the API level itcompiles against.
jdeps -verbose:class) reports it clean —MojoExecutionExceptionexists in both versions and only the constructor differs. Catching itneeds a member-level check, which is what compiling gives you.
Known gap, deliberately not closed here
<resolverVersion>moves independently of<mavenVersion>, andmaven-resolver-apiisprovidedscope. So under Maven 3.6.3 the plugin runs against the resolver 1.4.1 that Mavenships, while this job still compiles it against 1.9.25 — the same drift class, still unguarded.
Adding
-DresolverVersion=1.4.1costs nothing today: both master and #1680 compile cleanagainst it. Left out to keep this PR to a single change; happy to fold it in if preferred.
Drafted with Claude — please verify