[RESULT][VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-25 Thread Paul King
The vote has passed with 3 +1 binding votes and no other votes. I'll
proceed with next steps.

Regards, Paul.

On Tue, Oct 22, 2019 at 10:01 PM Paul King  wrote:

>
> Dear development community,
>
> I am happy to start the VOTE thread for a Groovy 3.0.0-rc-1 release!
>
> This release includes 52 bug fixes/improvements as outlined in the
> changelog:
>
> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318123=12345982
>
> Groovy 3 is nearing lockdown status for final release.
> One part which has only recently been finished and still needs a bit more
> polishing is a revamped groovydoc. It no longer requires antlr2. Groovy
> files are parsed using antlr4 and Java using com.github.javaparser. Because
> this new version is less stable than the rest of the release it currently
> is disabled by default and enabled with the 'preview.groovydoc.antlr4'
> system property. The plan is for this property to be removed before final
> release but feedback on existing functionality welcome. You might need to
> include additional dependent jars on your classpath when using the current
> version.
>
> Tag:
> https://gitbox.apache.org/repos/asf?p=groovy.git;a=tag;h=refs/tags/GROOVY_3_0_0_RC_1
> Tag commit id: 206b2017f637df3c1ab59a6178979a274aae7246
>
> The artifacts to be voted on are located as follows (r36443).
> Source release:
> https://dist.apache.org/repos/dist/dev/groovy/3.0.0-rc-1/sources
> Convenience binaries:
> https://dist.apache.org/repos/dist/dev/groovy/3.0.0-rc-1/distribution
>
> Release artifacts are signed with a key from the following file:
> https://dist.apache.org/repos/dist/dev/groovy/KEYS
>
> Please vote on releasing this package as Apache Groovy 3.0.0-rc-1.
>
> Reminder on ASF release approval requirements for PMC members:
> 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
>
> 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 3.0.0-rc-1
> [ ]  0 I don't have a strong opinion about this, but I assume it's ok
> [ ] -1 Do not release Apache Groovy 3.0.0-rc-1 because...
>
> Here is my vote:
>
> +1 (binding)
>
>


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
We create antlr4 plugin factory via the following code in `Antlr4Util`:

Antlr4PluginFactory antlr4PluginFactory = (Antlr4PluginFactory)
ParserPluginFactory.antlr4(configuration);


The `antlr4` method is `static`,  its implementation is to `new
Antlr4PluginFactory`  instance, and the method can not be overrided by
`ParserPluginFactory` subclasses.  

public static ParserPluginFactory antlr4(CompilerConfiguration
compilerConfiguration) {
return new Antlr4PluginFactory(compilerConfiguration);
}
 

So I wonder how to reproduce the `java.lang.ClassCastException`...

Cheers,
Daniel.Sun




-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Milles, Eric (TR Tech, Content & Ops)
org.codehaus.groovy.control.CompilerConfiguration:

public void setPluginFactory(ParserPluginFactory pluginFactory) {
this.pluginFactory = pluginFactory;
}

You cannot control what the user sets here.  The contract is that they supply a 
ParserPluginFactory and you use it to create parsers.  You should not be 
checking instanceof against the ParserPluginFactory or the ParserPlugin 
instances that it creates.


Also, Antlr2Utils.parse("DummyNode<" + option + ">") is not working correctly 
in GenericsUtils#parseClassNodesFromString.

From: Daniel.Sun 
Sent: Tuesday, October 22, 2019 12:18 PM
To: d...@groovy.incubator.apache.org 
Subject: Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

The `static` method `antlr4` only creates `Antlr4PluginFactory` instance, so
I wonder how to make it create
`org.codehaus.groovy.control.ParserPluginFactory$1` instance?

public abstract class ParserPluginFactory {
/**
 * creates the ANTLR 4 parser
 * @return the factory for the parser
 */
public static ParserPluginFactory antlr4(CompilerConfiguration
compilerConfiguration) {
return new Antlr4PluginFactory(compilerConfiguration);
}
...
}

Cheers,
Daniel.Sun



-
Apache Groovy committer & PMC member
Blog: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__blog.sunlan.me=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=3sXRMCApJsjZv28Q1RZV35AK1UIRNphVxm6-dmKB8F0=MndXtn8Ks91u-uuTXNVmqT8mg7L-MJZ1y6Cyyy4_UdM=
Twitter: @daniel_sun

--
Sent from: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__groovy.329449.n5.nabble.com_Groovy-2DDev-2Df372993.html=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=3sXRMCApJsjZv28Q1RZV35AK1UIRNphVxm6-dmKB8F0=zCP1rCCMskZnfGGWYRqQJRGEVykB8F5pyC-V72K3K1Q=


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
The `static` method `antlr4` only creates `Antlr4PluginFactory` instance, so
I wonder how to make it create
`org.codehaus.groovy.control.ParserPluginFactory$1` instance?

public abstract class ParserPluginFactory {
/**
 * creates the ANTLR 4 parser
 * @return the factory for the parser
 */
public static ParserPluginFactory antlr4(CompilerConfiguration
compilerConfiguration) {
return new Antlr4PluginFactory(compilerConfiguration);
}
...
}

Cheers,
Daniel.Sun



-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
I think I understand the reason why `ClassCastException` will be thrown, but
it is not a common case, in other words, we usually only use
`AntlrParserPluginFactory` and `Antlr4ParserPluginFactory`. Anyway, we
should tweak the code.

Cheers,
Daniel.Sun



-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
Hi Eric,

  Could you show us the code to reproduce the following
`ClassCastException`? Thanks.

java.lang.ClassCastException:
org.codehaus.groovy.control.ParserPluginFactory$1 cannot be cast to
org.apache.groovy.parser.antlr4.Antlr4PluginFactory
at org.codehaus.groovy.ast.tools.Antlr4Utils.parse(Antlr4Utils.java:32)
at
org.codehaus.groovy.ast.tools.GenericsUtils.parseClassNodesFromString(GenericsUtils.java:613)


Cheers,
Daniel.Sun



-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Milles, Eric (TR Tech, Content & Ops)
This type of check makes an unsafe assumption.  If you need a parser, the 
factory is there to supply one to you.  That is the purpose of the factory 
pattern.

boolean oldParserEnabled = 
compilationUnit.getConfiguration().getPluginFactory() instanceof 
AntlrParserPluginFactory;
ClassNode parsedNode = oldParserEnabled ?
Antlr2Utils.parse("DummyNode<" + option + ">") :
Antlr4Utils.parse("DummyNode<" + option + ">", 
compilationUnit.getConfiguration());

From: Milles, Eric (TR Tech, Content & Ops) 
Sent: Tuesday, October 22, 2019 11:27 AM
To: dev@groovy.apache.org 
Subject: Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

Even if Ivy 2.5.0 is released soon, we have not tested with that version.  I 
would not pick it up until Groovy 4.


The recent change to GenericsUtils.parseClassNodesFromString assumes that you 
have a specific type of ParserPluginFactory set.  However the 
CompilerConfiguration allows the user to set any type of their choosing.

java.lang.ClassCastException: org.codehaus.groovy.control.ParserPluginFactory$1 
cannot be cast to org.apache.groovy.parser.antlr4.Antlr4PluginFactory
at org.codehaus.groovy.ast.tools.Antlr4Utils.parse(Antlr4Utils.java:32)
at 
org.codehaus.groovy.ast.tools.GenericsUtils.parseClassNodesFromString(GenericsUtils.java:613)



Also, I agree with Cedric.  This should be a beta unless it was considered 
fully ready for release when voting began.


From: Daniel.Sun 
Sent: Tuesday, October 22, 2019 11:02 AM
To: d...@groovy.incubator.apache.org 
Subject: Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

FYI. Ivy 2.5.0 is coming soon too:
https://urldefense.proofpoint.com/v2/url?u=http-3A__ant.1045680.n5.nabble.com_VOTE-2DRelease-2DIvy-2D2-2D5-2D0-2Dbased-2Don-2DRC1-2Dtd5719982.html=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=RrPMdNH7KeZs00DbUIxGQSgb9zzxoFvrijMiZOSsmNk=7E3Y2DczHAZN6ly0Us4VKcRZOY6lDFqt8VCknlLXiXY=

Cheers,
Daniel.Sun




-
Apache Groovy committer & PMC member
Blog: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__blog.sunlan.me=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=RrPMdNH7KeZs00DbUIxGQSgb9zzxoFvrijMiZOSsmNk=1g6tlhiTrpLdeuDpcwvgCcMNRdq4pda6s9D44IbU1u8=
Twitter: @daniel_sun

--
Sent from: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__groovy.329449.n5.nabble.com_Groovy-2DDev-2Df372993.html=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=RrPMdNH7KeZs00DbUIxGQSgb9zzxoFvrijMiZOSsmNk=s-MaME5hycNHaMUTLiD4v3_uFU0fpKCBShstVL-kci0=


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Milles, Eric (TR Tech, Content & Ops)
Even if Ivy 2.5.0 is released soon, we have not tested with that version.  I 
would not pick it up until Groovy 4.


The recent change to GenericsUtils.parseClassNodesFromString assumes that you 
have a specific type of ParserPluginFactory set.  However the 
CompilerConfiguration allows the user to set any type of their choosing.

java.lang.ClassCastException: org.codehaus.groovy.control.ParserPluginFactory$1 
cannot be cast to org.apache.groovy.parser.antlr4.Antlr4PluginFactory
at org.codehaus.groovy.ast.tools.Antlr4Utils.parse(Antlr4Utils.java:32)
at 
org.codehaus.groovy.ast.tools.GenericsUtils.parseClassNodesFromString(GenericsUtils.java:613)



Also, I agree with Cedric.  This should be a beta unless it was considered 
fully ready for release when voting began.


From: Daniel.Sun 
Sent: Tuesday, October 22, 2019 11:02 AM
To: d...@groovy.incubator.apache.org 
Subject: Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

FYI. Ivy 2.5.0 is coming soon too:
https://urldefense.proofpoint.com/v2/url?u=http-3A__ant.1045680.n5.nabble.com_VOTE-2DRelease-2DIvy-2D2-2D5-2D0-2Dbased-2Don-2DRC1-2Dtd5719982.html=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=RrPMdNH7KeZs00DbUIxGQSgb9zzxoFvrijMiZOSsmNk=7E3Y2DczHAZN6ly0Us4VKcRZOY6lDFqt8VCknlLXiXY=

Cheers,
Daniel.Sun




-
Apache Groovy committer & PMC member
Blog: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__blog.sunlan.me=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=RrPMdNH7KeZs00DbUIxGQSgb9zzxoFvrijMiZOSsmNk=1g6tlhiTrpLdeuDpcwvgCcMNRdq4pda6s9D44IbU1u8=
Twitter: @daniel_sun

--
Sent from: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__groovy.329449.n5.nabble.com_Groovy-2DDev-2Df372993.html=DwICAg=4ZIZThykDLcoWk-GVjSLmy8-1Cr1I4FWIvbLFebwKgY=tPJuIuL_GkTEazjQW7vvl7mNWVGXn3yJD5LGBHYYHww=RrPMdNH7KeZs00DbUIxGQSgb9zzxoFvrijMiZOSsmNk=s-MaME5hycNHaMUTLiD4v3_uFU0fpKCBShstVL-kci0=


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
FYI. Ivy 2.5.0 is coming soon too:
http://ant.1045680.n5.nabble.com/VOTE-Release-Ivy-2-5-0-based-on-RC1-td5719982.html

Cheers,
Daniel.Sun




-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Cédric Champeau
Yeah I just find it funny, when you release a "release candidate" knowing
it's not a release candidate :)

Le mar. 22 oct. 2019 à 17:40, Daniel.Sun  a écrit :

> Hi Cédric,
>
> > To me, it _implies_ that there will be a 3.0 rc2 for Groovy.
> Yep ;-)   As Paul said, one part which has only recently been finished
> and still needs a bit more polishing is a revamped groovydoc. So 3.0.0-rc-2
> will be released after groovydoc has been polished.
> 3.0.0-rc-1 should be quite stable now, but we still wish we could get
> feedback if users find critical issues which will prevent Apache Groovy
> 3.0.0 from being used in production.
>
> Cheers,
> Daniel.Sun
>
>
>
> -
> Apache Groovy committer & PMC member
> Blog: http://blog.sunlan.me
> Twitter: @daniel_sun
>
> --
> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html
>


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
Hi Cédric,

