cloudbees-oss / zendesk-java-client

A Java client library for interacting with Zendesk
https://developer.zendesk.com/rest_api/docs/api-clients/java#zendesk-java-client-by-cloudbees
Apache License 2.0
151 stars 251 forks source link

Release 0.25.0 should have been a major release. #676

Closed mgerlach closed 6 months ago

mgerlach commented 7 months ago

Release 0.25.0 introduces a breaking change as it does not support Java 8 runtimes anymore, but requires >= 11.

So it should rather be 1.0.0.

One of our build pipelines automerged the minor release 0.25.0, upgrading from 0.24.3. Because the build pipeline itself uses Java 17 (to produce Java 8 bytecode for our custom code), this didn't break our build and the 0.25.0 jar was included (by maven shade plugin) in our build output (an Apache Spark driver uber jar)

However, when running the Spark driver in AWS Glue ETL, the job broke with this exception:

Exception in User Class: java.lang.UnsupportedClassVersionError : org/zendesk/client/v2/Zendesk$Builder has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

I recommend dropping the 0.25.0 release, or better, releasing a 0.25.1 that is again compatible with Java 8, and releasing 1.0.0 for Java 11.

PierreBtz commented 6 months ago

Not really as per https://semver.org/:

Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

Now we can discuss switching to 1.x in the future, but a 0.x is considered unstable and 0.25.0 was perfectly legal.

mgerlach commented 6 months ago

It's true that it's documented like that. IMHO it's not a very useful rule, as there are possibilities to have -alpha.X, -beta.X etc. version suffixes to mark unstable versions. But I'm happy to close this. Just wanted to create some awareness.

PierreBtz commented 3 months ago

Follow up on this, I just released 1.0.0 so you shouldn't have any bad surprise anymore.