-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-42599][CONNECT][INFRA] Introduce dev/connect-jvm-client-mima-check instead of CompatibilitySuite
#40191
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
[SPARK-42599][CONNECT][INFRA] Introduce dev/connect-jvm-client-mima-check instead of CompatibilitySuite
#40191
Conversation
dev/connect-jvm-client-mima-check tool to instead of CompatibilitySuitedev/connect-jvm-client-mima-check tool to instead of CompatibilitySuite
dev/connect-jvm-client-mima-check tool to instead of CompatibilitySuitedev/connect-jvm-client-mima-check instead of CompatibilitySuite
dev/connect-jvm-client-mima-check instead of CompatibilitySuitedev/connect-jvm-client-mima-check instead of CompatibilitySuite
dev/connect-jvm-client-mima-check instead of CompatibilitySuitedev/connect-jvm-client-mima-check instead of CompatibilitySuite
|
cc @Yikun FYI |
| fail( | ||
| s"\nComparing client jar: $clientJar\nand sql jar: $sqlJar\n" + | ||
| problems.map(p => p.description("client")).mkString("\n")) | ||
| private def checkDatasetApiCompatibility(clientJar: File, sqlJar: File): Array[String] = { |
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.
| if test ! -z "$ERRORS"; then | ||
| cat .connect-mima-check-result | ||
| echo -e "connect-client-jvm module mima check failed." | ||
| echo -e "Exceptions to binary compatibility can be added in tools/CheckConnectJvmClientCompatibility.scala" |
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.
Can we keep the file CheckConnectJvmClientCompatibility.scala inside client/jvm and make the tools depends on the client test-jar? Then we do not need to copy past the findJar and recursiveListFiles methods. And also we can keep the code closer to the client?
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.
According to the previous habit, the tools module is independent, and it does not rely on any other Spark module. I do not want to break this.
In addition, the compatibility API tests: Dataset related issues I mentioned in another pr, put it inside the client module may cause unexpected class loading.
If we are sure we don't need to check compatibility API tests: Dataset or there are other ways to solve it, I can try to put CheckConnectJvmClientCompatibility back into the client module.
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.
Another pr #40213 keep CheckConnectJvmClientCompatibility in client/jvm, if we all recommend keeping CheckConnectJvmClientCompatibility in the client/jvm module, we can use that one
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.
Hi, I vote for change #40213 Thanks!
|
This pr often conflicts.... |
|
cc @hvanhovell too FYI |
| sparkSession.analyze(plan, proto.AnalyzePlanRequest.AnalyzeCase.SCHEMA) | ||
| } | ||
|
|
||
| def collectResult(): SparkResult[T] = sparkSession.execute(plan, encoder) |
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 make this private[sql]? For advanced use cases this is a better way of interacting with results.
|
@LuciferYang can we close this one in favor of #40213? |
OK, let me close this one and focus on #40213 |

What changes were proposed in this pull request?
The main changes of this pr as follows:
CompatibilitySuiteas a new toolCheckConnectJvmClientCompatibilityand move it intotoolsmoduledev/connect-jvm-client-mima-check, it will useCheckConnectJvmClientCompatibilityto check the mima compatibility ofconnect-jvm-clientmodule.dev/connect-jvm-client-mima-checkto github taskWhy are the changes needed?
For fix test error report in
[VOTE] Release Apache Spark 3.4.0 (RC1)mail list.Testing
CompatibilitySuitewith maven requires some pre-work:So if we run
build/mvn package testto test whole project as before,CompatibilitySuitewill failed as follows:So we need to fix this problem for developers.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass GitHub Actions