Both GROOVY_5_0_X and master are now updated with what I believe is a path forward, but I am awaiting to hear from the Grails team on whether the latest version allows them to move forward.
GROOVY-11985 which reverted GROOVY-8854 was rolled back. Instead, GROOVY_5_0_X adds @Virtual so we can support the traditional template method style from Groovy 2-4 and fixes the resolution breakages from GROOVY-8854 (as per GROOVY-12106). It leaves the Java-like style (GROOVY-8854) as the default. master also reinforces the Java-like style by adding (non-@Virtual) static methods to the trait interface - fixing some naming previous issues too. As far as I know, the "fuzzy" areas in GEP-22 now all have well-defined semantics. Let me know if you have any feedback. I plan to re-roll the release(s) in a day or two. Cheers, Paul. On Fri, Jun 26, 2026 at 10:50 PM Paul King <[email protected]> wrote: > > Okay, I did another PR here: > > https://github.com/apache/groovy/pull/2631 > > This adds @Virtual as the pair of @Anchored and, as the PR is > currently positioned, flips back to GROOVY-8854 behavior. > > My previous thinking was that given we hadn't advertised the breaking > change, was to remove the break and have a more well-defined migration > path from 6.0.X which is only a month or 2 away I would guess. > > But if the consensus is to keep the breaking change, the implications > for Grails are that they would need to add @Virtual to keep the old > behavior. I don't think the reflection path that is their current > workaround is something we want to suggest frameworks built on Groovy > use. And the other workarounds are quite invasive and would need a > long time for them to percolate through the Grails plugin community. > We don't know anyone using the new behavior, so we don't know if > further folks would be impacted but the static method feature is still > marked as incubating. > > The additional implication for Grails is that plugins using the same > pattern that Grails itself uses will continue to work if compiled > under 4.0.32 but will break as soon as they are compiled under Groovy > 5 unless they also add @Virtual. At least the breakage is limited to > the traits themselves and not Grails applications which weave in the > traits. > > If folks are happy with that path, I can cancel the vote and re-roll > the release, and discuss with Grails about getting @Virtual added. > > Cheers, Paul. > > On Fri, Jun 26, 2026 at 5:48 AM Jochen Theodorou <[email protected]> wrote: > > > > Hi, > > > > > > I think I have to agree with Eric. -1 > > > > Normally I would suggest to undo the trait changes in 5.0.7 and go with > > that, but that would not help Grails either. > > > > Is it a 5.1.0? Well the question is what comes after? If we "fix" the > > reamining bug, does that lead to a reevaluation of who traits work and > > then we get a 5.2 next? Also Anchored is a best effort to solve a > > problem onlly 5.0.x introduced. Do we intend to keep that around? Is > > Grails using that? > > > > I really do not want to block things, but I the situation does currently > > not feel exactly right. > > > > I have a wish to Grails here. Could you write a test suite that covers > > the Grails cases in "all" aspects? And I mean the way you expect the > > things to work - in pure Groovy, without Grails of course. I think that > > is better than this case-by-case and late discoveries process we > > currently have. > > > > bye Jochen > > > > > > On 6/25/26 20:06, James Daugherty via dev wrote: > > > Hi Eric, > > > > > > Would you be agreeable to a release of 5.1.0 or a milestone of 5.1.0 > > > with these changes? Is your concern for any 5.x version or just the > > > 5.0.x version? > > > > > > Regards, > > > James > > > > > > On Thu, Jun 25, 2026 at 2:02 PM James Fredley <[email protected]> > > > wrote: > > >> > > >> Hi Eric, > > >> > > >> I wanted to share some context on our current work to bring Groovy 5 > > >> support into Apache Grails 8. > > >> > > >> After the Groovy 5 release last year, Grails encountered several > > >> compatibility challenges. The team has invested substantial effort, more > > >> than 75 iterations, on this pull request to resolve the issues and > > >> enable Grails 8 to ship on the stable Groovy 5.0.7 release alongside > > >> Spring Boot 4: > > >> https://github.com/apache/grails-core/pull/15557 > > >> > > >> Without completing this work, we would likely need to release Apache > > >> Grails 8 on Apache Groovy 4 and then target Apache Groovy 6 for Apache > > >> Grails 9. However, Grails 7 is built on Spring Boot 3.5.x, which reaches > > >> end of life on June 30, 2026. This creates real pressure to deliver > > >> Grails 8 in a timely manner. > > >> > > >> For clarity, Apache Grails 9 will almost certainly target Apache Groovy > > >> 6 regardless. > > >> > > >> On a more positive note, we have also improved our release validation > > >> process with Canary builds. The previous joint validation approach > > >> primarily caught issues in patch releases. The new process lets us test > > >> Grails against upcoming Groovy versions much earlier and more > > >> comprehensively: > > >> https://github.com/apache/grails-core/pull/15558 > > >> > > >> Thank you for your ongoing collaboration. I am happy to discuss > > >> timelines, the remaining workarounds in the PR, or anything else that > > >> would help us coordinate effectively. > > >> > > >> Best regards, > > >> James Fredley > > >> VP, Apache Grails PMC > > >> > > >> This version stays professional, collaborative, and timeline focused > > >> while remaining fully compliant with your no em dashes preference. Ready > > >> to copy and send or post to the list. > > >> > > >> On 2026/06/25 15:44:42 "Milles, Eric (TR Technology) via dev" wrote: > > >>> -1 (binding) > > >>> > > >>> I do not think the trait static method change (GROOVY-11985) or the new > > >>> Anchored transform (GROOVY-12093) should have been done in a point-fix > > >>> release. GROOVY-12106 is evidence that one problem has been traded for > > >>> another. There was quite a bit of discussion, but IMO the behavior > > >>> should have remained as-is and Grails could investigate a workaround. > > >>> Groovy 5 was in pre-release state for an extended time. So, there was > > >>> plenty of time to try it out and discuss the trait changes. > > >>> > > >>> Having Groovy 5.0.0 to 5.0.6 have one set of behaviors and then 5.0.7 > > >>> onwards do something else plus have GROOVY-12106 and possibly other > > >>> issues is not a good look. > > >>> > > >>> If 11985 and 12093 were removed, I'm okay with the rest of 5.0.7. We > > >>> could then further weigh the possibilities for Groovy 5 and 6 WRT trait > > >>> static member references. > > >>> > > >>> > > >>> ________________________________ > > >>> From: Paul King <[email protected]> > > >>> Sent: Thursday, June 25, 2026 2:46 AM > > >>> To: Groovy_Developers <[email protected]> > > >>> Subject: [VOTE] Release Apache Groovy 5.0.7 > > >>> > > >>> Dear development community, I am happy to start the VOTE thread for a > > >>> Groovy 5. 0. 7 release! This release includes 14 bug fixes/improvements > > >>> as outlined in the changelog: https: //urldefense. com/v3/__https: > > >>> //issues. apache. org/jira/secure/ReleaseNote. > > >>> jspa?projectId=12318123&version=12356953__;!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjyRDpx1WUg$ > > >>> > > >>> > > >>> Dear development community, > > >>> > > >>> I am happy to start the VOTE thread for a Groovy 5.0.7 release! > > >>> > > >>> This release includes 14 bug fixes/improvements as outlined in the > > >>> changelog: > > >>> https://urldefense.com/v3/__https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318123&version=12356953__;!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjyRDpx1WUg$ > > >>> > > >>> Tag: > > >>> https://urldefense.com/v3/__https://gitbox.apache.org/repos/asf?p=groovy.git;a=tag;h=refs*tags*GROOVY_5_0_7__;Ly8!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjyRmvXQoww$ > > >>> Tag commit id: 061e5462ecd50521e881005a82f2733e31ca976a > > >>> > > >>> The artifacts to be voted on are located as follows (r85451). > > >>> Source release: > > >>> https://urldefense.com/v3/__https://dist.apache.org/repos/dist/dev/groovy/5.0.7/sources__;!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjyQSz2JVOg$ > > >>> Convenience binaries: > > >>> https://urldefense.com/v3/__https://dist.apache.org/repos/dist/dev/groovy/5.0.7/distribution__;!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjyQpsp9rgw$ > > >>> > > >>> Release artifacts are signed with a key from the following file: > > >>> https://urldefense.com/v3/__https://dist.apache.org/repos/dist/release/groovy/KEYS__;!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjySCMw7zpA$ > > >>> > > >>> Please vote on releasing this package as Apache Groovy 5.0.7. > > >>> > > >>> Reminder on ASF release approval requirements for PMC members: > > >>> https://urldefense.com/v3/__http://www.apache.org/legal/release-policy.html*release-approval__;Iw!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjyRvf488sA$ > > >>> Hints on validating checksums/signatures (but replace md5sum with > > >>> sha256sum): > > >>> https://urldefense.com/v3/__https://www.apache.org/info/verification.html__;!!GFN0sa3rsbfR8OLyAw!aTE-LsRa0qOkuOe9PDf8SxURjg4lPNkURZZDxdnHHE1SarHQqnSUqpw4F1byG6kxErokFTjgNp2kjyS1WVRpgA$ > > >>> > > >>> The vote is open for the next 72 hours and passes if a majority of at > > >>> least three +1 PMC votes are cast. > > >>> > > >>> [ ] +1 Release Apache Groovy 5.0.7 > > >>> [ ] 0 I don't have a strong opinion about this, but I assume it's ok > > >>> [ ] -1 Do not release Apache Groovy 5.0.7 because... > > >>> > > >>> Here is my vote: > > >>> > > >>> +1 (binding) > > >>> > > >>> > >
