Hello, reading the proposed enhancements for Groovy 5.0 I've several remarks, the proposed destructuring syntax is ambiguous switch(point3D) { case (a, b, c) -> ... } It's not clear if a, b and c are existing local variables (declared above) or fresh new bindings. Choosing fresh new variables instead of existing local variable has been a major contention point when the Python syntax was discussed. I do not want to influence you one way or another on the syntax to choose, just point the ambiguity.
Otherwise, we are adding '_' as an unamed pattern/variable (as a preview) [1] and are using "when" instead of "&&" for the guard [2]. regards, Rémi [1] [ https://openjdk.org/jeps/443 | https://openjdk.org/jeps/443 ] [2] [ https://openjdk.org/jeps/441 | https://openjdk.org/jeps/441 ] > From: "Paul King" <pa...@asert.com.au> > To: "dev" <dev@groovy.apache.org> > Sent: Saturday, August 19, 2023 4:07:39 PM > Subject: Re: [VOTE] Release Apache Groovy 5.0.0-alpha-1 > I will be updating the release notes over the next few days (during the voting > window) and they will be here: > [ https://groovy-lang.org/releasenotes/groovy-5.0.html | > https://groovy-lang.org/releasenotes/groovy-5.0.html ] > It's just a skeleton at the moment but I'll update as I go, but I won't start > in > earnest until tomorrow. > In the meantime, perhaps looking at the issues labelled 'breaking' is the best > bet: > [ > https://issues.apache.org/jira/browse/GROOVY-11118?jql=project%20%3D%2012318123%20AND%20fixVersion%20%3D%2012351227%20and%20labels%20%3D%20breaking > | > https://issues.apache.org/jira/browse/GROOVY-11118?jql=project%20%3D%2012318123%20AND%20fixVersion%20%3D%2012351227%20and%20labels%20%3D%20breaking > ] > Cheers, Paul. > On Sat, Aug 19, 2023 at 10:36 PM Andres Almiray < [ mailto:aalmi...@gmail.com > | > aalmi...@gmail.com ] > wrote: >> +1 (binding) >> Is there a list of breaking changes for 5.x? >> On Sat, Aug 19, 2023 at 4:21 AM Paul King < [ mailto:pa...@asert.com.au | >> pa...@asert.com.au ] > wrote: >>> Dear development community, >>> I am happy to start the VOTE thread for a Groovy 5.0.0-alpha-1 release! >>> NOTE: We are not feature complete for Groovy 5. In the release notes, >>> I will make it clear that this is an alpha release, not recommended for >>> production use and subject to change. But I think we need to start getting >>> feedback on the parts that are ready and having a release will help with >>> that. >>> This release includes 119 bug fixes/improvements as outlined in the >>> changelog: >>> [ >>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318123&version=12351227 >>> | >>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318123&version=12351227 >>> ] >>> Tag: [ >>> https://gitbox.apache.org/repos/asf?p=groovy.git;a=tag;h=refs/tags/GROOVY_5_0_0_ALPHA_1 >>> | >>> https://gitbox.apache.org/repos/asf?p=groovy.git;a=tag;h=refs/tags/GROOVY_5_0_0_ALPHA_1 >>> ] >>> Tag commit id: cbd5a526a7af9375858c8967adc1e32555cb91f7 >>> The artifacts to be voted on are located as follows (r63508). >>> Source release: [ >>> https://dist.apache.org/repos/dist/dev/groovy/5.0.0-alpha-1/sources | >>> https://dist.apache.org/repos/dist/dev/groovy/5.0.0-alpha-1/sources ] >>> Convenience binaries: [ >>> https://dist.apache.org/repos/dist/dev/groovy/5.0.0-alpha-1/distribution | >>> https://dist.apache.org/repos/dist/dev/groovy/5.0.0-alpha-1/distribution ] >>> Release artifacts are signed with a key from the following file: >>> [ https://dist.apache.org/repos/dist/release/groovy/KEYS | >>> https://dist.apache.org/repos/dist/release/groovy/KEYS ] >>> Please vote on releasing this package as Apache Groovy 5.0.0-alpha-1. >>> Reminder on ASF release approval requirements for PMC members: >>> [ http://www.apache.org/legal/release-policy.html#release-approval | >>> http://www.apache.org/legal/release-policy.html#release-approval ] >>> Hints on validating checksums/signatures (but replace md5sum with >>> sha256sum): >>> [ https://www.apache.org/info/verification.html | >>> https://www.apache.org/info/verification.html ] >>> 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.0-alpha-1 >>> [ ] 0 I don't have a strong opinion about this, but I assume it's ok >>> [ ] -1 Do not release Apache Groovy 5.0.0-alpha-1 because... >>> Here is my vote: >>> +1 (binding)