We currently require at least Java 11 (released in 2018; requirement raised in #518, released in 6.0.0). Some dependency upgrades are blocked by this (see #426). Switching to a newer version would also mean that we could finally use some more modern language features 🙂 (e.g., switch expressions, Pattern Matching for instanceof, Records, etc.; see also A categorized list of all Java and JVM features since JDK 8 to 21 for a comprehensive overview).
The next LTS releases are 17 (2021, changes), 21 (2023, changes) and 25 (2025, changes). The overall support for Java 25 in libraries and tooling is certainly growing, but may still be incomplete (especially in less actively maintained libraries/tools). The build time requirement is already at JDK 17 (see #746).
So I propose that we raise our minimum Java version to either 17 or 21; with enough votes, even try 25. There are individual comments per version which can be upvoted or downvoted. Voting on this issue itself indicates generally supporting/rejecting the proposal, but without caring about the particular version; a significant number of downvotes may thwart it altogether.
All Metafacture users and developers are invited to participate in the vote (up: 👍, down: 👎). You're welcome to state your reasons for upvoting/downvoting a particular version or the proposal as a whole.
We currently require at least Java 11 (released in 2018; requirement raised in #518, released in 6.0.0). Some dependency upgrades are blocked by this (see #426). Switching to a newer version would also mean that we could finally use some more modern language features 🙂 (e.g.,
switchexpressions, Pattern Matching forinstanceof, Records, etc.; see also A categorized list of all Java and JVM features since JDK 8 to 21 for a comprehensive overview).The next LTS releases are 17 (2021, changes), 21 (2023, changes) and 25 (2025, changes). The overall support for Java 25 in libraries and tooling is certainly growing, but may still be incomplete (especially in less actively maintained libraries/tools). The build time requirement is already at JDK 17 (see #746).
So I propose that we raise our minimum Java version to either 17 or 21; with enough votes, even try 25. There are individual comments per version which can be upvoted or downvoted. Voting on this issue itself indicates generally supporting/rejecting the proposal, but without caring about the particular version; a significant number of downvotes may thwart it altogether.
All Metafacture users and developers are invited to participate in the vote (up: 👍, down: 👎). You're welcome to state your reasons for upvoting/downvoting a particular version or the proposal as a whole.