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
[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 CompatibilitySuite
dev/connect-jvm-client-mima-check
tool to instead of CompatibilitySuite
dev/connect-jvm-client-mima-check
tool to instead of CompatibilitySuite
dev/connect-jvm-client-mima-check
instead of CompatibilitySuite
dev/connect-jvm-client-mima-check
instead of CompatibilitySuite
dev/connect-jvm-client-mima-check
instead of CompatibilitySuite
dev/connect-jvm-client-mima-check
instead of CompatibilitySuite
dev/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 |
@@ -2739,7 +2739,7 @@ class Dataset[T] private[sql] ( | |||
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:
CompatibilitySuite
as a new toolCheckConnectJvmClientCompatibility
and move it intotools
moduledev/connect-jvm-client-mima-check
, it will useCheckConnectJvmClientCompatibility
to check the mima compatibility ofconnect-jvm-client
module.dev/connect-jvm-client-mima-check
to github taskWhy are the changes needed?
For fix test error report in
[VOTE] Release Apache Spark 3.4.0 (RC1)
mail list.Testing
CompatibilitySuite
with maven requires some pre-work:So if we run
build/mvn package test
to test whole project as before,CompatibilitySuite
will 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