palantir / palantir-java-format

A modern, lambda-friendly, 120 character Java formatter.
Apache License 2.0
424 stars 45 forks source link

Switch to Java 21 for compilation #978

Closed koppor closed 7 months ago

koppor commented 7 months ago

Before this PR

palantir-java-format relied on Java 11 for compilation.

Gradle update does not work. See https://github.com/palantir/palantir-java-format/issues/977.

After this PR

palantir-java-format relias on Java 21 for compilation, but sticks with Gradle 7.6.2.

This enables working on Java 21 related tickets.

Possible downsides?

Java 21 might be a too strong requirement for some "legacy" code. One could release 3.0.0 and say, hey, 2.x supports up to Java 20, 3.x supports 21+.

changelog-app[bot] commented 7 months ago

Generate changelog in changelog-dir>`changelog/@unreleased`</changelog-dir

What do the change types mean? - `feature`: A new feature of the service. - `improvement`: An incremental improvement in the functionality or operation of the service. - `fix`: Remedies the incorrect behaviour of a component of the service in a backwards-compatible way. - `break`: Has the potential to break consumers of this service's API, inclusive of both Palantir services and external consumers of the service's API (e.g. customer-written software or integrations). - `deprecation`: Advertises the intention to remove service functionality without any change to the operation of the service itself. - `manualTask`: Requires the possibility of manual intervention (running a script, eyeballing configuration, performing database surgery, ...) at the time of upgrade for it to succeed. - `migration`: A fully automatic upgrade migration task with no engineer input required. _Note: only one type should be chosen._
How are new versions calculated? - ❗The `break` and `manual task` changelog types will result in a major release! - 🐛 The `fix` changelog type will result in a minor release in most cases, and a patch release version for patch branches. This behaviour is configurable in autorelease. - ✨ All others will result in a minor version release.

Type

- [ ] Feature - [ ] Improvement - [ ] Fix - [ ] Break - [ ] Deprecation - [ ] Manual task - [ ] Migration

Description

Switch to Java 21 for compilation **Check the box to generate changelog(s)** - [ ] Generate changelog entry
koppor commented 7 months ago

This damn error prone is not compatible with Java 21. And I don't know how to remove it from the build configuration.

koppor commented 7 months ago

I have following error now:

error: exporting a package from system module jdk.compiler is not allowed with --release

It is not possible to remove --release in gradle 7.x. - cf. https://github.com/gradle/gradle/pull/22449.

stackoverflow also wasn't of help. Cf. https://stackoverflow.com/q/70477692/873282

Thus closing this.