Skip to content

Drop source/target compatibility back to Java 11 LTS#10153

Merged
chadlwilson merged 1 commit intogocd:masterfrom
chadlwilson:drop-compile-target-to-11
Feb 7, 2022
Merged

Drop source/target compatibility back to Java 11 LTS#10153
chadlwilson merged 1 commit intogocd:masterfrom
chadlwilson:drop-compile-target-to-11

Conversation

@chadlwilson
Copy link
Member

@chadlwilson chadlwilson commented Feb 5, 2022

This was increased to Java 13 in GoCD 21.2.0 in commit d72a92d - this change decreases it back because requiring versions of the JDK that are not LTS, and are out of even active security patching is not so friendly given the current maintenance support for GoCD. Furthermore, some JVM versions such as Java 16 and 17 made changes that were somewhat time consuming to ensure compatibility with, especially due to some of the older libraries/frameworks GoCD is still packaged with. We were left in the state for the last 10 months where there was no supported and fully patched Java version that GoCD would run with (Java 13/14/15 were all EOL, 16/17 weren't compatible)

Furthermore this can cause some challenges for plugins because the go-plugin-api jar also this version (maybe we should version it separately?) and that makes it messy for folks to build a GoCD plugin against the latest API jar, but running against an LTS Java version without knowing all the details about which server version used which target Java version, and whether changing the plugin API version matters.

We can announce a new policy later if necessary, and look at whether we should run certain tests against 2 LTS versions (we don't seem to actually run tests except with the target packaged Java version currently)

Tasks

  • Post-release: Update commentary on www.gocd.org
  • Check for other places the minimum Java version is documented. docs.gocd.org?

@chadlwilson chadlwilson added build-script java Pull requests that update Java code labels Feb 5, 2022
@chadlwilson chadlwilson added this to the Release 22.1.0 milestone Feb 5, 2022
This was increased to Java 13 in GoCD 21.2.0 in commit d72a92d - this change decreases it back because requiring versions of the JDK that are not LTS, and are out of even active security patching is not so friendly given the current maintenance support for GoCD. Furthermore, some JVM versions such as Java 16 and 17 made changes that were somewhat time consuming to ensure compatibility with, especially due to some of the older libraries/frameworks GoCD is still packaged with. We were left in the state for the last 10 months where there was no supported and fully patched Java version that GoCD would run with (Java 13/14/15 were all EOL, 16/17 weren't compatible)

Furthermore this can cause some challenges for plugins because the go-plugin-api jar also this version (maybe we should version it separately?) and that makes it messy for folks to build a GoCD plugin against the latest API jar, but running against an LTS Java version without knowing all the details about which server version used which target Java version, and whether changing the plugin API version matters.

We can announce a new policy later if necessary, and look at whether we should run certain tests against 2 LTS versions (we don't seem to actually run tests except with the target packaged Java version currently)
@chadlwilson chadlwilson force-pushed the drop-compile-target-to-11 branch from fbfd50f to c1e45d3 Compare February 6, 2022 14:07
@chadlwilson chadlwilson merged commit 4e6052d into gocd:master Feb 7, 2022
@chadlwilson chadlwilson deleted the drop-compile-target-to-11 branch February 7, 2022 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build-script java Pull requests that update Java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant