deps: bump Groovy to 6.0.0-RC-1 - #16300
Conversation
The BOM and every Groovy module follow groovy.version, including groovy-callsite.
There was a problem hiding this comment.
🔵 Needs a closer look
A Groovy language version bump can have broad compile/runtime impact across many modules and should be validated by CI and targeted tests before approval.
Pull request overview
Updates the Grails framework BOM’s Groovy runtime pin on the 9.0.x line from 6.0.0-beta-2 to 6.0.0-beta-3, ensuring all Groovy modules (including groovy-callsite) follow the single managed version in dependencies.gradle.
Changes:
- Bump
groovy.versionfrom6.0.0-beta-2to6.0.0-beta-3in the BOM version map.
File summaries
| File | Description |
|---|---|
| dependencies.gradle | Updates the BOM-managed Groovy version to 6.0.0-beta-3. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
The context provided is insufficient to identify the specific Jackson pin comment mentioned, as the |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 9.0.x #16300 +/- ##
=============================================
Coverage 30.1177% 30.1177%
Complexity 519 519
=============================================
Files 83 83
Lines 4758 4758
Branches 815 815
=============================================
Hits 1433 1433
Misses 3082 3082
Partials 243 243 🚀 New features to boost your workflow:
|
Hoist remaining `||` collection-binding guards so static type checking no longer infers void on ArrayList#leftShift. Document that Groovy 6 routes Map subscript assignment through Map.put. Parse prerelease groovy.version pins in the snapshot canary so it targets Groovy 6 instead of the Micronaut island's Groovy 5 pin. Update Jackson pin comments from beta-2 to beta-3.
|
Addressed Copilot's Jackson pin comment and the shared CI failures on this Groovy 6.0.0-beta-3 bump:
Pushed as |
The BOM and every Groovy module follow groovy.version, including groovy-callsite. GROOVY-12319 no longer treats parameterized types as class literals, so GrailsBanner, StartMongoGrailsUnitExtension, and the OAuth2 roleNames lookup pass the raw List/Map types. GROOVY-12303 stops groovydoc from aborting on missing jboss-logging during ClassNodeResolver lookup.
✅ All tests passed ✅🏷️ Commit: 60a6366 Learn more about TestLens at testlens.app/docs. |
Description
Bumps
groovy.versionfrom6.0.0-beta-3to6.0.0-RC-1on9.0.x. The Grails BOM and every Groovy module, includinggroovy-callsite, follow that single pin.Published on Maven Central 2026-09-04 (
org.apache.groovy:groovy:6.0.0-RC-1). Changelog: https://groovy-lang.org/changelogs/changelog-6.0.0-RC-1.htmlNotable for Grails:
NoClassDefFoundErrorduring class-loader lookup. That was the red CI on beta-3::grails-data-hibernate7-dbmigration-core:groovydocfailed withorg/jboss/logging/Loggermissing, then later groovydoc/jacoco tasks OOM'd under--continue.GrailsBanner.readVersionOptions,StartMongoGrailsUnitExtension, and the OAuth2roleNameslookup now pass the rawList/Maptypes.@CompileStaticfixes.org.jline:jline3.30.16 independently; that pin is unchanged.The existing Groovy 6 STC
||collection-binding guards and Map-subscript-through-Map.putdocumentation stay. Snapshot canary regex already accepts prerelease pins such as6.0.0-RC-1.This is independent of #16298.
AI assistance was used to diagnose CI logs, apply the RC-1 bump and class-literal fixes, and draft this description. The changes were reviewed and verified locally (
:grails-core:compileGroovy,:grails-testing-support-mongodb:compileGroovy,:grails-spring-security-oauth2:compileGroovy,:grails-data-hibernate7-core:groovydoc,GroovyPageAttributesTests).Contributor Checklist
9.0.x