Releases: apache/grails-core
Release list
8.0.0-M3
What's Changed
- Include the charset when DefaultHtmlRenderer sets the content type @codeconsole (#15976)
- Internationalize the default welcome page @codeconsole (#15974)
- Fix embedded where queries @jdaugherty (#15962)
- Upgrade SiteMesh to 3.3.0-M3 @codeconsole (#15975)
- Fix generated logback-spring.xml hiding WARN and INFO messages @codeconsole (#15973)
- Log plugin loaded successfully messages at DEBUG instead of INFO @codeconsole (#15969)
- Add testing support option to introduce latency @jdaugherty (#15937)
- Fix domainClass plugin being registered and loaded twice @codeconsole (#15970)
- Apply SiteMesh 3 decoration at the bean-definition level @codeconsole (#15964)
- Register the scaffolding view resolver without the bean DSL @codeconsole (#15966)
- Add workaround for GROOVY-12146 @jdaugherty (#15963)
- Make AutoTimestampEventListener temporary disabling thread-safe (8.0.x) @codeconsole (#15954)
- Restore lenient config handling @jdaugherty (#15949)
- Add available-locale discovery and a language selector to i18n @codeconsole (#15940)
- Forge - Grails 8 Updates around Grails Data @jdaugherty (#15944)
- Register plugin beans before Spring Boot auto-configuration by retiming doWithSpring @codeconsole (#15934)
- Add method-based doWithSpring(BeanBuilder) plugin lifecycle hook @codeconsole (#15939)
- Add GORM for MongoDB / Spring Data MongoDB interop module @codeconsole (#15745)
- Add a light/dark/auto theme selector to the create-app layout @codeconsole (#15941)
- Clarify exception resolver request logging metadata @jamesfredley (#15811)
- Mask exception request parameters case-insensitively @jamesfredley (#15810)
- Inherit Spring Boot managed dependency versions in grails-bom @jamesfredley (#15730)
- Stop @EnableWebMvc from being automatically added to Grails Applications @codeconsole (#13863)
- ci: free runner disk space before the joint validation Grails build @jdaugherty (#15946)
- Neo4j: detect web applications without relying on the dispatcherServlet bean @codeconsole (#15936)
- ci: raise publish retry timeout to give slow Nexus uploads headroom (7.0.x) @jdaugherty (#15945)
- make CI dependency caching actually work (branch-keyed jar cache) @jdaugherty (#15935)
- Various identifier fixes for not unwrapping Hibernate proxies @jdaugherty (#15841)
- Make i18n and URL-mappings framework beans overridable (@ConditionalOnMissingBean) @codeconsole (#15916)
- Infer controller namespace for link generation when unambiguous @jamesfredley (#15791)
- Clean up Grails 8 Hibernate 7 TODO drift @jamesfredley (#15829)
- Update Micronaut platform versions @jamesfredley (#15825)
- Merge 7.x (with spring security / mail / redis ) into 8.x @jdaugherty (#15834)
- Vulnerability scanning @jdaugherty (#15631)
- Add opt-in MongoDB multi-document transactions to GORM for MongoDB @codeconsole (#15744)
- Merge grails-spring-security, grails-mail, and grails-redis @jdaugherty (#15792)
- ci: raise publish retry timeout to give slow Nexus uploads headroom @jamesfredley (#15826)
- Avoid creating sessions during invalidate @jamesfredley (#15813)
- Reduce GORM API allocation for tenant qualifiers to O(entityCount + tenantCount) @jamesfredley (#15771)
- Groovy 5.0.x support for Grails 8 + Spring Boot 4 @jamesfredley (#15557)
- Fix inheritance of an explicit bindable:true constraint on id/version declared in an abstract @DirtyCheck base @jdaugherty (#15796)
Contributors
@arjangch, @billgonemad, @bkoehm, @borinquenkid, @codeconsole, @dauer, @davydotcom, @eugene-kamenev, @felixscheinost, @gandharvas, @jamesfredley, @jdaugherty, @matrei, @paulk-asert, @sbglasius, David Estes, Stephen Lynch and github-actions[bot]
7.2.1
What's Changed
- Restore lenient config handling @jdaugherty (#15949)
- Clarify exception resolver request logging metadata @jamesfredley (#15811)
- Mask exception request parameters case-insensitively @jamesfredley (#15810)
- ci: free runner disk space before the joint validation Grails build @jdaugherty (#15946)
- ci: raise publish retry timeout to give slow Nexus uploads headroom (7.0.x) @jdaugherty (#15945)
- make CI dependency caching actually work (branch-keyed jar cache) @jdaugherty (#15935)
- Merge 7.x (with spring security / mail / redis ) into 8.x @jdaugherty (#15834)
- Vulnerability scanning @jdaugherty (#15631)
- Merge grails-spring-security, grails-mail, and grails-redis @jdaugherty (#15792)
- Fix inheritance of an explicit bindable:true constraint on id/version declared in an abstract @DirtyCheck base @jdaugherty (#15796)
- Add Gradle tasks and Git hooks for IntelliJ-based code formatting (#15535) @sanjana2505006 (#15555)
- Disable Jansi in generated logback-spring.xml to fix console logging after DevTools restart @jamesfredley (#15694)
- Update OpenTelemetry to 1.62.0 (CVE-2026-45292) @fdevans (#15739)
Contributors
@arjangch, @billgonemad, @bkoehm, @codeconsole, @dauer, @davydotcom, @eugene-kamenev, @fdevans, @felixscheinost, @gandharvas, @grails-build, @gsartori, @ihuangyucai, @jamesfredley, @jdaugherty, @matrei, @paulk-asert, @sanjana2505006, @sbglasius, David Estes, Stephen Lynch and github-actions[bot]
7.1.4
What's Changed
- Restore lenient config handling @jdaugherty (#15949)
- Clarify exception resolver request logging metadata @jamesfredley (#15811)
- Mask exception request parameters case-insensitively @jamesfredley (#15810)
- ci: free runner disk space before the joint validation Grails build @jdaugherty (#15946)
- ci: raise publish retry timeout to give slow Nexus uploads headroom (7.0.x) @jdaugherty (#15945)
- make CI dependency caching actually work (branch-keyed jar cache) @jdaugherty (#15935)
- Merge 7.x (with spring security / mail / redis ) into 8.x @jdaugherty (#15834)
- Vulnerability scanning @jdaugherty (#15631)
- Merge grails-spring-security, grails-mail, and grails-redis @jdaugherty (#15792)
- Fix inheritance of an explicit bindable:true constraint on id/version declared in an abstract @DirtyCheck base @jdaugherty (#15796)
- Add Gradle tasks and Git hooks for IntelliJ-based code formatting (#15535) @sanjana2505006 (#15555)
- Disable Jansi in generated logback-spring.xml to fix console logging after DevTools restart @jamesfredley (#15694)
- Update OpenTelemetry to 1.62.0 (CVE-2026-45292) @fdevans (#15739)
Contributors
@arjangch, @billgonemad, @bkoehm, @codeconsole, @dauer, @davydotcom, @eugene-kamenev, @fdevans, @felixscheinost, @gandharvas, @grails-build, @gsartori, @ihuangyucai, @jamesfredley, @jdaugherty, @matrei, @paulk-asert, @puneetbehl, @sanjana2505006, @sbglasius, David Estes, Stephen Lynch and github-actions[bot]
7.0.14
What's Changed
- Restore lenient config handling @jdaugherty (#15949)
- Clarify exception resolver request logging metadata @jamesfredley (#15811)
- Mask exception request parameters case-insensitively @jamesfredley (#15810)
- ci: free runner disk space before the joint validation Grails build @jdaugherty (#15946)
- ci: raise publish retry timeout to give slow Nexus uploads headroom (7.0.x) @jdaugherty (#15945)
- make CI dependency caching actually work (branch-keyed jar cache) @jdaugherty (#15935)
- Merge 7.x (with spring security / mail / redis ) into 8.x @jdaugherty (#15834)
- Vulnerability scanning @jdaugherty (#15631)
- Merge grails-spring-security, grails-mail, and grails-redis @jdaugherty (#15792)
- Fix inheritance of an explicit bindable:true constraint on id/version declared in an abstract @DirtyCheck base @jdaugherty (#15796)
- Add Gradle tasks and Git hooks for IntelliJ-based code formatting (#15535) @sanjana2505006 (#15555)
- Disable Jansi in generated logback-spring.xml to fix console logging after DevTools restart @jamesfredley (#15694)
- Update OpenTelemetry to 1.62.0 (CVE-2026-45292) @fdevans (#15739)
Contributors
@arjangch, @billgonemad, @bkoehm, @codeconsole, @dauer, @davydotcom, @eugene-kamenev, @fdevans, @felixscheinost, @gandharvas, @grails-build, @gsartori, @ihuangyucai, @jamesfredley, @jdaugherty, @matrei, @paulk-asert, @puneetbehl, @sanjana2505006, @sbglasius, David Estes, Stephen Lynch and github-actions[bot]
8.0.0-M2
What's Changed
- Ensure that the GlobalGrailsClassInjectorTransformation fails in the grails-core build if the wrong directory is passed @jdaugherty (#15799)
- 8.0.x - make configurable: allow-bean-definition-overriding / allow-circular-references @codeconsole (#15765)
- Add Grails 8 upgrade skill @jamesfredley (#15798)
- Add opt-in to compile all controllers, services and tag libraries with @GrailsCompileStatic @codeconsole (#15759)
- Add Gradle tasks and Git hooks for IntelliJ-based code formatting (#15535) @sanjana2505006 (#15555)
- Improve virtual thread cleanup for ThreadLocals @jamesfredley (#15797)
- Disable Jansi in generated logback-spring.xml to fix console logging after DevTools restart @jamesfredley (#15694)
- Guard child datastore entity registration against a null GORM enhancer (late registration NPE) @jamesfredley (#15776)
- Update OpenTelemetry to 1.62.0 (CVE-2026-45292) @fdevans (#15739)
- 8.0.x FIX: Overriding bean definition for bean 'dispatcherServlet' with a different definition @codeconsole (#15775)
- Refresh Grails 8 platform upgrade docs @jamesfredley (#15770)
- fix: align H7 HibernateGormStaticApi internal SQL method names with H5 @borinquenkid (#15768)
- Replace usages of deprecated external APIs @matrei (#15722)
- Modernize Grails 8 content negotiation: framework MIME defaults and honor the Accept header @codeconsole (#15758)
- Add Grails request-lifecycle + GSP rendering observability (inline micrometer spans + uri route fix) @codeconsole (#15750)
- Support TTL indexes in the GORM-Mongo mapping DSL and reconcile index option changes @codeconsole (#15747)
- Use config-driven Grails version docs @jamesfredley (#15769)
- Update Spring Boot to 3.5.16 @jamesfredley (#15767)
- Hibernate 7 - Step 2 @jdaugherty (#15568)
- Fix stop-app using a PID file instead of Actuator or JMX @jamesfredley (#15698)
- build(deps): update Gradle to 9.6.0 @jamesfredley (#15763)
- Update to Gradle 8.14.5 @jamesfredley (#15762)
- Convert SiteMesh 3 taglibs to method handlers and use SiteMesh 3.3.0-M1 @codeconsole (#15746)
- Do not close an externally-supplied MongoClient in GORM for MongoDB @codeconsole (#15743)
- fix(codecs): stop overriding the codecLookup bean definition @codeconsole (#15752)
- Merge 7.1.2 @jdaugherty (#15753)
- 8.x Register CriteriaTypeCheckingExtension and cover createCriteria().{} closures @codeconsole (#15720)
- Add
@GrailsCompileStaticsupport for controllers that call tag libs @jdaugherty (#15669) - fix(ci): seed vMAJOR.MINOR.0 for release branches with no published release @jamesfredley (#15742)
- fix(ci): remove filter-by-range from release-drafter to stop v0.1.0 draft flood @jamesfredley (#15741)
- Expand Hibernate 7 functional coverage and query parity @jamesfredley (#15731)
- 8.x Make SiteMesh 3 the default GSP layout @codeconsole (#15713)
- fix: parse ASCII minus in locale-aware number binding @jamesfredley (#15726)
- feat(deps): Bump Micronaut platform to 5.0.0 (GA) @jamesfredley (#15677)
- Make domain properties nullable by default (Grails 8) @codeconsole (#15721)
- 8.x Add Class-typed getAttribute reads for session, request and servletContext @codeconsole (#15732)
- 7.2.x (grails-scaffolding) - Parameterize the @scaffold controller superclass so scaffolded controller members aren't type-erased @codeconsole (#15729)
- Add
httpPostForm()method toHttpClientSupport@matrei (#15735) - Update Spring Boot 4.1 dependency versions @jamesfredley (#15727)
- Update Spring Boot to 3.5.15 @jamesfredley (#15728)
- Update Spock to 2.4-groovy-4.0 and align test dependencies @jamesfredley (#15703)
- fix: Order milestone and release candidate versions in VersionComparator @jamesfredley (#15696)
- Add typed attribute converters for session, request, flash and servletContext @codeconsole (#15715)
- Parameterize the @scaffold service superclass so scaffolded service methods aren't type-erased @codeconsole (#15717)
- Add MongoClientSettingsBuilderCustomizer hook for the Mongo client @codeconsole (#15716)
- Hibernate 7 - Step 1 @jdaugherty (#15654)
- Remove no-op failOnError argument from DeleteEntityDataFetcher @jamesfredley (#15692)
- [INFRA] Set up default rulesets for default and release branches @asf-gitbox-commits (#15665)
- Step 1 (PR-H): Add grails-jacoco convention plugin + Codecov coverage (depends on PR-G) @jamesfredley (#15687)
- Enable SiteMesh 3 on the 8.x (Spring Boot 4) line @codeconsole (#15710)
- Step 1 (PR-G): Add grails-code-analysis convention plugin + violation aggregation @jamesfredley (#15686)
- Add test coverage for Map-based multi-field sort @jamesfredley (#15691)
- fix(ci): comprehensive overhaul of release-drafter setup @jamesfredley (#15623)
- Step 1 (PR-C): Add addAllDomainClasses helper to GrailsDataTckManager @jamesfredley (#15683)
- Fix bindData binding id/version when domain extends a @DirtyCheck base (#15681) @jamesfredley (#15699)
- Fix constraints overwriting mapping index configuration (#15680) @codeconsole (#15700)
- fix: renormalize 8.0.x-only CRLF gradlew.bat files to LF @jamesfredley (#15709)
- fix: renormalize CRLF-committed files to LF per .gitattributes @jamesfredley (#15708)
- Step 1 (PR-F): Add grails-hibernate5-micronaut BOM (Micronaut BOM split) @jamesfredley (#15689)
- AGENTS.md: link the project's security model for agent discoverability @potiuk (#15706)
- Pin SiteMesh 3 to 3.2.3 release and drop snapshot repo resolution @codeconsole (#15705)
- fix(deps): Bump Spring Boot to 4.1.0-RC1 @jamesfredley (#15704)
- ci: audit and update GitHub Actions to ASF-approved versions @jamesfredley (#15690)
- fix(deps): Bump Spring Boot to 4.0.6 @jamesfredley (#15676)
- Upgrade to Gradle 9.5.1 @jamesfredley (#15672)
- Where Query documentation improvements @gsartori (#15599)
- Add THREAT_MODEL.md per the Apache security threat-model rubric @jamesfredley (#15664)
- Step 1 (PR-B): Async project defensive coding cleanup @jamesfredley (#15682)
- docs: fix typos in RELEASE.md @jamesfredley (#15619)
- Fix 8.0.x build break introduced by 7.2.x merge (6ebc60c) @jamesfredley (#15673)
- 7.1.x FIX: Rank URL mapping specificity by literal token count before wildcard captures @codeconsole (#15645)
- backport: close mongo connections between tests @matrei (#15634)
- Preserving Parameter Names @rahulshishodia (#15382)
- Make capturing Liquibase log output more reliable @marcphilipp (#15662)
- fix 4x exception logging @codeconsole (#15564)
- fix(deps): Bump Groovy to 4.0.32 @matrei (#15637)
- test(deps): bump
grails-spring-securityto 7.0.3-SNAPSHOT @matrei (#15658) - Font fixes @paulk-asert (#15643)
- fix: enforce LF line endings for shell scripts, gradlew, KEYS @jamesfredley (#15622)
- Restore micronaut-jackson-databind for grails-forge-web-netty JSON runtime @jamesfredley (#15651)
- Add flyway-database-postgresql for grails-forge-analytics-postgres native deploy @jamesfredley (#15648)
- Fix forge dockerBuildNative logback init cascade from JGit @jamesfredley (#15647)
- Fix forge dockerBuildNative class-initialization conflicts @jamesfredley (#15646)
- Native gorm mongodb String to ObjectId conversion @codeconsole (#15583)
- Migrate grails data graphql to grails 7.2.x @kirpi4ik (#15587)
- Post 8.0.0-M1 Fixes @jdaugherty (#15629)
- Enable Code Coverage @jdaugherty (#15633)
- Add jetty test app @jdaugherty (#15632)
- Filterless Sitemesh 3 @codeconsole (#15585)
- #10279 - add test to show issue no longer exists @jdaugherty (#15630)
- Bump actions/cache from 4 to 5 @dependabot[bot] (#15291)
🚀 Features
- feat: Replace Spring Dependency Management plugin with Gradle platform + lightweight BOM property overrides @jamesfredley (#15467)
- Add method-based TagLib syntax with legacy compatibility, benchmarks, and docs @davydotcom (#15465)
Contributors
@asf-gitbox-commits, @borinquenkid, @codeconsole, @davydotcom, @fdevans, @gsartori, @jamesfredley, @jdaugherty, @kirpi4ik, @marcphilipp, @matrei, @paulk-asert, @potiuk, @rahulshishodia, @sanjana2505006, dependabot[bot] and github-actions[bot]
7.2.0
What's Changed
- Filterless Sitemesh 3 by @codeconsole in #15585
- Migrate grails data graphql to grails 7.2.x by @kirpi4ik in #15587
- Native gorm mongodb String to ObjectId conversion by @codeconsole in #15583
- Pin SiteMesh 3 to 3.2.3 release and drop snapshot repo resolution by @codeconsole in #15705
- Fix constraints overwriting mapping index configuration (#15680) by @codeconsole in #15700
- Remove no-op failOnError argument from DeleteEntityDataFetcher by @jamesfredley in #15692
- Parameterize the @scaffold service superclass so scaffolded service methods aren't type-erased by @codeconsole in #15717
- 7.2.x (grails-scaffolding) - Parameterize the @scaffold controller superclass so scaffolded controller members aren't type-erased by @codeconsole in #15729
New Contributors
Full Changelog: v7.1.3...v7.2.0
7.1.3
What's Changed
- Update Spring Boot to 3.5.16 @jamesfredley (#15767)
- Fix stop-app using a PID file instead of Actuator or JMX @jamesfredley (#15698)
- Update to Gradle 8.14.5 @jamesfredley (#15762)
- Merge 7.1.2 @jdaugherty (#15753)
- fix(ci): seed vMAJOR.MINOR.0 for release branches with no published release @jamesfredley (#15742)
Contributors
@codeconsole, @jamesfredley, @jdaugherty and github-actions[bot]
7.0.13
What's Changed
- Update Spring Boot to 3.5.16 @jamesfredley (#15767)
- Fix stop-app using a PID file instead of Actuator or JMX @jamesfredley (#15698)
- Update to Gradle 8.14.5 @jamesfredley (#15762)
- fix(ci): seed vMAJOR.MINOR.0 for release branches with no published release @jamesfredley (#15742)
Contributors
@codeconsole, @jamesfredley, @jdaugherty and github-actions[bot]
7.1.2
What's Changed
- fix(ci): remove filter-by-range from release-drafter to stop v0.1.0 draft flood @jamesfredley (#15741)
- fix: parse ASCII minus in locale-aware number binding @jamesfredley (#15726)
- Update Spring Boot to 3.5.15 @jamesfredley (#15728)
- fix: Order milestone and release candidate versions in VersionComparator @jamesfredley (#15696)
- [INFRA] Set up default rulesets for default and release branches @asf-gitbox-commits (#15665)
- Add test coverage for Map-based multi-field sort @jamesfredley (#15691)
- fix(ci): comprehensive overhaul of release-drafter setup @jamesfredley (#15623)
- Fix bindData binding id/version when domain extends a @DirtyCheck base (#15681) @jamesfredley (#15699)
- fix: renormalize CRLF-committed files to LF per .gitattributes @jamesfredley (#15708)
- ci: audit and update GitHub Actions to ASF-approved versions @jamesfredley (#15690)
- Where Query documentation improvements @gsartori (#15599)
- 7.1.x FIX: Rank URL mapping specificity by literal token count before wildcard captures @codeconsole (#15645)
- backport: close mongo connections between tests @matrei (#15634)
- Make capturing Liquibase log output more reliable @marcphilipp (#15662)
- fix 4x exception logging @codeconsole (#15564)
- fix(deps): Bump Groovy to 4.0.32 @matrei (#15637)
- test(deps): bump
grails-spring-securityto 7.0.3-SNAPSHOT @matrei (#15658) - Font fixes @paulk-asert (#15643)
- fix: enforce LF line endings for shell scripts, gradlew, KEYS @jamesfredley (#15622)
- Post 8.0.0-M1 Fixes @jdaugherty (#15629)
- Enable Code Coverage @jdaugherty (#15633)
- Add jetty test app @jdaugherty (#15632)
- #10279 - add test to show issue no longer exists @jdaugherty (#15630)
- Bump actions/cache from 4 to 5 @dependabot[bot] (#15291)
- feat: allow CORS requests from grails.apache.org for Forge @jamesfredley (#15618)
- Add
settings.gradlefile to wrapper Forge verification app @matrei (#15616)
Contributors
@asf-gitbox-commits, @codeconsole, @dependabot[bot], @gsartori, @jamesfredley, @jdaugherty, @marcphilipp, @matrei, @paulk-asert, dependabot[bot] and github-actions[bot]
7.0.12
What's Changed
- fix(ci): remove filter-by-range from release-drafter to stop v0.1.0 draft flood @jamesfredley (#15741)
- Update Spring Boot to 3.5.15 @jamesfredley (#15728)
- fix: Order milestone and release candidate versions in VersionComparator @jamesfredley (#15696)
- [INFRA] Set up default rulesets for default and release branches @asf-gitbox-commits (#15665)
- Add test coverage for Map-based multi-field sort @jamesfredley (#15691)
- fix(ci): comprehensive overhaul of release-drafter setup @jamesfredley (#15623)
- Fix bindData binding id/version when domain extends a @DirtyCheck base (#15681) @jamesfredley (#15699)
- fix: renormalize CRLF-committed files to LF per .gitattributes @jamesfredley (#15708)
- ci: audit and update GitHub Actions to ASF-approved versions @jamesfredley (#15690)
- Where Query documentation improvements @gsartori (#15599)
- backport: close mongo connections between tests @matrei (#15634)
- Make capturing Liquibase log output more reliable @marcphilipp (#15662)
- fix(deps): Bump Groovy to 4.0.32 @matrei (#15637)
- test(deps): bump
grails-spring-securityto 7.0.3-SNAPSHOT @matrei (#15658) - Font fixes @paulk-asert (#15643)
- fix: enforce LF line endings for shell scripts, gradlew, KEYS @jamesfredley (#15622)
- Post 8.0.0-M1 Fixes @jdaugherty (#15629)
- Enable Code Coverage @jdaugherty (#15633)
- Add jetty test app @jdaugherty (#15632)
- #10279 - add test to show issue no longer exists @jdaugherty (#15630)
- Bump actions/cache from 4 to 5 @dependabot[bot] (#15291)
- feat: allow CORS requests from grails.apache.org for Forge @jamesfredley (#15618)
- Add
settings.gradlefile to wrapper Forge verification app @matrei (#15616)
Contributors
@asf-gitbox-commits, @dependabot[bot], @gsartori, @jamesfredley, @jdaugherty, @marcphilipp, @matrei, @paulk-asert, dependabot[bot] and github-actions[bot]