> To me, it _implies_ that there will be a 3.0 rc2 for Groovy.
Yep ;-)   As Paul said, one part which has only recently been finished
and still needs a bit more polishing is a revamped groovydoc. So 3.0.0-rc-2
will be released after groovydoc has been polished. 
3.0.0-rc-1 should be quite stable now, but we still wish we could get
feedback if users find critical issues which will prevent Apache Groovy
3.0.0 from being used in production.

Cheers,
Daniel.Sun



-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Cédric Champeau
That's a bit surprising of a release candidate, IMO. A release candidate
should mean "hey if there's no bug report, that's _exactly_ that that we
publish as final". Here you're saying that in any case, you're going to
change the dependency to Ivy. To me, it _implies_ that there will be a 3.0
rc2 for Groovy.

Le mar. 22 oct. 2019 à 17:19, Daniel.Sun  a écrit :

> If Ivy 2.5.0 GA is not released before Groovy 3.0.0 GA, we have to
> downgrade
> Ivy to 2.4.0 GA.
>
> Cheers,
> Daniel.Sun
>
>
>
> -
> Apache Groovy committer & PMC member
> Blog: http://blog.sunlan.me
> Twitter: @daniel_sun
>
> --
> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html
>


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
If Ivy 2.5.0 GA is not released before Groovy 3.0.0 GA, we have to downgrade
Ivy to 2.4.0 GA.

