Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to JDK 8 as minimum runtie JDK and JDK 9+ as build JDK #1554

Merged
merged 4 commits into from Oct 17, 2023

Conversation

matthiasblaesing
Copy link
Member

@matthiasblaesing matthiasblaesing commented Oct 3, 2023

  • Compilation of JNA and JNA platform was modified to use the javac --release flag with a value of 8. The bytecode level and thus minimum runtime JDK is raised to 8.
  • Generated build script for JNA platform was dropped in favor of a build.xml modeled after the JNA one. NetBeans integration was moved from Java Project to Java Freeform Project (this was already the case for JNA)

Copy link
Member

@dblock dblock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to call this 6.0?

@dblock
Copy link
Member

dblock commented Oct 4, 2023

Does it make sense to do a major version increment to 6.0 and follow semver after that?

@dbwiddis
Copy link
Contributor

dbwiddis commented Oct 4, 2023

Does it make sense to do a major version increment to 6.0 and follow semver after that?

+1 on the major version increment, and I thought we were already following semver.

@matthiasblaesing
Copy link
Member Author

From my POV a clear -1 on the version change. This version is API and ABI compatible with prior releases. It just does not run on ancient JDKs anymore. I you are still running on a JDK < 8, you have other reasons to be concerned and must expect every library release to break compatibility. I assume, that 99.99999% of all users will not notice any difference between 5.13.0 and 5.14.0.

For the semver thing: Yes we are there. The last screw up was inside the 4.X series, where incompatible changes were made without bumping major version.

@dblock
Copy link
Member

dblock commented Oct 5, 2023

From my POV a clear -1 on the version change. This version is API and ABI compatible with prior releases. It just does not run on ancient JDKs anymore.

So you claim this doesn't break semver? I can surely get along with that because JDK .... 6 but if you were dropping JDK 8 I would probably feel otherwise! :)

Here's a conversation about exactly this topic: semver/semver#534 (comment). It's pretty clear that this is semver-breaking.

@dbwiddis
Copy link
Contributor

dbwiddis commented Oct 5, 2023 via email

@matthiasblaesing
Copy link
Member Author

So I ran JNA 5.13.0 JAR and 5.14.0-SNAPSHOT build from this branch through japi-compliance-checker. Report:

compat_report.zip

The "problem" being reported can be ignored, as the constant USE_VARARGS is an implementation detail, that touches the JNA Java<->native ABI, but not external users. The report for the platform looks worse, but is actually not. The errors reported there are interfaces additions, that would be incompatible in regular java applications, but JNA binds to native, not Java, ignoring that, we are also clean there.

@matthiasblaesing matthiasblaesing merged commit da87d77 into java-native-access:master Oct 17, 2023
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants