-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-26645 Upgrade create-release to support both JDK8 and JDK11 #3999
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
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Canceling patch as this is blocked by a bug in javac. See the issue linked from JIRA. |
0d0f9bb
to
4c592b3
Compare
@Apache9 's efforts on migrating our JDK8 dependencies out to hbase-thirdparty means that we can now use |
Or maybe we cannot do this because these tools are used for creating releases from hbase-thirdparty. Is that the case? |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
For hbase-thirdparty we still need to use JDK8. But anyway, we could install both in the docker file, and if it is for hbase we will use JDK11, for others we will use JDK8? |
deb3a4c
to
4e12010
Compare
Okay, this change just got complicated. Now we include both JDK versions in the docker file (the easy part) and support the user specifying which JDK they want used for the build (the annoyingly involved part). And I pushed without doing enough testing. The new parsing code has some bugs. Will be back. |
4e12010
to
28ad068
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
https://issues.apache.org/jira/browse/HBASE-25983 Seems we can not do release with JDK11 because we can not build the javadoc... |
I saw that. This PR can sit until we have more progress, or I can close it for now, if it's in the way. As you like. |
We can leave it open I think, assuming HBASE-25983 is going to be fixed in the near term. |
28ad068
to
aada0c0
Compare
add support for multiple jdk versions Include both jdk8 and jdk11 in our docker image. Extend `do-release-docker.sh` to support selecting a jdk version ; doing so required switching from the bash build-in `getopts` to the less featureful command `getopt`, which supports parsing long command options.
aada0c0
to
9d4a07e
Compare
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
Ubuntu's update{-java}-alternatives requires sudo and globally modifies symlinks. The release script expects to select a java version dynamically. Thus, use jenv to manage java selection.
For the upcoming 2.5.2 release where we plan to make both hadoop2 and hadoop3 artifacts, I do not think we can use java11 since it can not be used to build artifacts for hadoop2... Of course it is possible to build hadoop3 artifacts with java11, but anyway, we can not specify java11 only from the command line... |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
I think you're right. Doing this with How do you want to proceed for 2.5.2? |
Should we build two docker images, one with JDK8 and the other with JDK11 installed, have the script launch each build in the appropriate image? The alternative would be to invoke |
Just use java8 this time. We still want to keep the java8 compatibility even for hadoop3 so this sohuld not be a problem for now. And for multi jdks, I think we could follow what we have done in the pre commit docker image, just download Temurin(used to be called Adopt) OpenJDKs for both java8 and java11, add JAVA_HOME/bin to path, and switch JAVA_HOME if we want to use different jdks. Maybe later, we could use java8 to build hadoop2 related artifacts, and use java11 to build hadoop3 related artifacts. And for the upcoming 3.x releases, since they only support hadoop3, I think we could make them java11 only. Thanks. |
update create-release Dockerfile to use jdk11-headless
Requires #3974