This is an automated email from the ASF dual-hosted git repository. jamesfredley pushed a commit to branch 7.0.0-M4-blog-post in repository https://gitbox.apache.org/repos/asf/grails-static-website.git
commit 08e9123da9df552c1fd34847e2200c3e0eb81070 Author: James Fredley <[email protected]> AuthorDate: Mon Jun 9 15:55:24 2025 -0400 Draft 7.0.0-M4 blog post --- posts/2025-06-10-grails-7-m4.md | 195 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) diff --git a/posts/2025-06-10-grails-7-m4.md b/posts/2025-06-10-grails-7-m4.md new file mode 100644 index 0000000000..c89a98ecd7 --- /dev/null +++ b/posts/2025-06-10-grails-7-m4.md @@ -0,0 +1,195 @@ +--- +title: Apache Grails 7.0.0-M4 - Release Announcement +date: June 10, 2025 +description: The Apache Software Foundation™ is excited to announce the Milestone 4 release of Grails Framework 7! +author: James Fredley +image: grails-blog-index-3.png +--- + +# [%title] + +[%author] + +[%date] + +The Apache Software Foundation is excited for the release of Grails Framework 7.0.0-M4. \ +We encourage you to try this pre-release and provide your feedback [here](https://github.com/apache/grails-core/issues). + +### 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]](https://lists.apache.org/[email protected]) \ +**Subscribe:** Send a blank email to [[email protected]](mailto:[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]](https://lists.apache.org/[email protected]) \ +**Subscribe:** Send a blank email to [[email protected]](mailto:[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-M4, check out the [Grails 7.0.0-M1 Release Blog Post](/blog/2024-12-23-grails-7-m1.html) and [Grails 7.0.0-M3 Release Blog Post](/blog/2025-03-05-grails-7-m3.html) + +Apache Grails (incubating) 7.0.0-M4 is the first release for Grails under the Apache Software Foundation (ASF). This release focuses first on meeting the requirements of the ASF & improving the developer experience of Grails itself & Grails Applications. As part of this transition, the developers moved to a mono repository, reworked the way the various Grails CLIs work, modernized its build system, modernized the various Grails Gradle Tasks, modernized the various Grails Gradle Plugins, [...] + +### With the release of Grails 7.0.0-M4, we have: +* PR #14750 - support non-persistent super classes for @Autotimestamp +* Issue #14745 - remove deprecated doc method on Grails Plugins +* Issue #14745 - remove duplicate grails.factories & grails-plugin.xml files now that AST generation is working correctly +* Issue #14745 - switch to Spring Boot 3.5.0-RC1 with Spring Framework 6.2.7 due to bug (https://github.com/spring-projects/spring-framework/issues/34796) +* Issue #14745 - change the grails-gradle-model to export Groovy 3 due to Gradle Task isolation in later versions of Gradle +* Issue #14745 - rework the FindMainTask to correctly set the main Application class on BootWar, BootJar, & BootRun +* Issue # 14745 - remove org.grails.plugins.CodecGrailsPlugin; use org.grails.plugins.codecs.CodecsGrailsPlugin instead +* Issue # 14745 - remove the remaining pathingJar task functions +* Issue # 14745 - fix a databinding scenario in DataBindingUtils to lookup a domain object +* PR #14749 - retire Mongo 5.0 & 6.0 test pipelines since those versions are end of support +* PR #14746 - switch to asset-pipeline-gradle to 5.0.9 +* PR #14743 - remove redundant buildScript from test projects +* Issue #14706 - rework grailsw to be usable indepedendently of SDKMAN installs +* Issue #14706 - rework grails-shell-cli to be usable independently of SDKMAN installs +* Issue #14706 - rework the command cli to support a grailsw that can self-update either forge or legacy shell cli +* Issue #14706 - distribute a delegating CLI that can call either forge or the legacy shell cli +* Issue #14706 - rework the legacy shell cli to correctly find profiles +* Issue #14706 - rework both grailsw & grails-shell-cli to be testable outside of releases +* Issue #14679 - generate reproducible groovydoc jars +* Issue #14679 - fix profile compilation to generate reproducible jars +* Issue #14679 - ensure groovydoc is used instead of javadoc for documentation jars +* PR #14709 - switch to Gradle 8.14 +* PR #14678 - add support for external config locations +* Refactor grails into a mono repo (grails-views, gsp, data mapping, geb, etc are all merged into core now) +* As part of the mono repo transition, several Deprecated classes were removed from the views project; see the upgrade guide for the details. +* Issue #14679 - refactor grails build to be parallel & lazy +* Issue #14679 - change all Grails gradle tasks to support Caching where appropriate and support lazy style configuration +* Issue #14679 - Redesign the Grails Data TCK to support modern versions of Java +* Issue #14679 - Support consistent property dates in generated property files when SOURCE_DATE_EPOCH is set +* Issue #14679 - Make grails.factories generation reproducible +* Issue #14679 - Refactor Grails AST Transformations to take advantage of Groovy's TransformWithPriority and enforce transforms always run in the order defined by the class `GroovyTransformOrder` +* Issue #14679 - Remove manifest attributes that could vary on the Grails jars (Built-By, Created-By etc) +* Issue #14679 - Fix sourcejar creation to not contain duplicates +* Issue #14679 - Fix javadoc jars to be generated based on groovydoc & to not contain duplicates +* Issue #14679 - Change AST transforms to be reproducible by adopting determined ordering collections +* Issue #14679 - Configure Grails jars per Gradle's reproducibility requirements (fixed permissions, reproducible file order, etc) +* Issue #13850 - introduce `grails-common` to share common code between Grails Data Mapping & Grails-Core +* Issue #14679 - add scripts to confirm reproducibility of Grails; currently 14 of 290 jars are reproducible +* Issue #14679 - make TagLib lookups reproducible +* PR# 14671 - switch to webjars for test css/js assets instead of checked in files +* The Grails Gradle plugin had a bug that caused plugin resolution issues that was fixed after the last milestone. +* Rework the grails bom to generate valid Gradle modules, be easier to maintain, and valid pom files. Enhance the documentation process to parse the bom & generate the published versions in the grails doc. + +And in addition to all of this: + +* We changed all coordinates of Grails to be org.apache.grails based. See https://github.com/apache/grails-core/blob/7.0.x/RENAME.md for how we mapped these libraries. There is also a script documented in the upgrade guide to assist in upgrading. +* Significant test fixes +* Significant documentation updates & changes +* Addition of license headers to Grails Source +* Addition of NOTICE to Grails Source +* Created https://repo.grails.org/grails/restricted/ to replace https://repo.grails.org/grails/core longer term. This virtual repo's scope is significantly reduced to help reduce the chance of using outdated libraries. + +Upgrade instructions are available in the documentation. + +## Dependency Upgrades +In this release, we've upgraded several dependency versions, including but not limited to the following: + +* Asset Pipeline 5.0.9 +* Groovy 4.0.27 +* Spring Framework 6.2.7 +* Spring Boot 3.5.0 +* Gradle 8.14 +* Spock 2.3-groovy-4.0 +* See all in the [grails-bom](https://docs.grails.org/7.0.0-M4/ref/Versions/Grails%20BOM.html). + +## Installing Grails 7.0.0-M4 +Try out Grails 7.0.0-M4 today by visiting the online app creator * [Grails Forge](https://start.grails.org/). +Alternatively, you can quickly install Grails 7.0.0-M4 using the [SDKMan](https://sdkman.io/). + +1. If you don't have SDKMan installed, follow the instructions at [SDKMan Installation Guide](https://sdkman.io/install/) + to set it up. +2. Once SDKMan is installed, open your terminal and run the following command to install Grails 7.0.0-M4: + + ```shell + sdk install grails 7.0.0-M4 + ``` + +3. You're all set! To verify the installation, run: + + ```shell + grails --version + ``` + +## Upgrading Your Existing Applications to Grails 7.0.0-M4 +If you already have a Grails application and want to upgrade to the latest version, follow these steps: + +1. Open the project in your favorite IDE (preferably JetBrains' IntelliJ IDEA). +2. Update your application's `gradle.properties` file to specify Grails 7.0.0-M4 as the desired version. + + ```properties + grailsVersion=7.0.0-M4 + # 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 + ``` + +3. 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-M4/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-M4. + +By following these steps, you should be able to transition your existing Grails application to Grails 7.0.0-M4. + +### 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](https://start.grails.org) and generate a new Grails application with Grails 7.0.0-M4. 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](https://docs.renovatebot.com/) or +[Dependabot](https://dependabot.com/) 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-M4. Happy coding! + +## Why should you try out Grails 7.0.0-M4? +* 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](https://github.com/orgs/apache/projects/487) over the next few + weeks. +* Based on feedback, an Apache Grails RC release is targeted for July 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-M4 possible. \ +Special thanks to: + +* [James Daugherty](https://github.com/jdaugherty) +* [James Fredley](https://github.com/jamesfredley) +* [Mattias Reichel](https://github.com/matrei) +* [Scott Murphy](https://github.com/codeconsole) +* [Søren Berg Glasius](https://github.com/sbglasius) +* [David Estes](https://github.com/davydotcom) +* [Aaron Mondelblatt](https://github.com/amondel2) +* [Arjang Chinichian](https://github.com/arjangch) +* [Jonas Pammer](https://github.com/JonasPammer) +* [Brian Koehmstedt](https://github.com/bkoehm) +* [Gianluca Sartori](https://github.com/gsartori) +* [Paul King](https://github.com/paulk-asert) + +Their dedication and hard work have significantly contributed to the release of Grails 7.0.0-M4. + +Join the [Grails Slack Community](https://grails.slack.com), share your feedback, and contribute to making Grails Framework even better in +the future. Happy coding! +
