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

Set JDK21 as the baseline for the 3.0 major version #154

Merged
merged 1 commit into from
Jun 10, 2024

Conversation

andrross
Copy link
Member

@andrross andrross commented Jun 6, 2024

Issues Resolved

Resolves #153

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@andrross andrross added the v3.0.0 Issues targeting release v3.0.0 label Jun 6, 2024
targetCompatibility = JavaVersion.VERSION_11
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.VERSION_21
Copy link
Member Author

Choose a reason for hiding this comment

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

@reta Should we keep source compatibility at Java 11 so that we don't introduce syntax that can't be backported to 2.x? I'm thinking we should probably keep this constraint until we've got a release date for 3.0 and can make a clean break away from the 2.x line.

Copy link
Collaborator

Choose a reason for hiding this comment

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

@reta Should we keep source compatibility at Java 11 so that we don't introduce syntax that can't be backported to 2.x?

@andrross here is the thing, Apache Lucene 10 is using JDK-21 release (source + target), so we won't be able to stick to JDK-11 and use Apache Lucene 10 types (in general)

Copy link
Member Author

Choose a reason for hiding this comment

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

So the risk is that Lucene exposes something in its API that is only available in JDK 21+? How does that fail if we have a lower source constraint? Does it only fail if we attempt to use that thing?

Copy link
Collaborator

Choose a reason for hiding this comment

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

So the risk is that Lucene exposes something in its API that is only available in JDK 21+?

Correct, fe records.

How does that fail if we have a lower source constraint? Does it only fail if we attempt to use that thing?

I think it won't fail (since most of the construct are retrofitted into existing bytecode), but it will force to use weird combination (fe classes and records) to essentially describe the same things. Plus we are loosing a lot from language enhancements .

@andrross andrross merged commit 1936f89 into opensearch-project:main Jun 10, 2024
10 checks passed
@andrross andrross deleted the jdk-21-baseline branch June 10, 2024 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v3.0.0 Issues targeting release v3.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE] Set custom-codecs plugin 3.0.0 baseline JDK version to JDK-21
2 participants