Installed from the git tag. I can build projects on JDK 11 and 17. But not on JDK 8.
The new profile to conditionally configure the maven-compiler-release plugin for JDK 9+ is incorrect. The parent pom defines the property: <!-- Java >= 9 --> <maven.compiler.release>8</maven.compiler.release> Then activates it using: <profile> <id>jdk9-compiler</id> <activation> <jdk>[9,)</jdk> </activation> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <release>${maven.compiler.release}</release> </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> However the use of the property <maven.compiler.release> is enough to set it into the compiler-plugin when building on JDK 8. I see the following error when building under JDK 8: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project commons-lang3: Fatal error compiling: invalid flag: --release -> [Help 1] I note that the config is actually recommended on the maven documentation for the plugin [1]. However it seems that just setting this property (given that it is the user override property for the <release> tag [2]) enables it on JDK 8. Perhaps this is an error in the maven-compiler-plugin itself. In Commons Geometry the configuration uses a unique property on the POM and then sets maven.compiler.release for JDK 9+: <!-- JVM target version, in the newer JDK 9+ format. --> <jvm.target>8</jvm.target> <profile> <id>compiler-release-property</id> <activation> <jdk>[9,)</jdk> </activation> <properties> <!-- The "release" compiler property (available in JDK 9+) must be set in order to generate binary-compatible artifacts for the target JVM. This flag sets the version of the platform APIs to compile against, which is necessary when building with a later JDK but targeting an earlier one. For example, a covariant return type was added to java.nio.ByteBuffer.rewind() in Java 9. If the release property is not set when compiling with JDK 9 for Java 8, then the Java 9 method will be referenced in the bytecode, causing a runtime error when running on 8. --> <maven.compiler.release>${jvm.target}</maven.compiler.release> </properties> </profile> I switched to this setup in CP 57 and the build on JDK 8 worked. So perhaps we should change to this pattern and provide feedback to the maven-compiler-plugin developers that their recommended configuration does not work. Other notes: 1. I still get a warning from the SPDX plugin (same as previous versions of CP): [WARNING] Unable to map maven licenses to a declared license. Using NOASSERTION I do not know where this comes from. The ASF 2.0 license should be recognised. This seems to output for all projects including building CP itself. Looking at the config options for SPDX this should automatically recognise the ASF license so I do not know if this is a config problem or a bug in SPDX. 2. I had problems with commons-lang on a new Mac processor: Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8) Maven home: /Users/ah403/mvn/mvn Java version: 17.0.6, vendor: Eclipse Adoptium, runtime: /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home Default locale: en_GB, platform encoding: UTF-8 OS name: "mac os x", version: "13.3.1", arch: "aarch64", family: "mac" Using JDK 11 or 17 I get a failure in a unit test for ArchUtilsTest.testGetProcessor. The test assumes that the current architecture is x86. As shown above the architecture is "aarch64". The problem is with the test which should be more robust to actually knowing what the architecture is before asserting it is x86. This is not an issue with the parent. Note that the "os.arch" property on JDK 8 does not detect the new apple architecture: Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8) Maven home: /Users/ah403/mvn/mvn Java version: 1.8.0_362, vendor: Temurin, runtime: /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/jre Default locale: en_GB, platform encoding: UTF-8 OS name: "mac os x", version: "13.3.1", arch: "x86_64", family: "mac" So when building on JDK 8 this test passes as the arch is detected as "x86". The test in lang should be more robust, perhaps just commenting out the invalid assertion on line 128 would be enough: final Processor processor = ArchUtils.getProcessor(); assertTrue(processor.isX86()); // <-- This is not platform safe Regards, Alex [1] https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-release.html [2] https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#release On Sat, 22 Apr 2023 at 15:25, Gary Gregory <garydgreg...@gmail.com> wrote: > > We have fixed quite a few bugs and added some significant enhancements > since Apache Commons Parent 56 was released, so I would like to > release Apache Commons Parent 57. > > Apache Commons Parent 57 RC1 is available for review here: > https://dist.apache.org/repos/dist/dev/commons/commons-parent/57-RC1 > (svn revision 61424) > > The Git tag commons-parent-57-RC1 commit for this RC is > 438328ae7ef71feb9565c650c2d83404c191c031 which you can browse here: > > https://gitbox.apache.org/repos/asf?p=commons-parent.git;a=commit;h=438328ae7ef71feb9565c650c2d83404c191c031 > You may checkout this tag using: > git clone https://gitbox.apache.org/repos/asf/commons-parent.git > --branch commons-parent-57-RC1 commons-parent-57-RC1 > > Maven artifacts are here: > > https://repository.apache.org/content/repositories/orgapachecommons-1631/org/apache/commons/commons-parent/57/ > > These are the artifacts and their hashes: > > #Release SHA-512s > #Sat Apr 22 10:17:35 EDT 2023 > commons-parent-57-bom.json=4939a0314f700a40eb479eb4ad62a835c188238f683be411206666ff7edeb90979e3605e25e8955344220345f856d0c45f63baff959e7f0e1a52344129f3ad8e > commons-parent-57-bom.xml=d0c6bda84d6f5bda73b393b0736ba0d86deac17f5301d22b1696b4ff0cdad07dff4a985361e296eff75807b9e6d3db7616f22b2b80d53958c1df2a843a3c3273 > commons-parent-57-site.xml=c6aea4f2c03920366bee23b08b046dacc09710e92c78ccd83f47cd92f89bc53abc3b8bbc7f44017ee94a2cb022ce763fe3f7d8c9aa42d571350269ba6568ca07 > commons-parent-57-src.tar.gz=ef3debcd562db54ec4382eb80a7b144c2640b856b9df976e96ea89e07d7a951df1b59cf986b600eb57cd2b005b172b6d332041b1c00cef80501a7162d8547ebc > commons-parent-57-src.zip=42a1ea9148294e7e3db65698d7affffebbc3947bfaa19a72c28ef9388135582075b06f27ef824cdd16a811f6e0062e3a99a40faed1f4626ae4ec151ed22d006d > org.apache.commons_commons-parent-57.spdx.json=ff9a113539c850d0eec50feff67671664a7b9e236b4c1609101faae3b8d67bf8f7703c9f8cbb8ac5776db94735d7b34c84fcdda6d65b4147785e2854f7d3949d > > I have tested this with > > mvn -V -Duser.name=$my_apache_id > -Dcommons_build_plugin_version=$commons_build_plugin_version > -Ddoclint=none -Prelease -Ptest-deploy clean package site deploy > > using: > > Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8) > Maven home: /usr/local/Cellar/maven/3.9.1/libexec > Java version: 1.8.0_362, vendor: Homebrew, runtime: > /usr/local/Cellar/openjdk@8/1.8.0+362/libexec/openjdk.jdk/Contents/Home/jre > Default locale: en_US, platform encoding: UTF-8 > OS name: "mac os x", version: "13.3.1", arch: "x86_64", family: "mac" > Darwin **** 22.4.0 Darwin Kernel Version 22.4.0: Mon Mar 6 21:00:17 > PST 2023; root:xnu-8796.101.5~3/RELEASE_X86_64 x86_64 > > Details of changes since 56 are in the release notes: > > https://dist.apache.org/repos/dist/dev/commons/commons-parent/57-RC1/RELEASE-NOTES.txt > > https://dist.apache.org/repos/dist/dev/commons/commons-parent/57-RC1/site/changes-report.html > > Site: > > https://dist.apache.org/repos/dist/dev/commons/commons-parent/57-RC1/site/index.html > (note some *relative* links are broken and the 57 directories are > not yet created - these will be OK once the site is deployed.) > > RAT Report: > > https://dist.apache.org/repos/dist/dev/commons/commons-parent/57-RC1/site/rat-report.html > > KEYS: > https://downloads.apache.org/commons/KEYS > > Please review the release candidate and vote. > This vote will close no sooner than 72 hours from now. > > [ ] +1 Release these artifacts > [ ] +0 OK, but... > [ ] -0 OK, but really should fix... > [ ] -1 I oppose this release because... > > Thank you, > > Gary Gregory, > Release Manager (using key DEADBEEF) > > For following is intended as a helper and refresher for reviewers. > > Validating a release candidate > ============================== > > These guidelines are NOT complete. > > Requirements: Git, Java, Maven. > > You can validate a release from a release candidate (RC) tag as follows. > > 1a) Clone and checkout the RC tag > > git clone https://gitbox.apache.org/repos/asf/commons-parent.git > --branch commons-parent-57-RC1 commons-parent-57-RC1 > cd commons-parent-57-RC1 > > 1b) Download and unpack the source archive from: > > https://dist.apache.org/repos/dist/dev/commons/commons-parent/57-RC1/source > > 2) Check Apache licenses > > This step is not required if the site includes a RAT report page which > you then must check. > > mvn apache-rat:check > > 3) Check binary compatibility > > Older components still use Apache Clirr: > > This step is not required if the site includes a Clirr report page > which you then must check. > > mvn clirr:check > > Newer components use JApiCmp with the japicmp Maven Profile: > > This step is not required if the site includes a JApiCmp report page > which you then must check. > > mvn install -DskipTests -P japicmp japicmp:cmp > > 4) Build the package > > mvn -V clean package > > You can record the Maven and Java version produced by -V in your VOTE reply. > To gather OS information from a command line: > Windows: ver > Linux: uname -a > > 5) Build the site for a single module project > > Note: Some plugins require the components to be installed instead of packaged. > > mvn site > Check the site reports in: > - Windows: target\site\index.html > - Linux: target/site/index.html > > -the end- > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org