Repository navigation
Upgrade 8.x+ to Gradle 9.9.0 - #16888
Open
codeconsole wants to merge 3 commits into
Open
codeconsole wants to merge 3 commits into
codeconsole wants to merge 3 commits into
Conversation
Regenerates the wrappers with gradle -p gradle-bootstrap running on 9.9.0, because the wrapper task copies the jar from the Gradle that runs it. The jar matches Gradle's published gradle-9.9.0-wrapper.jar.sha256; gradlew and gradlew.bat are unchanged. The legacy Grails 7 fixture stays on Gradle 8.14.6. Its generated properties gain networkTimeout, retries and retryBackOffMs, which a Wrapper task declared in a build script writes from 9.9.0 on.
Forge's generated-app wrapper jar was still the one from Gradle 9.8.0, because the 9.8.1 and 9.8.2 bumps moved only the properties template. It now matches the jar every other tree carries.
Moves the agent guide and skills to 9.9.0. The gradle-developer skill also says to run the bootstrap on the new Gradle, since an older one writes its own wrapper jar, and points at the block that holds the configuration cache report data, which 9.9.0 moved.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 8.0.x #16888 +/- ##
================================================
+ Coverage 0 62.3257% +62.3257%
- Complexity 0 27272 +27272
================================================
Files 0 2248 +2248
Lines 0 111466 +111466
Branches 0 20419 +20419
================================================
+ Hits 0 69472 +69472
- Misses 0 32652 +32652
- Partials 0 9342 +9342 🚀 New features to boost your workflow:
|
codeconsole
requested review from
jamesfredley,
jdaugherty,
matrei and
sbglasius
and removed request for
jdaugherty
November 7, 2026 03:41
✅ All tests passed ✅🏷️ Commit: 7317b8b Learn more about TestLens at testlens.app/docs. |
sbglasius
approved these changes
Nov 7, 2026
sbglasius
left a comment
Contributor
There was a problem hiding this comment.
This an AI assisted review
LGTM. A tidy, complete version bump.
What I checked on the PR head:
- No stale versions left.
git grepfor9.8.x,9.8.<n>andgradle-9.8across the tree (not counting jars) returns nothing..sdkmanrc,gradleToolingApiVersion, everydistributionUrl(root,build-logic,grails-gradle,grails-forge,end-to-end, both profile skeletons, thegrails-shell-clifixture) and the Forge Rocker template all say 9.9.0. - Wrapper jars are consistent. All 10
gradle-wrapper.jarfiles hash to621008af…, which matches Gradle's published 9.9.0 checksum. That includes the Forge generated-app copy that was still on the 9.8.0 jar. Good catch. - Docs follow automatically.
requirements.adocuses{gradleVersion}, whichgrails-doc/build.gradletakes fromgradle.gradleVersion, so the guide needs no manual edit. The "Gradle 9.7 or later" minimum inupgrading80x.adocis still correct. - Legacy G7 fixture. It stays on 8.14.6. The new
networkTimeout,retriesandretryBackOffMsentries match the values in the other wrappers. - CI: 90 checks pass, and the rest are skipped publish/benchmark jobs.
One nit, not blocking:
.agents/skills/gradle-developer/SKILL.md: the comment onsdk env installsays it "installs and selects" the versions. Please check that it also switches the current shell to them. If it only installs them, add asdk envline so the nextgradle -p gradle-bootstrapruns on 9.9.0. Otherwise it would run on the old Gradle, which is the exact jar mismatch this step warns about.
The merge-up note about gradleWrapperProperties.gsp on 8.1.x+ is useful. Thanks for spelling it out.
This branch has not been deployed
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.
Moves the 8.0.x build, and the wrapper in newly generated applications, from Gradle 9.8.2 to 9.9.0.
Release notes: https://docs.gradle.org/9.9.0/release-notes.html
Upgrade notes: https://docs.gradle.org/9.9.0/userguide/upgrading_version_9.html
What changed
gradle -p gradle-bootstraprunning on 9.9.0 (root,grails-gradle,grails-forge,end-to-end).build-logic, thegrails-profilesskeletons, thegrails-shell-cligradle-sample fixture and Forge's generated-app assets, which bootstrap does not reach, were refreshed from the same output. Everygradle-wrapper.jarmatches Gradle's publishedgradle-9.9.0-wrapper.jar.sha256(621008af…).gradlew/gradlew.batare unchanged.gradle-wrapper.jarwas still the 9.8.0 jar, because the 9.8.1 bump, which changed the jar, did not reach this copy. New applications now get the same jar as every other tree.end-to-end/legacy-g7-command-pluginstays on Gradle 8.14.6, still the latest 8.14 release. Its wrapper jar follows bootstrap as usual. Its properties gainnetworkTimeout,retriesandretryBackOffMs, which 9.9.0 writes for aWrappertask declared in a build script, with the values the other wrappers already have. Its./gradlew jarpasses on JDK 17..sdkmanrc,gradleToolingApiVersion, Forge'sgradleWrapperProperties.rocker.rawtemplate,AGENTS.mdand thegradle-developerandgrails-8-upgradeskills move to 9.9.0. The "keep this synced" header comments the Wrapper task strips from the properties files were restored.gradle-developerskill now says to run bootstrap on the new Gradle, because thewrappertask copies the jar from the Gradle that runs it. It also points at the<script type="application/json" id="diagnostics">block of the configuration cache report, since 9.9.0 removed the// begin-report-datamarkers.Gradle 9.9.0 still embeds Groovy 4.0.33, so
gradle-groovy.versiondoes not change. Its embedded Kotlin moves to 2.4.21, which nothing in this repository pins.Publishing
Release-mode dry run of 8.0.x (
abb5890cf2) against this branch, publishing toTestCaseMavenRepowithGRAILS_PUBLISH_RELEASE=true, a throwaway signing key,projectVersion=8.0.1, the sameSOURCE_DATE_EPOCHand--no-build-cache. It covered the wholegrails-gradlebuild plusgrails-base-bom,grails-bom,grails-bootstrapandgrails-shell-cli.grails-publish1.0.0 works on 9.9.0. Both sides produce the same 336 files, including 56 signatures. Leaving out signatures and checksums, 13 files differ:.modulefiles: the Gradle version increatedBy. Thegrails-shell-clione also hasgradle-tooling-api9.9.0 and the sizes and checksums of its two changed jars.grails-shell-cliPOM:gradle-tooling-api9.9.0.grails-shell-clijar:META-INF/sbom.json.grails-shell-clisources jar: thegradle-samplewrapper jar and properties.The other root modules and Forge were not part of this run.
Deprecations
A dry run of the full task graph (
build bootJar groovydoc publishAllPublicationsToTestCaseMavenRepoRepository aggregateViolations --dry-run --warning-mode=all) reports the same deprecations with the same counts on 9.8.2 and 9.9.0, and no configuration cache problems. It does not execute the tasks, so it says nothing about deprecations raised during execution.CliAutoDiscoverySpec, which runstasks --allon agrails-webproject with--warning-mode=fail, passes on 9.9.0.Gradle 10
Gradle 9.9.0 deprecates the Ant integration, and Gradle 10 removes it along with the Ant classes that build logic gets implicitly. None of this is changed here:
gradle-bootstrap/build.gradlecopies files withant.*, so running bootstrap now printsTask.getAnt()deprecation warnings.GrailsGradlePluginfilters resources through Ant'sReplaceTokensandEscapeUnicode.grails-bootstrap/build.gradleusesReplaceTokens, and the settings scripts, the rootbuild.gradleandGrailsExtensionimport otherorg.apache.tools.antclasses. These raise no warning on 9.9.0.Merging up
Merges up to 8.1.x, 9.0.x and 9.1.x. From 8.1.x on, Forge's properties template is
gradleWrapperProperties.gsp, which needs the samedistributionUrlchange.