Repository navigation
Upgrade to Grails 8.0.0 - #32
Merged
Merged
Conversation
Bump grailsVersion from 8.0.0-RC2 to the 8.0.0 release. Move the Gradle wrapper to 9.8.1, the current patch of the 9.8 line Grails 8.0.0 is built with. The plugin's own wrapper, which build.sh and LOCALDEPLOYMENT.md build from, is regenerated to match the root one byte-for-byte, including the jar and gradlew.bat it had kept from 9.6.1.
Replace grails { springDependencyManagement = false } with bom = null in
the plugin. Grails 8 deprecated the old flag; it is still honored as an
alias, so the published POM is unchanged — it carries only the runtime
webjars, versioned from the BOM.
Drop the explicit console("org.apache.grails:grails-console") from the
plugin and the app. Grails 8 provisions grails-console onto the grailsCli
configuration, which the console and shell tasks draw from.
Read jakarta.servlet.error.exception rather than javax.servlet.error.exception
in the app's error page. Servlet 6 only sets the jakarta attribute, so the
fallback branch could never render the exception.
Gradle 9.8 deprecates setting properties with the space syntax (url '...', version x, theme 'mocha') and removes it in Gradle 10. Switch the root build and the test-logger configuration to '=' assignments.
Refresh @codemirror/language, @codemirror/state, @codemirror/view and handlebars to the latest within their existing ranges, and apply npm audit fixes for three high severity advisories in the build/test toolchain (brace-expansion, probe-image-size, source-map-js). All are devDependencies; nothing ships to consumers. @codemirror/commands stays at 6.11.0 and @codemirror/legacy-modes at 6.5.1: npm has newer releases but no matching webjars, and the editor loads them from webjars. jasmine stays on 5.x for the jsdom runner. The remaining advisories (braces, sprintf-js and their dependents through gulp, del and gulp-wrap) have no patched release on the affected lines.
Node 20 is end of life, and jsdom 30 requires ^22.22.2 || ^24.15.0 || >=26.0.0, so the pinned 20.5.1 is out of range. Pin the current 24 LTS, 24.21.0, in both workflows; the release build keeps an exact version for reproducibility. Bump actions/setup-java to v6, and reference the pre-release action as apache/grails-github-actions, where grails/github-actions now redirects and where the post-release step already points.
Take asset-pipeline 5.2.2, the version Grails 8.0.1 manages, ahead of the 5.2.0 the Grails 8.0.0 BOMs select, for both the Gradle plugin in buildSrc and the app's runtime. The version lives in gradle.properties as assetPipelineVersion; drop it once grailsVersion moves to 8.0.1.
jdaugherty
force-pushed
the
grails-8.0.0
branch
from
October 8, 2026 12:24
7282b6e to
efe0833
Compare
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 8.0.x from Grails 8.0.0-RC2 to the 8.0.0 release, and picks up the items the Grails 8 upgrade guide still flagged.
Changes
build.sh/LOCALDEPLOYMENT.md) now matches the root wrapper byte-for-byte.grails { springDependencyManagement = false }→bom = null(the old flag is deprecated; behavior is identical and the published POM is unchanged).console 'org.apache.grails:grails-console'from the plugin and app; Grails 8 provisions it ontograilsCli.error.gspreadjavax.servlet.error.exception, which Servlet 6 never sets; it now reads thejakarta.attribute.gradle.propertiesasassetPipelineVersion; drop it oncegrailsVersionis 8.0.1.build.gradleandgradle/test-config.gradle.@codemirror/language,state,viewandhandlebars, plus non-breaking audit fixes (brace-expansion, probe-image-size, source-map-js).@codemirror/commandsandlegacy-modesstay put because no newer webjars exist, andjasminestays on 5.x for the jsdom runner.actions/setup-javav5 → v6, and the pre-release action now points atapache/grails-github-actions(the post-release step already did).Testing
./gradlew clean check assemble --no-build-cacheon Liberica 21.0.12: all 47 plugin specs pass.npx gulp grailsReleaseandnpm teston Node 24.20.0: all 33 JS specs pass.plugin/gradlew --versionreports 9.8.1.Known leftovers
braces/sprintf-jsvia gulp, del and gulp-wrap). Neither has a patched release; npm's suggested fix is a downgrade to gulp 3.GroovyPagePlugin.groovy:299), not this repo.softprops/action-gh-releaseis still pinned to v2.2.2; v3 is available but the release path is untested here.🤖 Generated with Claude Code