Grails 7.0.0-M3 - Release Announcement
March 5, 2025
The Grails Foundation is excited for the release of Grails Framework 7.0.0-M3.
We encourage you to try this pre-release and provide your feedback here.
The next milestone is planned to be released under the Apache Software Foundation as Apache Grails 7.0.0-M4.
NOTE: Due to a release problem, 7.0.0-M2 was skipped.
Mailing Lists Changes
As we transition to Apache more communications will occur on our new Apache mailing lists.
Users Mailing List
The users mailing list will be a General purpose list for questions and discussion about Grails.
Web Archive: https://lists.apache.org/[email protected]
Subscribe: Send a blank email to [email protected]
Dev Mailing List
The dev mailing list is focused on the framework implementation and its evolution.
Web Archive: https://lists.apache.org/[email protected]
Subscribe: Send a blank email to [email protected]
When participating in Apache mailing lists, you should never include any personally identifiable information (PII) like your address, phone number or email address, as all messages sent to these lists are publicly accessible and archived, meaning anyone can view your information. Make sure your email client does not add your signature with these items.
What's Changed
For changes made in Grails 7 prior to 7.0.0-M3, check out the Grails 7.0.0-M1 Release Blog Post
With the release of Grails 7.0.0-M3, we have:
- Consolidated several main/core Git repositories/Gradle projects to drastically reduce the time to publish a release. This resulted in the version of many dependencies changing and in some cases skipping major versions to match with the consolidated project. The old project Git repository default branch readme has been updated to point to the new location. Existing issues and PRs have been migrated when possible.
- Consolidated 10 active profiles into a single Git repository/Gradle Project.
- Consolidated 6 Spring Security plugins into the Spring Security Core Git repository.
- Updated the Web and Base Grails profiles to generate runnable Grails 7 applications.
- Changed so that
hibernate-ehcache
is no longer provided by thehibernate5
plugin. See details - Fixed documentation (asciidoc, groovydoc & javadoc) generation and publishing across many projects.
- Ensured tests run during build and CI across many projects.
- Updated
ContainerGebSpec
ingeb
with:- Cross-platform file input support.
- IDE hints and auto-completion of
Browser.*
,Page.*
andWebDriver.pageSource
methods. - Recycling of the recording container.
- Delegation to the current page object.
- Inclusion of the
ScreenshotReporter
by default. - Fix of log message for reports directory.
- Updated
grails-gradle-plugin
with:- End-to-end tests.
- Fix of
configScript
handling. - Inclusion of
testFixtures
in version resolving for POM generation inorg.grails.grails-publish
. - Fix to include AST sources in javadoc and source jars.
- Fix to
org.grails.grails-publish
to ensure sources and javadoc are published by default. - Changes and standardization of profile task names so they can be used with the Java Gradle Plugin.
- Changes to not require Java or Groovy Gradle Plugins for profile publishing.
- Fix of profile publishing to support the Java Gradle Plugin.
- Consolidation of profiles into a single Gradle multi-project build.
- Updated
database-migration-plugin
with:- Move to
gorm-hibernate5
project. - Exclusion of
liquibase-commercial
to prevent it from being exported. - Loading of migrations from embedded jars (plugins).
- Allowing the loading of classpath resources for sqlFile changesets.
- Move to
- Replaced
tomcat-jdbc
withHikariCP
in default generated applications fromgrails-shell
CLI andgrails-forge
CLI. - Updated
asset-pipeline
to resolve missing graalvm asset compiler dependencies for bootRun, unit test and integration tests. - Leveraged
grails-bom
versions wherever possible to simplify updates across the projects. - Consolidated any versions not set by
grails-bom
ingradle.properties
across projects. - Allowed disabling of
AutoTimestamp
on insertion event if values are notnull
. - Allowed customization of
AutoTimestamp
dateCreated
andlastUpdated
properties. - Added GSP Pagination support for Bootstrap 5.
- Fixed configuration loading in the
quartz
plugin. - Fixed an error in
grails-bom
with handling inherited BOMs fromspring-boot-dependencies
.
Dependency Upgrades
In this release, we've upgraded several dependency versions, including but not limited to the following:
- Asset Pipeline 5.0.8
- Groovy 4.0.25
- Jna 5.16.0
- MongoDB driver: 5.3.1
- Slf4j 2.0.16
- Spring Boot 3.4.2
- Spring Framework 6.2.2
- See all in the grails-bom.
As part of the Grails 7.0.0-M3 release we have also released milestones of the following:
- org.grails.plugins:async:7.0.0-M3
- org.grails.plugins:audit-logging:6.0.0-M4
- org.grails.plugins:cache:8.0.0-M3
- org.grails.plugins:converters:7.0.0-M3
- org.grails.plugins:database-migration:9.0.0-M3
- org.grails.plugins:events:7.0.0-M3
- org.grails.plugins:fields:6.0.0-M3
- org.grails.plugins:geb:5.0.0-M3
- org.grails.plugins:grails-redis:5.0.0-M3
- org.grails.plugins:grails-web-console:7.0.0-M2
- org.grails.plugins:gsp:7.0.0-M3
- org.grails.plugins:hibernate5:9.0.0-M3
- org.grails.plugins:mongodb:9.0.0-M3
- org.grails.plugins:quartz:4.0.0-M2
- org.grails.plugins:scaffolding:6.0.0-M3
- org.grails.plugins:spring-security-acl:7.0.0-M3
- org.grails.plugins:spring-security-cas:7.0.0-M3
- org.grails.plugins:spring-security-core:7.0.0-M3
- org.grails.plugins:spring-security-ldap:7.0.0-M3
- org.grails.plugins:spring-security-oauth2:7.0.0-M3
- org.grails.plugins:spring-security-rest:7.0.0-M3
- org.grails.plugins:spring-security-rest-gorm:7.0.0-M3
- org.grails.plugins:spring-security-rest-grailscache:7.0.0-M3
- org.grails.plugins:spring-security-rest-memcached:7.0.0-M3
- org.grails.plugins:spring-security-rest-redis:7.0.0-M3
- org.grails.plugins:spring-security-rest-testapp-profile:7.0.0-M3
- org.grails.plugins:spring-security-ui:7.0.0-M3
- org.grails.plugins:views-gradle:4.0.0-M3
- org.grails.plugins:views-json:4.0.0-M3
- org.grails.plugins:views-json-templates:9.0.0-M3
- org.grails.plugins:views-markup:4.0.0-M3
- org.grails.profiles:angular:10.0.2
- org.grails.profiles:base:10.0.2
- org.grails.profiles:plugin:10.0.2
- org.grails.profiles:profile:10.0.2
- org.grails.profiles:react:10.0.2
- org.grails.profiles:rest-api:10.0.2
- org.grails.profiles:rest-api-plugin:10.0.2
- org.grails.profiles:vue:10.0.2
- org.grails.profiles:web:10.0.2
- org.grails.profiles:web-plugin:10.0.2
- org.grails:grails-async:7.0.0-M3
- org.grails:grails-async-gpars:7.0.0-M3
- org.grails:grails-async-rxjava:7.0.0-M3
- org.grails:grails-async-rxjava2:7.0.0-M3
- org.grails:grails-bootstrap:7.0.0-M3
- org.grails:grails-codecs:7.0.0-M3
- org.grails:grails-console:7.0.0-M3
- org.grails:grails-core:7.0.0-M3
- org.grails:grails-databinding:7.0.0-M3
- org.grails:grails-datastore-async:9.0.0-M3
- org.grails:grails-datastore-core:9.0.0-M3
- org.grails:grails-datastore-gorm:9.0.0-M3
- org.grails:grails-datastore-gorm-async:9.0.0-M3
- org.grails:grails-datastore-gorm-hibernate5:9.0.0-M3
- org.grails:grails-datastore-gorm-mongodb:9.0.0-M3
- org.grails:grails-datastore-gorm-rx:9.0.0-M3
- org.grails:grails-datastore-gorm-support:9.0.0-M3
- org.grails:grails-datastore-gorm-tck:9.0.0-M3
- org.grails:grails-datastore-gorm-test:9.0.0-M3
- org.grails:grails-datastore-gorm-validation:9.0.0-M3
- org.grails:grails-datastore-web:9.0.0-M3
- org.grails:grails-dependencies:7.0.0-M3
- org.grails:grails-docs:7.0.0-M3
- org.grails:grails-encoder:7.0.0-M3
- org.grails:grails-events-gpars:7.0.0-M3
- org.grails:grails-events-rxjava:7.0.0-M3
- org.grails:grails-events-rxjava2:7.0.0-M3
- org.grails:grails-gorm-testing-support:9.0.0-M3
- org.grails:grails-gradle-model:7.0.0-M3
- org.grails:grails-gradle-plugin:7.0.0-M4
- org.grails:grails-gsp:7.0.0-M3
- org.grails:grails-logging:7.0.0-M3
- org.grails:grails-plugin-codecs:7.0.0-M3
- org.grails:grails-plugin-controllers:7.0.0-M3
- org.grails:grails-plugin-databinding:7.0.0-M3
- org.grails:grails-plugin-datasource:7.0.0-M3
- org.grails:grails-plugin-domain-class:7.0.0-M3
- org.grails:grails-plugin-i18n:7.0.0-M3
- org.grails:grails-plugin-interceptors:7.0.0-M3
- org.grails:grails-plugin-mimetypes:7.0.0-M3
- org.grails:grails-plugin-rest:7.0.0-M3
- org.grails:grails-plugin-services:7.0.0-M3
- org.grails:grails-plugin-url-mappings:7.0.0-M3
- org.grails:grails-plugin-validation:7.0.0-M3
- org.grails:grails-shell:7.0.0-M3
- org.grails:grails-spring:7.0.0-M3
- org.grails:grails-test:7.0.0-M3
- org.grails:grails-testing-support:7.0.0-M3
- org.grails:grails-test-suite-base:7.0.0-M3
- org.grails:grails-test-suite-persistence:7.0.0-M3
- org.grails:grails-test-suite-uber:7.0.0-M3
- org.grails:grails-test-suite-web:7.0.0-M3
- org.grails:grails-web:7.0.0-M3
- org.grails:grails-web-boot:7.0.0-M3
- org.grails:grails-web-common:7.0.0-M3
- org.grails:grails-web-databinding:7.0.0-M3
- org.grails:grails-web-gsp:7.0.0-M3
- org.grails:grails-web-mvc:7.0.0-M3
- org.grails:grails-web-taglib:7.0.0-M3
- org.grails:grails-web-testing-support:7.0.0-M3
- org.grails:grails-web-url-mappings:7.0.0-M3
- org.grails:grails7-wrapper:6.0.0
- org.grails:views-json-testing-support:4.0.0-M3
Installing Grails 7.0.0-M3
Try out Grails 7.0.0-M3 today by visiting the online app creator * Grails Forge. Alternatively, you can quickly install Grails 7.0.0-M3 using the SDKMan.
-
If you don't have SDKMan installed, follow the instructions at SDKMan Installation Guide to set it up.
-
Once SDKMan is installed, open your terminal and run the following command to install Grails 7.0.0-M3:
sdk install grails 7.0.0-M3
-
You're all set! To verify the installation, run:
grails --version
Upgrading Your Existing Applications to Grails 7.0.0-M3
If you already have a Grails application and want to upgrade to the latest version, follow these steps:
-
Open the project in your favorite IDE (preferably JetBrains' IntelliJ IDEA).
-
Update your application's
gradle.properties
file to specify Grails 7.0.0-M3 as the desired version.grailsVersion=7.0.0-M3 # The Grails Gradle Plugin version is now available in the BOM # and can be omitted if your project adds the Grails BOM to the # buildscript dependencies. grailsGradlePluginVersion=7.0.0-M4
-
Make any necessary adjustments to your application code, configuration, and dependencies to ensure compatibility with the new version. See https://docs.grails.org/7.0.0-M3/guide/single.html#upgrading60x.
Normally, Grails Core dependencies are automatically updated using the Grails Bill of Materials (BOM). However, if you have specific versions defined in your build configuration, you may need to manually update them to align with Grails 7.0.0-M3.
By following these steps, you should be able to transition your existing Grails application to Grails 7.0.0-M3.
Exploring Alternative Approaches
If manual dependency updates seem daunting, or you want a more streamlined approach, consider the following alternatives:
1. Use Grails Forge Website
Visit Grails Forge and generate a new Grails application with Grails 7.0.0-M3. Compare the versions in the newly generated application with your existing one to identify any discrepancies. This can serve as a reference point for your update.
2. Automated Dependency Update Bots
Configure automated dependency update bots like Renovate or Dependabot with your source control platform (e.g., GitHub). These bots can automatically detect and update outdated dependencies in your project, including Grails dependencies, saving you time and effort in manual updates.
With these steps and alternative approaches, you should be well on your way to enjoying the exciting features and improvements in Grails 7.0.0-M3. Happy coding!
Why should you try out Grails 7.0.0-M3?
- Help us test this major upgrade of the Grails Framework and provide feedback.
- Be ready for when Grails 7 is released.
Grails 7 Release Schedule
- We will continue to work on updating and fixing issues over the next few weeks.
- Apache Grails 7.0.0-M4 will be released thereafter under the Apache Software Foundation.
- Based on feedback, an Apache Grails final milestone or RC release is targeted for April 2025.
Thank you!
A huge thank you to our amazing community for supporting the Grails Framework over the past 19 years! We’re excited for the future and grateful for the opportunity to continue innovating and pushing Grails forward together.
Contributors
We would like to extend our heartfelt thanks to all the contributors who made Grails 7.0.0-M3 possible.
Special thanks to:
- James Daugherty
- Mattias Reichel
- Scott Murphy
- James Fredley
- Søren Berg Glasius
- David Estes
- Aaron Mondelblatt
- Arjang Chinichian
- Jonas Pammer
- Brian Koehmstedt
- Gianluca Sartori
- Paul King
Their dedication and hard work have significantly contributed to the release of Grails 7.0.0-M3.
Join the Grails Slack Community, share your feedback, and contribute to making Grails Framework even better in the future. Happy coding!