Hi all again, although a RC of Turbine would currently contain some more changes, I am not sure enough, what to do next.
1) I might be wrong. Reading about JDK 20^1 as the upcoming Java release (current in release candidate status) I would almost strongly suggest to proceed to this release rather than just set jdk 11 as lowest supported level considering, that - Turbine's active community is quite small scale now, we are not able to release one major release more than once in a year or two. - To set the lower level to a recent Java version might be restrictive using incompatible source code with a Java 20-binary that could not be executed in any previous Java environments. - On the other side, the current Turbine 5.1 release is expected to work at least until JDK 20 (TODO test it! I did some checks in JDK 17). - If we want to use all the new features, and we are not able to support multiple branches we just have to set the higher level, why not the newest? (I am remembering that Jeffery already voted for the newest version last year.) - Java 20 has some substantial changes and seems to me closing up some long awaited changes (Project loom e.g.) and I personally hope, that this will be a good level to keep for a couple of Java releases as the bottom line (may be I am too confident here). - We would thereby actively support (suggest/recommend) upgrading to Java 20 level using Turbine (we might even consider to take part in Outreach programm https://wiki.openjdk.org/display/quality/Quality+Outreach later). As a caveat, more work has to be done then, and a release might be ready only at the end of the year. 2) At the moment at least 5 Fulcrum components need to be released, but change is not very substantial. Nevertheless each of them requires a release + voting process. The effort for those small changes seems to me - quite extensive. And it seems to me, that there is a way to do a bundled release. We didn't do this before, but https://gitbox.apache.org/repos/asf/turbine-fulcrum-build.git is a pom module (group-id: org.apache.turbine, articaft-id: fulcrum) containing all currently Fulcrums in development. Might we decide to set it up as a releaseable component? Currently version is 1, but if we set version e.g. to 5 or 5.2-SNAPSHOT it would be aligned to the Turbine version and high enou, as of course all Fulcrum modules have to share the version, currently in the range of 1.0.5 and 2.2 (to be checked). We have at the moment 15 Fulcrum components (with JSON and security modules 3 or 4 more), some very small (the size of a binary is between 15kb and the biggest Security Torque has without javadoc 573kb. Turbine uses about 16 Fulcrum components and if we have a release of a bulk Fulcrum component the size would not change very much. 3) Should we also support SBOM generation (e.g. with cyclonedx-maven-plugin like Apache Commons or spdx)? This would go to the parent module and we might think about updating the version from 12-SNAPSHOT to 13-SNAPSHOT or even 20-SNAPSHOT.. 4) How should we decide? If there are no divergent views at the end of the discussion, we might just hopefully proceed in consent. Nevertheless we could do a vote .. I'll be waiting for your opinion! With best regards, Georg ^1 You might've read this as well: https://lists.apache.org/thread/l405tg3fnv0md3hxplv57hq665znbq8z Von: "Georg Kallidis" <georg.kalli...@cedis.fu-berlin.de> An: Turbine <dev@turbine.apache.org> Datum: 10.01.2023 11:59 Betreff: Planning the Release and Building of Turbine Core v5.2 Component and Required Fulcrum / Parent Components Hi all, happy New Year! I think, it's time to prepare a Turbine Core release 5.2. There is some experimental stuff in it, notabely DateTimeFormatterService, but a couple of tests exist and it seems to be ready to a certain degree. Nevertheless Turbine Core does currently depend on five Fulcrum components in state SNAPSHOT (testcontainer, intake, parser, security, yaafi) + parent pom in SNAPSHOT. We would have to first release the parent component v12-SNAPSHOT, if we want to update the minimal setting to Java 11 or revert the settings to the published version 11 in the new releases. Overview of Fulcrum dependencies in Turbine 5.2-SNAPSHOT: | name | version | last release | changes (commit for git diff) | remarks | | testcontainer | 1.0.10-SNAPSHOT | end of 2020 | 7d2f264371ec9d62d885212f1ef18c8b228bf650 | mostly cleanup and dependency updates | intake | 2.0.1-SNAPSHOT | beginning of 2019 | 44f7d9492d98c4e95d06a3da3380f7bf892bc26c | more complete test configuration | parser | 2.0.2-SNAPSHOT | end of 2019 | 4df41f39b79827927256343f2652b078f6bb04f4 | mostly cleanup and dependency updates | security | 2.1.1-SNAPSHOT | end of 2021 | cacbef75a874c4ab489ed76489a1235b885b5f97 | some Java 8/11 optimizations TODO Should we remove hibernate, as we are not able to follow security updates and update hibernate to a current version? | | yaafi | 1.0.9-SNAPSHOT | end of 2018 | a931f52fbfca71c0a4a0f72ce8bc82e1ead80065 | mostly cleanup of tests and dependency updates What's your opinion? Do you agree? Did I miss something ? Should we wait and integrate / work on some important stuff? Should we just skip some Fulcrum updates? That is e.g. revert some dependencies in Turbine Core v5.2-SNAPSHOT (e.g. if we do not want the Java 11 baseline now in the new releases, we do not need parent 12)? Should we proceed and start with the release bundles as set out (that is as release first parent, then Fulcrum components and last Turbine-Core) ? Thanks! Best regards, Georg
smime.p7s
Description: S/MIME Cryptographic Signature