chore(ci): add Java 25 LTS to CI build matrix - #8015
Conversation
2a00f7a to
d534c9c
Compare
Add Java 25 to the build matrix in build.yml and windows-build.yml to ensure compatibility with the latest LTS release. Also add fail-fast: false to windows-build.yml for consistency with build.yml now that the matrix has multiple entries. Fixes fabric8io#7427
Spock 2.4-M6-groovy-4.0 pulls in Groovy 4.0.26, whose bundled ASM does not support Java 25 class files (major version 69). The stable Spock 2.4-groovy-4.0 release pulls in Groovy 4.0.29 which includes ASM with Java 25 support.
Signed-off-by: Ashish Thakur <ashishth@redhat.com>
d534c9c to
4deae2f
Compare
Signed-off-by: Ashish Thakur <ashishth@redhat.com>
Signed-off-by: Ashish Thakur <ashishth@redhat.com>
Signed-off-by: Ashish Thakur <ashishth@redhat.com>
| <configuration> | ||
| <source>1.8</source> | ||
| <target>1.8</target> | ||
| <proc>full</proc> |
There was a problem hiding this comment.
I think you've mentioned (internally) that this is required by Lombok and JDK23+. Can we add a comment on top of this so we are aware why this was added in case we eventually remove Lombok?
| <plugin> | ||
| <groupId>org.codehaus.mojo</groupId> | ||
| <artifactId>build-helper-maven-plugin</artifactId> | ||
| <executions> | ||
| <execution> | ||
| <id>add-generated-builders-source</id> | ||
| <phase>generate-sources</phase> | ||
| <goals> | ||
| <goal>add-source</goal> | ||
| </goals> | ||
| <configuration> | ||
| <sources> | ||
| <source>${sundrio.generatedBuildersDirectory}</source> | ||
| </sources> | ||
| </configuration> | ||
| </execution> | ||
| </executions> | ||
| </plugin> | ||
| <plugin> | ||
| <groupId>org.apache.maven.plugins</groupId> | ||
| <artifactId>maven-compiler-plugin</artifactId> | ||
| <configuration> | ||
| <annotationProcessorPaths> | ||
| <path> | ||
| <groupId>org.projectlombok</groupId> | ||
| <artifactId>lombok</artifactId> | ||
| <version>${lombok.version}</version> | ||
| </path> | ||
| </annotationProcessorPaths> | ||
| </configuration> | ||
| </plugin> |
There was a problem hiding this comment.
We might not actually need these builders.
Let's make sure that the builders are public API and people downstream are using them.
AFAIR these are just internal wirings to make ConfigBuilder work.
There was a problem hiding this comment.
These builders are not public API, no downstream consumer imports or references the classes directly. However, all of them are required for compilation:
- SundrioConfigFluent / SundrioOpenShiftConfigFluent: superclasses of ConfigFluent and OpenShiftConfigFluent, providing the fluent setter methods that the public builders
inherit. - SundrioConfigBuilder: used internally by
ConfigBuilder.toSundrioConfig()and the Config constructor. - SundrioOpenShiftConfigBuilder: extends SundrioOpenShiftConfigFluent (Sundrio always emits both as a unit for @buildable).
- RequestConfigFluent, LeaderElectionConfigFluent: superclasses that RequestConfigBuilder and LeaderElectionConfigBuilder extend.
- EditableRunConfig: returned by
RunConfigBuilder.build(). - CustomResourceFluent: extended by Tekton's generated CustomResourceBuilder and ResourcesFluent.
In short: they are internal wiring, but none can be removed, they are compile-time dependencies of either public API builders or downstream extension modules.
Signed-off-by: Ashish Thakur <ashishth@redhat.com>
Signed-off-by: Ashish Thakur <ashishth@redhat.com>
Summary
Add full Java 25 LTS build support:
build.ymlandwindows-build.ymlalongside existing LTS versions-proc:none, silently disabling classpath-based annotation processor discovery. This broke both Lombok (@Datagetters/setters) and Sundrio (@BuildableBuilder/Fluent classes) across multiple modules. Fixed by:annotationProcessorPathsto the root pompluginManagement, so all modules get Lombok processing on JDK 23+kubernetes-client-apiandopenshift-client-api(same pattern askubernetes-model-generator), with agenerateprofile for regenerationannotationProcessorPathsincrd-generator/aptwhich explicitly namesBuildableProcessormake generate-modelnow also regenerates builders forkubernetes-client-apiandopenshift-client-apiFixes #7427
Test plan
make quicklysucceeds with JDK 25make generate-modelregenerates builders for kubernetes-client-api and openshift-client-api (requires JDK ≤ 21)