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

   ### What changes were proposed in this pull request?
   
   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`, 
`TimeTypeApiOps`, `TimestampNanosTypeApiOps` (and the 
`TimestampNTZNanosTypeApiOps` / `TimestampLTZNanosTypeApiOps` impls) — 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.
   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 (e.g. 
`TimestampNanosTypeOpsSuite`) 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