It seems like a massive step forward and I certainly don't want to introduce blockers to the M4 checkpoint being reached. Still, and I'm working to marshall resources on my team to advance this, I couldn't be a stronger advocate in us needing to have hot-swapping as a part of the initial full release; I'm hoping this can get slated into a release candidate ahead of GA.
-Andrew On Sat, May 17, 2025 at 2:58 PM James Daugherty <jdaughe...@jdresources.net.invalid> wrote: > Hi Everyone, > > In the weekly meeting we briefly discussed the outstanding items to release > the first Apache milestone: > https://lists.apache.org/thread/hm3v6ooqqchms81tljk8h2vpvtj1qfcf > > I think this discussion merits its own mailing list thread and I'm > interested to hear everyone's thoughts on the current plans. From our > meeting: we think the current code line now is functional end-to-end. We > now need to determine what should be finished so we can release 7.0.0-M4. > From my notes, the following needs completed to proceed with an Apache > Grails milestone release: > > # We will likely wait for Groovy 4.0.27 with Paul's reproducibility fixes. > # (assigned to James D) We need to create a script used to verify our > build (so we can satisfy Security's requirements) > # (assigned to James D) We need to create a gradle script to publish > the source/jars to the Apache distribution locations. We plan to model > it after the groovy-release repo. > # (assigned to James D) We need to have GitHub only stage, not > "release". This requires minor build updates on our side. We intend > to manually release the jars to maven central as part of our voting > workflow. > # (assigned to Mattias) spring-security has to be released & headers added. > > I think we have some other outstanding items too, but it's not clear to me > if they need to be done to perform a release: > # We need to rebrand "Grails" to "Apache Grails" in our documentation. > # We need to remove references to the Grails Foundation on the website > # We need to deploy the grails.apache.org website. > > > Here's my first attempt at a summary of 7.0.0-M4: > > Apache Grails 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, worked towards reproducible > builds, added license headers to our source code, and changed the maven > coordinates of all Grails Artifacts. > > Here is the detailed list since 7.0.0-M3: > * 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. > > > I'm hoping this recap is a starting point for the release notes of > 7.0.0-M4. I'm sure I've missed something too. What are people's thoughts > on the nexts steps and these notes? > > -James > -- *Andrew Garcia* | Co-Founder & CEO and...@goodshuffle.com *Goodshuffle Pro* <https://pro.goodshuffle.com/?utm_source=goodshuffle&utm_medium=email&utm_campaign=employeesignature&fbid=emailsignaturehomepage> | Read our reviews on Capterra <https://www.capterra.com/p/167364/Goodshuffle-Pro/reviews/> <https://www.facebook.com/Goodshuffle/> <https://www.instagram.com/goodshuffle/> <https://www.linkedin.com/company/goodshuffle/posts/?feedView=all> <https://www.youtube.com/c/GoodshufflePro> <https://pro.goodshuffle.com/dispatch-lp?utm_source=goodshuffle&utm_medium=referral&utm_campaign=Feature_Release>