Skip to content

deps: bump Groovy to 6.0.0-RC-1 - #16300

Open
jamesfredley wants to merge 5 commits into
9.0.xfrom
deps/groovy-6.0.0-beta-3
Open

deps: bump Groovy to 6.0.0-RC-1#16300
jamesfredley wants to merge 5 commits into
9.0.xfrom
deps/groovy-6.0.0-beta-3

Conversation

@jamesfredley

@jamesfredley jamesfredley commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Description

Bumps groovy.version from 6.0.0-beta-3 to 6.0.0-RC-1 on 9.0.x. The Grails BOM and every Groovy module, including groovy-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.html

Notable for Grails:

  • GROOVY-12303: ClassNodeResolver no longer aborts on NoClassDefFoundError during class-loader lookup. That was the red CI on beta-3: :grails-data-hibernate7-dbmigration-core:groovydoc failed with org/jboss/logging/Logger missing, then later groovydoc/jacoco tasks OOM'd under --continue.
  • GROOVY-12319: parameterized types are not class literals. GrailsBanner.readVersionOptions, StartMongoGrailsUnitExtension, and the OAuth2 roleNames lookup now pass the raw List/Map types.
  • GROOVY-12301 / GROOVY-12305: further STC / @CompileStatic fixes.
  • GROOVY-12336: Groovy groovysh tracks JLine 4.4.1. Grails CLI still uses org.jline:jline 3.30.16 independently; that pin is unchanged.

The existing Groovy 6 STC || collection-binding guards and Map-subscript-through-Map.put documentation stay. Snapshot canary regex already accepts prerelease pins such as 6.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

  • Targets 9.0.x
  • Single focused dependency bump
  • No unrelated reformatting

The BOM and every Groovy module follow groovy.version, including groovy-callsite.
Copilot AI lite review requested due to automatic review settings September 3, 2026 00:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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.version from 6.0.0-beta-2 to 6.0.0-beta-3 in 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.

Comment thread dependencies.gradle Outdated
@bito-code-review

Copy link
Copy Markdown

The context provided is insufficient to identify the specific Jackson pin comment mentioned, as the InlineCode field is empty and no diff context was provided for that specific area. Please provide the relevant code snippet or diff hunk for the Jackson pin comment so I can assist with the update.

@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 30.1177%. Comparing base (51b1528) to head (60a6366).

Additional details and impacted files

Impacted file tree graph

@@              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:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.
@jamesfredley

Copy link
Copy Markdown
Contributor Author

Addressed Copilot's Jackson pin comment and the shared CI failures on this Groovy 6.0.0-beta-3 bump:

  • Jackson comments now say Groovy YAML 6.0.0-beta-3.
  • :grails-web-databinding:compileGroovy — hoisted the remaining || collection-binding guard so STC no longer treats item as void.
  • :grails-taglib:test — Groovy 6 routes Map subscript assignment through Map.put. Dotted assignment still hits setGspTagSyntaxCall(boolean); the tests now cover both.
  • Groovy snapshot canary — the version regex skipped 6.0.0-beta-3 and fell through to the Micronaut island's Groovy 5 pin, which is why CI looked for groovy-callsite:5.0.9-SNAPSHOT. It now parses prerelease pins and targets Groovy 6 master.

Pushed as 19be0dd580. Copilot thread resolved.

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.
@jamesfredley jamesfredley changed the title deps: bump Groovy to 6.0.0-beta-3 deps: bump Groovy to 6.0.0-RC-1 Sep 9, 2026
@testlens-app

testlens-app Bot commented Sep 9, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

🏷️ Commit: 60a6366
▶️ Tests: 43554 executed
⚪️ Checks: 92/92 completed


Learn more about TestLens at testlens.app/docs.

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

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants