|
| 1 | +--- |
| 2 | +version: 7.0.0-M5 |
| 3 | +priorVersion: 7.0.0-M4 |
| 4 | +title: Apache Grails (Incubating) [%version] - Release Announcement |
| 5 | +date: June 15, 2025 |
| 6 | +description: The Apache Grails (incubating) community is excited to announce the Milestone [%version] release of the Grails Framework! |
| 7 | +author: James Fredley |
| 8 | +image: grails-blog-index-3.png |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +# [%title] |
| 13 | + |
| 14 | +[%author] |
| 15 | + |
| 16 | +[%date] |
| 17 | + |
| 18 | +[%description] \ |
| 19 | +We encourage you to try this pre-release version and provide your feedback [here](https://github.com/apache/grails-core/issues). |
| 20 | + |
| 21 | +## Download Source Code and Binary Distributions |
| 22 | + |
| 23 | +[Apache Grails Downloads](/download.html) |
| 24 | + |
| 25 | +## What's Changed |
| 26 | +For changes made in Grails 7 prior to [%version], check out the following blog posts: |
| 27 | +* [Grails 7.0.0-M1](/blog/2024-12-23-grails-7-m1.html) |
| 28 | +* [Grails 7.0.0-M3](/blog/2025-03-05-grails-7-m3.html) |
| 29 | +* [Grails 7.0.0-M4](/blog/2025-06-10-grails-7-m4.html) |
| 30 | + |
| 31 | +### [%version] Changes: |
| 32 | +* Add permissions to release environments by @jdaugherty in #14795 |
| 33 | +* Force update asf.yaml by @jdaugherty in #14796 |
| 34 | +* explicitly add jdaugherty as approver by @jdaugherty in #14797 |
| 35 | +* back to snapshot by @jdaugherty in #14800 |
| 36 | +* Add add-license scripts for .raw, .java and .groovy by @jamesfredley in #14794 |
| 37 | +* Fixes found as part of the second attempt at M2 by @jdaugherty in #14782 |
| 38 | +* Verify build explanation and minor fix by @sbglasius in #14781 |
| 39 | +* initial attempt at GitHub -> Mailing List notifications by @jamesfredley in #14784 |
| 40 | +* Update Geb documentation changes in Breaking Changes Section by @jamesfredley in #14793 |
| 41 | +* Update grails-forge - google cloud run deploy documentation by @jamesfredley in #14803 |
| 42 | +* Unnest the snapshot zip uploaded to workflow results by @jamesfredley in #14808 |
| 43 | +* Gradle deprecations by @jdaugherty in #14805 |
| 44 | +* Update grails-static-website section on RELEASE.md by @jamesfredley in #14807 |
| 45 | +* Support specifying the publication name so that gradle plugins can be published by @jdaugherty in #14812 |
| 46 | +* Use developmentOnly Gradle configuration scope for webjars by @jamesfredley in #14811 |
| 47 | +* Rework mainClass gradle find logic by @jdaugherty in #14816 |
| 48 | +* fix: #14818 - ensure plugin is the base for web-plugin by @jdaugherty in #14819 |
| 49 | +* Fixing Issue #14173 – Update grails Command Documentation for Grails 7 by @irllyliketoast in #14809 |
| 50 | +* Update to new asset pipeline coordinates by @jdaugherty in #14813 |
| 51 | +* fix: update grails-docs coords in GrailsDocGradlePlugin by @matrei in #14826 |
| 52 | +* Support not adding components from the grails publish plugin by @jdaugherty in #14827 |
| 53 | +* fix: scope webjars as testAndDevelopmentOnly by @jamesfredley in #14829 |
| 54 | +* Update to Spring Boot 3.5.3 which uses Groovy 4.0.27 by @jamesfredley in #14824 |
| 55 | +* database-migration mapped to grails-data-hibernate5-dbmigration by @jamesfredley in #14831 |
| 56 | +* #14832 - support findMainTask caching with plugins & boot tasks in the task graph by @jdaugherty in #14833 |
| 57 | +* Add Documentation: Tomcat 10.1.42 multipart/form-data part count and header size limit by @jamesfredley in #14838 |
| 58 | +* chore(tests): move tests to the correct module by @matrei in #14839 |
| 59 | +* Merge grails-forge into grails-core by @jdaugherty in #14836 |
| 60 | +* Replace google analytics with Matomo, analytics.apache.org by @jamesfredley in #14842 |
| 61 | +* Correct dependency to grails-codecs-core by @matrei in #14844 |
| 62 | +* chore: update to 5.0.12 for the asset pipeline by @jdaugherty in #14879 |
| 63 | +* Fix spelling by @jdaugherty in #14881 |
| 64 | +* fix: #14854 - remove duplicate repo definition (restricted contains maven central) by @jdaugherty in #14882 |
| 65 | +* chore: #14779 - add better instructions on how to build & use the source distribution by @jdaugherty in #14880 |
| 66 | +* chore: #14877 - add DISCLAIMER, LICENSE, & NOTICE files to jar files by @jdaugherty in #14878 |
| 67 | +* Various Cleanup prior to Sitemesh 2 revert by @jdaugherty in #14876 |
| 68 | +* fix: #14090 - fix baseUrl returning the wrong result when forwardPort is null by @jdaugherty in #14884 |
| 69 | +* Revert to Sitemesh 2 for Grails 7 by @jdaugherty in #14875 |
| 70 | +* Issue #14748 - upgrade notes for gradle plugin / task changes by @jdaugherty in #14883 |
| 71 | +* #14316 Use local repo commands instead of the github api for Release Drop Down population by @JudeRV in #14834 |
| 72 | + |
| 73 | +Full Changelog: [v[%priorVersion]...v[%version]](https://github.com/apache/grails-core/compare/v[%priorVersion]...v[%version]) |
| 74 | + |
| 75 | +Upgrade instructions are available in the [documentation](https://docs.grails.org/[%version]/guide/single.html#upgrading60x). |
| 76 | + |
| 77 | +## Dependency Upgrades |
| 78 | +In this release, we've upgraded several dependency versions, including but not limited to the following: |
| 79 | + |
| 80 | +* Asset Pipeline 5.0.12 (now cloud.wondrify.asset-pipeline) |
| 81 | +* Groovy 4.0.27 |
| 82 | +* Spring Framework 6.2.8 |
| 83 | +* Spring Boot 3.5.3 |
| 84 | +* Gradle 8.14.2 |
| 85 | +* See all in the [grails-bom](https://docs.grails.org/[%version]/ref/Versions/Grails%20BOM.html). |
| 86 | + |
| 87 | +## Generating a new Grails [%version] application with Grails Forge |
| 88 | +Try out Grails today by visiting our online application generator [Grails Forge](https://start.grails.org/). This is the quickest and the recommended way to get started with Grails. |
| 89 | + |
| 90 | +After installing the JetBrains' IntelliJ IDEA [Grails Plugin](https://plugins.jetbrains.com/plugin/18504-grails), the Grails Application Forge will also be available under New Project in IntelliJ IDEA. |
| 91 | + |
| 92 | +Within your newly generated project you can access the Grails CLIs with the grails wrapper |
| 93 | + |
| 94 | +See [Types of CLI](https://docs.grails.org/[%version]/guide/gettingStarted.html#downloadingAndInstalling) for details on each CLI |
| 95 | + |
| 96 | +grail-shell-cli |
| 97 | + |
| 98 | +```shell |
| 99 | +grailsw |
| 100 | +``` |
| 101 | + |
| 102 | +grails-forge-cli |
| 103 | + |
| 104 | +```shell |
| 105 | +grailsw -t forge |
| 106 | +``` |
| 107 | + |
| 108 | +## Installing Grails CLIs [%version] with SDKMan |
| 109 | +Alternatively, you can quickly install Grails [%version] CLIs (grails-shell-cli and grails-forge-cli) using [SDKMan](https://sdkman.io/). |
| 110 | + |
| 111 | +See [Types of CLI](https://docs.grails.org/[%version]/guide/gettingStarted.html#downloadingAndInstalling) for details on each CLI |
| 112 | + |
| 113 | +1. If you don't have SDKMan installed, follow the instructions at [SDKMan Installation Guide](https://sdkman.io/install/) |
| 114 | + to set it up. |
| 115 | +2. Once SDKMan is installed, open your terminal and run the following command to install Grails [%version]: |
| 116 | + |
| 117 | + ```shell |
| 118 | + sdk install grails [%version] |
| 119 | + ``` |
| 120 | + |
| 121 | +3. You're all set! To verify the installation, run: |
| 122 | +
|
| 123 | + ```shell |
| 124 | + grails --version |
| 125 | + ``` |
| 126 | +
|
| 127 | +The Grails Shell CLI can be accessed as: |
| 128 | +
|
| 129 | +```shell |
| 130 | +grails |
| 131 | +``` |
| 132 | +or |
| 133 | +```shell |
| 134 | +grails-shell-cli |
| 135 | +``` |
| 136 | +The Grails Forge CLI can be accessed as: |
| 137 | +```shell |
| 138 | +grails -t forge |
| 139 | +``` |
| 140 | +or |
| 141 | +```shell |
| 142 | +grails-forge-cli |
| 143 | +``` |
| 144 | +
|
| 145 | +## Upgrading Your Existing Applications to Grails [%version] |
| 146 | +If you already have a Grails application and want to upgrade to the latest version, follow these steps: |
| 147 | +
|
| 148 | +1. Open the project in your favorite IDE (preferably JetBrains' IntelliJ IDEA). |
| 149 | +2. Update your application's `gradle.properties` file to specify Grails [%version] as the desired version. |
| 150 | +
|
| 151 | + ```properties |
| 152 | + grailsVersion=[%version] |
| 153 | + ``` |
| 154 | +
|
| 155 | +3. Make any necessary adjustments to your application code, configuration, and dependencies to ensure compatibility with |
| 156 | + the new version. [See Upgrade Guide](https://docs.grails.org/[%version]/guide/single.html#upgrading60x) |
| 157 | +
|
| 158 | +Normally, Grails Core dependencies are automatically updated using the Grails Bill of Materials (BOM). However, if you |
| 159 | +have specific versions defined in your build configuration, you may need to manually update them to align with |
| 160 | +Grails [%version]. |
| 161 | +
|
| 162 | +By following these steps, you should be able to transition your existing Grails application to Grails [%version]. |
| 163 | +
|
| 164 | +### Exploring Alternative Approaches |
| 165 | +If manual dependency updates seem daunting, or you want a more streamlined approach, consider the following alternatives: |
| 166 | +
|
| 167 | +#### 1. Use Grails Forge Website |
| 168 | +Visit [Grails Forge](https://start.grails.org) and generate a new Grails application with Grails [%version]. Compare the |
| 169 | +versions in the newly generated application with your existing one to identify any discrepancies. This can serve as a |
| 170 | +reference point for your update. |
| 171 | +
|
| 172 | +#### 2. Automated Dependency Update Bots |
| 173 | +Configure automated dependency update bots like [Renovate](https://docs.renovatebot.com/) or |
| 174 | +[Dependabot](https://dependabot.com/) with your source control platform (e.g., GitHub). These bots can automatically |
| 175 | +detect and update outdated dependencies in your project, including Grails dependencies, saving you time and effort in |
| 176 | +manual updates. |
| 177 | +
|
| 178 | +With these steps and alternative approaches, you should be well on your way to enjoying the exciting features and |
| 179 | +improvements in Grails [%version]. |
| 180 | +
|
| 181 | +## Why should you try out Grails [%version]? |
| 182 | +* Help us test this major upgrade of the Grails Framework and provide feedback. |
| 183 | +* Be ready for when Grails 7 is released. |
| 184 | +
|
| 185 | +## Grails 7 Release Schedule |
| 186 | +* We will continue to work on [updating and fixing issues](https://github.com/orgs/apache/projects/487) over the next few |
| 187 | + weeks. |
| 188 | +* Based on feedback, an Apache Grails RC release is targeted for July/August 2025. |
| 189 | +
|
| 190 | +## Apache Grails Mailing Lists |
| 191 | +### Users Mailing List |
| 192 | +The users mailing list will be a General purpose list for questions and discussion about Grails.\ |
| 193 | +**Web Archive:** [https://lists.apache.org/[email protected]](https://lists.apache.org/[email protected]) \ |
| 194 | +**Subscribe:** Send a blank email to [[email protected]](mailto:[email protected]) |
| 195 | +
|
| 196 | +### Dev Mailing List |
| 197 | +The dev mailing list is focused on the framework implementation and its evolution. \ |
| 198 | +**Web Archive:** [https://lists.apache.org/[email protected]](https://lists.apache.org/[email protected]) \ |
| 199 | +**Subscribe:** Send a blank email to [[email protected]](mailto:[email protected]) |
| 200 | +
|
| 201 | +When participating in mailing lists, you should never include any personally identifiable information (PII) like |
| 202 | +your address, phone number or email address, as all messages sent to these lists are publicly accessible and archived, |
| 203 | +meaning anyone can view your information. Make sure your email client does not add your signature with these items. |
| 204 | +
|
| 205 | +## Thank you! |
| 206 | +A huge thank you to our amazing community for supporting the Grails Framework over the past 19 years! We’re excited for |
| 207 | +the future and grateful for the opportunity to continue innovating and pushing Grails forward together. |
| 208 | +
|
| 209 | +## Contributors |
| 210 | +We would like to extend our heartfelt thanks to all the contributors who made Grails [%version] possible. \ |
| 211 | +Special thanks to: |
| 212 | +
|
| 213 | +* [James Daugherty](https://github.com/jdaugherty) |
| 214 | +* [James Fredley](https://github.com/jamesfredley) |
| 215 | +* [Mattias Reichel](https://github.com/matrei) |
| 216 | +* [Scott Murphy](https://github.com/codeconsole) |
| 217 | +* [Brian Koehmstedt](https://github.com/bkoehm) |
| 218 | +* [Søren Berg Glasius](https://github.com/sbglasius) |
| 219 | +* [Paul King](https://github.com/paulk-asert) |
| 220 | +* [Jonas Pammer](https://github.com/JonasPammer) |
| 221 | +* [Gianluca Sartori](https://github.com/gsartori) |
| 222 | +* [David Estes](https://github.com/davydotcom) |
| 223 | +* [Michael Yan](https://github.com/rainboyan) |
| 224 | +* [Jude Vargas](https://github.com/JudeRV) |
| 225 | +* [Thomas Rasmussen](https://github.com/dauer) |
| 226 | +* [Laura Estremera](https://github.com/irllyliketoast) |
| 227 | +* [Andrew Herring](https://github.com/dreewh) |
| 228 | +* [Yasuharu Nakano](https://github.com/nobeans) |
| 229 | +* [Aaron Mondelblatt](https://github.com/amondel2) |
| 230 | +* [Arjang Chinichian](https://github.com/arjangch) |
| 231 | +* [Felix Scheinost](https://github.com/felixscheinost) |
| 232 | +* [gandharvas](https://github.com/gandharvas) |
| 233 | +* [zyro](https://github.com/zyro23) |
| 234 | +
|
| 235 | +Recent Contributors by Project: |
| 236 | +
|
| 237 | +* [grails-core](https://github.com/apache/grails-core/graphs/contributors[%6MonthsBackForGitHub]) |
| 238 | +* [grails-spring-security](https://github.com/apache/grails-spring-security/graphs/contributors[%6MonthsBackForGitHub]) |
| 239 | +* [grails-static-website](https://github.com/apache/grails-static-website/graphs/contributors[%6MonthsBackForGitHub]) |
| 240 | +* [grails-forge-ui](https://github.com/apache/grails-forge-ui/graphs/contributors[%6MonthsBackForGitHub]) |
| 241 | +* [grails-quartz](https://github.com/apache/grails-quartz/graphs/contributors[%6MonthsBackForGitHub]) |
| 242 | +* [grails-gradle-publish](https://github.com/apache/incubator-grails-gradle-publish/graphs/contributors[%6MonthsBackForGitHub]) |
| 243 | +* [grails-redis](https://github.com/apache/grails-redis/graphs/contributors[%6MonthsBackForGitHub]) |
| 244 | +* [grails-github-actions](https://github.com/apache/grails-github-actions/graphs/contributors[%6MonthsBackForGitHub]) |
| 245 | +
|
| 246 | +[Combined Commit List](https://github.com/search?q=repo%3Aapache%2Fgrails-core+repo%3Aapache%2Fgrails-spring-security+repo%3Aapache%2Fgrails-static-website+repo%3Aapache%2Fgrails-forge-ui+repo%3Aapache%2Fgrails-quartz+repo%3Aapache%2Fincubator-grails-gradle-publish+repo%3Agrails-redis+repo%3Agrails-github-actions+is%3Apublic&type=commits&s=committer-date&o=desc) |
| 247 | +
|
| 248 | +Their dedication and hard work have significantly contributed to the release of Grails [%version]. |
| 249 | +
|
| 250 | +Join the [Grails Slack Community](https://grails.slack.com), share your feedback, and contribute to making Grails Framework even better in |
| 251 | +the future. Happy coding! |
| 252 | +
|
0 commit comments