Re: [VOTE] Release Apache Ant 1.10.14 based on RC1

Jaikiran Pai <[email protected]> Fri, 18 Aug 2023 15:14:32 +0530
Newsgroups gmane.comp.jakarta.ant.user
Message-ID <[email protected]>
+1

- Downloaded the newer version and checked the NOTICE file

- verified the checksum

- Built some projects using this newer version, on Java 8, 17 and 20

- Checked manual docs for some of the tasks

-Jaikiran

On 16/08/23 6:05 pm, Jaikiran Pai wrote:
> Hello everyone,
>
> I've created RC1 release candidate for Ant 1.10.14 release:
>
> git tag: ANT_1.10.14_RC1
>
>     on commit: 53f19eccf49acf526415997046dca5a5135b0e8f
>
> tarballs: https://dist.apache.org/repos/dist/dev/ant/
>
>     revision: 63474
>
> Maven artifacts: 
> https://repository.apache.org/content/repositories/orgapacheant-1057
>
>
> Apart from regular bug fixes, this 1.10.14 release has crucial changes 
> around Ant's usage of Java SecurityManager. Many of you will be aware 
> that Java 17 deprecated (for removal) the use of SecurityManager. Java 
> 18 then disallowed setting SecurityManager at runtime, by default. Ant 
> internally sets a SecurityManager at runtime to prevent System.exit() 
> calls from within tasks, from killing the JVM in which Ant process is 
> running. In Ant 1.10.13, we tried to keep using the SecurityManager 
> internally for a few more releases in Ant, to facilitate projects to 
> use Ant without requiring (major) changes to their build. The 
> workarounds we put in place in Ant 1.10.13 were brittle and complex 
> and although we had hoped they won't break user builds, they did end 
> up breaking several builds. Ultimately, these workarounds for usage of 
> SecurityManager are no longer feasible or adding value.
>
> As such, this 1.10.14 release of Ant will no longer use (or set) Java 
> SecurityManager when running on Java versions 18 and higher. This has 
> implications for projects using Ant. Specifically, if any of the build 
> tasks (for example the "<java>", "<junit>" or "<junitlauncher>" tasks) 
> or libraries used in those tasks are calling System.exit() or 
> Runtime.exit() and aren't forking a new JVM, then when running on Java 
> 18 and higher, they may notice that the Ant JVM process gets killed. 
> Such builds are recommended to either not call 
> System.exit()/Runtime.exit() or use the "fork=true" option in relevant 
> tasks (wherever appropriate).
>
> Furthermore, the usage of "<permissions>" type when running on Java 18 
> and higher is no longer supported. More details are available in the 
> manual of that type https://dist.apache.org/repos/dist/dev/ant/manual/.
>
> The complete set of changes in this release are noted in 
> https://dist.apache.org/repos/dist/dev/ant/RELEASE-NOTES-1.10.14.html.
>
> Please do give this proposed release version a try against whichever 
> Java runtime versions you plan to use it against (this version 
> requires a minimum of Java 8 runtime, like any other Ant 1.10.x 
> versions). Even if you don't vote, if you do run into issues, please 
> report back - it takes time to create Ant releases, so catching any 
> blocker issues (like some of which we saw after Ant 1.10.13 was 
> released) early will help fix them sooner.
>
> This vote will be open for at least 72 hours and close no earlier than 
> 19th August 2023 12 PM.
>
> -Jaikiran
>