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) > >>> > >>> >
