+1 It looks good to me. However, javadoc, groovydocAll, javadocAll tasks reported warnings such as
> Task :javadocAll /Users/aalmiray/Downloads/groovy-3.0.0-alpha-4/src/main/groovy/groovy/transform/NullCheck.java:82: warning - End Delimiter } missing for possible See Tag in comment string: "Class, method or constructor annotation which indicates that each parameter should be checked to ensure it isn't null. If placed at the class level, all explicit methods and constructors will be checked. <p> Example usage: <pre class="groovyTestCase"> import groovy.transform.NullCheck import static groovy.test.GroovyAssert.shouldFail {@code @NullCheck) class Greeter { private String audience Greeter(String audience) { this.audience = audience.toLowerCase() } String greeting(String salutation) { salutation.toUpperCase() + ' ' + audience } } assert new Greeter('World').greeting('hello') == 'HELLO world' def ex = shouldFail(IllegalArgumentException) { new Greeter(null) } assert ex.message == 'audience cannot be null' ex = shouldFail(IllegalArgumentException) { new Greeter('Universe').greeting(null) } assert ex.message == 'salutation cannot be null' </pre> The produced code for the above example looks like this: <pre> class Greeter { private String audience Foo(String audience) { if (audience == null) throw new IllegalArgumentException('audience cannot be null') this.audience = audience.toLowerCase() } String greeting(String salutation) { if (salutation == null) throw new IllegalArgumentException('salutation cannot be null') salutation.toUpperCase() + ' ' + audience } } </pre>" 1 warning ------------------------------------------- Java Champion; Groovy Enthusiast JCP EC Associate Seat http://andresalmiray.com http://www.linkedin.com/in/aalmiray -- What goes up, must come down. Ask any system administrator. There are 10 types of people in the world: Those who understand binary, and those who don't. To understand recursion, we must first understand recursion. On Thu, Dec 27, 2018 at 2:58 PM Paul King <pa...@asert.com.au> wrote: > > Dear development community, > > I am happy to start the VOTE thread for a Groovy 3.0.0-alpha-4 release! > This is expected to be the last "alpha" release for Groovy 3. > With 2019 upon us, it's time to put our focus on completing this next > version of Groovy! > > This release includes 139 bug fixes/improvements as outlined in the > changelog: > > https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318123&version=12343541 > > Tag: > https://gitbox.apache.org/repos/asf?p=groovy.git;a=tag;h=refs/tags/GROOVY_3_0_0_ALPHA_4 > Tag commit id: 1effb50d2e069ccfb954e525d4955d83b4a26773 > > The artifacts to be voted on are located as follows (r31693). > Source release: > https://dist.apache.org/repos/dist/dev/groovy/3.0.0-alpha-4/sources > Convenience binaries: > https://dist.apache.org/repos/dist/dev/groovy/3.0.0-alpha-4/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-alpha-4. > > 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-alpha-4 > [ ] 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-alpha-4 because... > > Here is my vote: > > +1 (binding) > >