Skip to content

Upgrade project to use Gradle 9.0.0#57

Open
lkasso wants to merge 3 commits intoapache:masterfrom
lkasso:master
Open

Upgrade project to use Gradle 9.0.0#57
lkasso wants to merge 3 commits intoapache:masterfrom
lkasso:master

Conversation

@lkasso
Copy link
Copy Markdown

@lkasso lkasso commented Apr 7, 2026

Update taspestry-5 to use Gradle 9.0.0 instead of Gradle 8.14.3.

Summary

  • Replace SourceTask base class in GenerateChecksums with DefaultTask + ConfigurableFileCollection (abstract method added in Gradle 9)
  • Disable failOnNoDiscoveredTests globally for subprojects with test sources but no test classes (e.g. tapestry-openapi-viewer, tapestry-rest-jackson)
  • Some other minor syntactical changes in build files

Test plan

  • ./gradlew build compiles and passes on Gradle 9.0.0

@benweidig
Copy link
Copy Markdown
Contributor

Hi @lkasso,
Thanks for the PR!

We really appreciate the Gradle team taking an interest in keeping Tapestry's build up to date!
Eventually, we want to migrate to Gradle 9, but the timing isn't quite right for us (yet).

Here's our reasoning:

We are in the final sprint of a significant revamp of our Gradle setup for the next Tapestry version, planned to be released soon.
The switch to Gradle 8, conventions, and other changes was a substantial effort, and we're still in the stabilization phase, addressing minor issues that only surface over time with real-world usage. Taking on another major build system change at this time would be premature.

Besides Gradle, we also revamped our CI approach as a whole, using Jenkins multi-branch pipeline matrix builds.
Given Tapestry's bytecode manipulation via Plastic/ASM, we always tested on the actual supported JDKs (minimum 8/11).

Gradle 9 requiring JDK 17+ as the runtime means we'd need to adopt toolchains to keep testing on lower JDK versions. We're aware toolchains can solve this automatically, but we have so far no experience on it, ecspecially on the Apache CI system. We'd want to rely on auto-discovery rather than Foojay auto-provisioning on shared build nodes, so this investigation deserves its own focused effort.

Our plan is to use the current stabilization period to research and prototype the toolchain setup against local CI infrastructure for faster iteration times and if we're sure about it, against Apache's CI infrastructure, so that when we do target Gradle 9 (which we're currently planning for 5.11, the release after next), we can do it properly and completely.

We will keep this PR open as a reference and starting point for that future work.
And of course, any further collaboration/guidance on the toolchain migration is very welcome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants