-
Notifications
You must be signed in to change notification settings - Fork 3k
Flink: Remove the scala version suffix from artifact names. #4193
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
|
Should we revert #4157 if we aren't publishing artifacts that are specific to a Scala version? Looks like the main benefit of multi-version is testing? Are any of the Scala-specific artifacts included in transitive dependencies? |
|
Jumping in to say that Flink 1.15 will not have Scala on the user's classpath, so there won't be a 2.11 / 2.12 version (or any specific Scala version) coming from upstream after that. |
|
@kbendick The flink community are pushing the scala-free work forward ( I mean the downstream users don't need to specific a scala version when they introduce a flink dependency, the flink is trying to create few dynamic class loader to load the existing flink modules implemented or depended on scala-lang ). Currently, I see the [1] https://issues.apache.org/jira/browse/FLINK-14105 |
|
@rdblue We iceberg flink 1.14 module indeed include scala related artifact in its transitive dependencies set, see the following: But in fact we iceberg flink modules don't add any scala code in iceberg-flink-1.14 and iceberg-flink-runtime-1.14 artifact packages, and we don't interact with any scala specific flink API. So the flink artifacts deployed from our apache iceberg side, then we don't need to deploy any scala specific jars to the maven repository.
I don't think we need to revert #4157 because we made the Scala version of Flink dependency dynamically configurable in the command line. This is very helpful for validating flink releases with different Scala versions, and indeed it also helps a lot for us to add scala versioned travis CI for flink integration. |
|
The failing unit test is still the flakey Let's get this re-run again. |
|
If I understand correctly, the idea here is that because this is binary compatible using Flink's Java API, we don't need to care about what version of Scala was used in the Flink artifact. I don't think that I agree because if you rely on the Iceberg Flink Jar, it could transitively pull in I think that the runtime Jar could be published without the Scala suffix since it has no transitive dependencies. Or we could remove the transitive dependency and remove the Scala version suffix from all the Jars. But I don't think that Iceberg should public a Jar that has no Scala 2.12 suffix, but then pulls in a Scala 2.12 library. |
Correct.
It won't pull in any flink scala artifact actually because all of the flink related artifacts are introduced as
It's definitely the correction approach for our next flink 1.15, but not possible for flink 1.14 currently. As this #4193 (comment) said, flink 1.15 will remove all the scala version for all the user required artifacts, but flink 1.14 only clean part of the artifacts to remove scala version. Although we iceberg-flink modue introduce the flink artifact with scala versions, but it not require the iceberg flink modules to attach the scala version because the iceberg-flink module does not use any scala code or depends on scala-related APIs, nor does it introduce transitive flink scala dependencies. |
|
Okay, if there is no Scala 2.12 dependency in the runtime or implementation classpath, then I'm fine removing these. |
Refer to the #4157 (comment)