-
Notifications
You must be signed in to change notification settings - Fork 28.2k
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-49147][CORE] Mark KryoRegistrator
with DeveloperApi interface
#47657
Conversation
@dongjoon-hyun @mridulm please take a look |
KryoSerializer
as a stable interface
KryoSerializer
as a stable interfaceKryoRegistrator
as a stable interface
In addition, this cannot be spark/core/src/main/scala/org/apache/spark/serializer/JavaSerializer.scala Lines 161 to 162 in 435a01a
If we want to annotate, this should have |
KryoRegistrator
as a stable interfaceKryoRegistrator
with DeveloperApi interface
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.
Since it's a documented for a long time, I agree with the proposal.
https://spark.apache.org/docs/latest/api/scala/org/apache/spark/serializer/KryoRegistrator.html
+1, LGTM. Thank you, @robreeves .
Do we want to make both of these In general, we have rarely promoted any of our |
If you want, we can do, of course, @mridulm . :)
|
May it be broken if we migrate Kryo from 4.x to 5.x? |
I didn't see any breaking change in And, we depend on |
Hi @dongjoon-hyun the question is just for curiosity to make it Stable or DeveloperAPI Thank you for the explanation. |
|
Thinking more, let us decouple DeveloperApi -> Stable from this PR. |
Sounds good to me. +1 for merging this PR in the AS-IS status. BTW, could you re-trigger the CI, @robreeves ? |
The docker test failure is irrelevant. Merged to master. Thank you @robreeves @dongjoon-hyun @mridulm @pan3793 |
What changes were proposed in this pull request?
Trait
org.apache.spark.serializer.KryoRegistrator
is a public interface because it is exposed via configspark.kryo.registrator
, but it is not annotated to describe the stability level. This adds theDeveloperApi
annotation to formalize the contract.Why are the changes needed?
This will help users understand the compatibility guarantees when using the trait. It is also helpful for scripts that need to identify classes with public APIs. We recently missed this trait in a script used to analyze which namespaces can be shaded.
Does this PR introduce any user-facing change?
Yes, it adds the DeveloperApi interface to the trait.
How was this patch tested?
N/A. Annotation change only.
Was this patch authored or co-authored using generative AI tooling?
No