cloud-fan opened a new pull request, #56571:
URL: https://github.com/apache/spark/pull/56571

   ### What changes were proposed in this pull request?
   
   Backport of #56551 to `branch-4.2`. Two related changes that keep internal 
packages out of the published 4.2.0 API surface:
   
   1. Move the client-side Types Framework ops -- `TypeApiOps` and 
`TimeTypeApiOps` -- from `org.apache.spark.sql.types.ops` to 
`org.apache.spark.sql.catalyst.types.ops`, co-located with the server-side 
`TypeOps` family. Consumer imports are updated; same-package consumers drop the 
now-redundant import. (The `TimestampNanos*ApiOps` types moved in the master PR 
do not exist on `branch-4.2`, so they are not part of this backport.)
   2. Exclude `org.apache.spark.udf.worker` from the generated API docs in 
`project/SparkBuild.scala`'s `ignoreUndocumentedPackages`.
   
   ### Why are the changes needed?
   
   The `*ApiOps` types are internal plumbing of the Types Framework (the 
client-side counterpart to catalyst's `TypeOps`), but they lived inside the 
public `org.apache.spark.sql.types` package, so they leaked into the published 
PySpark/Scala API of the unreleased 4.2.0 line. 
`org.apache.spark.sql.catalyst.*` is already excluded from both the generated 
docs (`ignoreUndocumentedPackages`) and MiMa (`MimaExcludes`), so relocating 
them there makes them internal with no new build/MiMa entries and mirrors how 
the server-side `TypeOps` is already handled.
   
   `org.apache.spark.udf.worker` is UDF-worker infrastructure (mostly 
protobuf-generated `*OrBuilder` Java plus worker internals) that surfaced as 
public API. Its modules aren't MiMa-checked, and the generated Java can't carry 
a Scala visibility qualifier, so excluding the package from the docs is the 
appropriate fix.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No. Relative to released Spark there is no change; the affected types are 
new in the unreleased 4.2.0 line and were never intended to be public. This 
only removes them from the generated API docs (and, for the ops, the 
binary-compatibility surface) before release. There is no behavior change.
   
   ### How was this patch tested?
   
   No new tests -- this is a package relocation plus a build-config change with 
no logic change. The relocated classes are exercised by existing suites and the 
cast / `Row` / `HiveResult` paths; CI compiles all affected modules and runs 
scalastyle, which enforces the import-ordering updates made here.
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to