Cheers,
Daniel.Sun



-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Milles, Eric (TR Tech, Content & Ops)
Was the decision to stick with Ivy 2.5.0-rc1?  There was a question of 
stability.


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Daniel.Sun
+1 (binding)

All tests pass on my local machine, here is the report of build scan:
https://gradle.com/s/4bhflb27misl2

Also, I tested groovySh and groovyConsole manually and found no issues.


Cheers,
Daniel.Sun



-
Apache Groovy committer & PMC member 
Blog: http://blog.sunlan.me 
Twitter: @daniel_sun 

--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html


Re: [VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Guillaume Laforge
+1 (binding)

Build and tests are running fine, and I played with the Groovy console
without noticing any problem.

Guillaume


On Tue, Oct 22, 2019 at 2:01 PM Paul King  wrote:

>
> Dear development community,
>
> I am happy to start the VOTE thread for a Groovy 3.0.0-rc-1 release!
>
> This release includes 52 bug fixes/improvements as outlined in the
> changelog:
>
> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318123=12345982
>
> Groovy 3 is nearing lockdown status for final release.
> One part which has only recently been finished and still needs a bit more
> polishing is a revamped groovydoc. It no longer requires antlr2. Groovy
> files are parsed using antlr4 and Java using com.github.javaparser. Because
> this new version is less stable than the rest of the release it currently
> is disabled by default and enabled with the 'preview.groovydoc.antlr4'
> system property. The plan is for this property to be removed before final
> release but feedback on existing functionality welcome. You might need to
> include additional dependent jars on your classpath when using the current
> version.
>
> Tag:
> https://gitbox.apache.org/repos/asf?p=groovy.git;a=tag;h=refs/tags/GROOVY_3_0_0_RC_1
> Tag commit id: 206b2017f637df3c1ab59a6178979a274aae7246
>
> The artifacts to be voted on are located as follows (r36443).
> Source release:
> https://dist.apache.org/repos/dist/dev/groovy/3.0.0-rc-1/sources
> Convenience binaries:
> https://dist.apache.org/repos/dist/dev/groovy/3.0.0-rc-1/distribution
>
> Release artifacts are signed with a key from the following file:
> https://dist.apache.org/repos/dist/dev/groovy/KEYS
>
> Please vote on releasing this package as Apache Groovy 3.0.0-rc-1.
>
> Reminder on ASF release approval requirements for PMC members:
> 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
>
> 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 3.0.0-rc-1
> [ ]  0 I don't have a strong opinion about this, but I assume it's ok
> [ ] -1 Do not release Apache Groovy 3.0.0-rc-1 because...
>
> Here is my vote:
>
> +1 (binding)
>
>

-- 
Guillaume Laforge
Apache Groovy committer
Developer Advocate @ Google Cloud Platform

Blog: http://glaforge.appspot.com/
Twitter: @glaforge 


[VOTE] Release Apache Groovy 3.0.0-rc-1 (take 2)

2019-10-22 Thread Paul King
Dear development community,

I am happy to start the VOTE thread for a Groovy 3.0.0-rc-1 release!

This release includes 52 bug fixes/improvements as outlined in the
changelog:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318123=12345982

Groovy 3 is nearing lockdown status for final release.
One part which has only recently been finished and still needs a bit more
polishing is a revamped groovydoc. It no longer requires antlr2. Groovy
files are parsed using antlr4 and Java using com.github.javaparser. Because
this new version is less stable than the rest of the release it currently
is disabled by default and enabled with the 'preview.groovydoc.antlr4'
system property. The plan is for this property to be removed before final
release but feedback on existing functionality welcome. You might need to
include additional dependent jars on your classpath when using the current
version.

Tag:
https://gitbox.apache.org/repos/asf?p=groovy.git;a=tag;h=refs/tags/GROOVY_3_0_0_RC_1
Tag commit id: 206b2017f637df3c1ab59a6178979a274aae7246

The artifacts to be voted on are located as follows (r36443).
Source release:
https://dist.apache.org/repos/dist/dev/groovy/3.0.0-rc-1/sources
Convenience binaries:
https://dist.apache.org/repos/dist/dev/groovy/3.0.0-rc-1/distribution

Release artifacts are signed with a key from the following file:
https://dist.apache.org/repos/dist/dev/groovy/KEYS

Please vote on releasing this package as Apache Groovy 3.0.0-rc-1.

Reminder on ASF release approval requirements for PMC members:
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

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 3.0.0-rc-1
[ ]  0 I don't have a strong opinion about this, but I assume it's ok
[ ] -1 Do not release Apache Groovy 3.0.0-rc-1 because...

Here is my vote:

+1 (binding)