-
Notifications
You must be signed in to change notification settings - Fork 13k
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
[FLINK-24019][build][dist] Package Scala APIs separately #17493
Conversation
Thanks a lot for your contribution to the Apache Flink project. I'm the @flinkbot. I help the community Automated ChecksLast check on commit 873dd4f (Fri Oct 15 07:15:34 UTC 2021) Warnings:
Mention the bot in a comment to re-run the automated checks. Review Progress
Please see the Pull Request Review Guide for a full explanation of the review process. The Bot is tracking the review progress through labels. Labels are applied according to the order of the review items. For consensus, approval by a Flink committer of PMC member is required Bot commandsThe @flinkbot bot supports the following commands:
|
@zentol The license check seems to be failing |
@dmvk yep; there were some issues with the packaging. Should be fixed now. |
I'm also looking into why this failed in the first place; the original version should have worked. |
ee9ba11
to
92c87b6
Compare
Looking at the build output, we should be able to remove the scala version suffix from the flink-dist jar after https://github.com/apache/flink/pull/17518/files is merged right? |
No, because it still has various non-test dependencies that rely on Scala, like the Table API, various examples, optional libraries like gelly/cep. |
I'm not 100% sure about this point. From the user perspective:
I'm not proposing to change name of the build module, but simply renaming the "bundled output artifact" Just to double check, idea is that user can opt-out by removing the flink-dist-scala jar from the lib folder.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall, great job 👍 I've added some comments and questions, but nothing major.
I've also built the flink distribution locally and checked the flink-dist a flink-scala jar contents.
<file> | ||
<source>../flink-dist-scala/target/flink-dist-scala_${scala.binary.version}-${project.version}.jar</source> | ||
<outputDirectory>lib/</outputDirectory> | ||
<destName>flink-scala_${scala.binary.version}-${project.version}.jar</destName> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we change the destination name to flink-dist-scala
here?
<destName>flink-scala_${scala.binary.version}-${project.version}.jar</destName> | |
<destName>flink-dist-scala_${scala.binary.version}-${project.version}.jar</destName> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, because that would break all scripts that use globbing patters like flink-dist*
.
(tried that initially...)
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-deploy-plugin</artifactId> | ||
<version>2.4</version><!--$NO-MVN-MAN-VER$--> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are we downgrading the deploy-plugin version here (from 2.8.2 used in the Apache parent)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
its the same version we use everywhere in the project. I don't think there's a reason for it; we never looked into it because there's isn't really a reason to so.
That is correct. Users can only use the DataSet/-Stream APIs without Scala. |
That's something we could consider, yes. |
With this PR the flink-(streaming-)scala APIs and Scala are bundled in a separate
flink-scala
jar in lib/. Combined with #17402 this will allow users to remove Scala from the classpath while still being able to run Java DataSet/-Stream jobs.