yihua opened a new pull request, #19168: URL: https://github.com/apache/hudi/pull/19168
**Stacked on #19147, review that first.** ### Change Logs Consolidates the six identically-pathed copies of the vendored spark-avro `AvroSerializer`/`AvroDeserializer` (hudi-spark3.3.x through hudi-spark4.2.x): - **Serializer 6 -> 2** (hudi-spark3-common, hudi-spark4-common). - **Deserializer 6 -> 3** (hudi-spark3-common; hudi-spark4-common for 4.1/4.2; hudi-spark4.0.x keeps a renamed `Spark40AvroDeserializer`). Like #19147, the shared repo path made these forks invisible to Codecov (report-path resolution drops files whose path is shared across six modules); unique paths restore them to the coverage denominator, so expect a small negative project-coverage delta from that honest accounting. How the version deltas are handled (every shared body is byte-identical to its originals modulo these): - **3.x**: bodies are identical except the `LegacyBehaviorPolicy` import (nested in `SQLConf` on 3.3/3.4, top-level on 3.5). No single explicit import resolves on all three, so the shared source imports both `org.apache.spark.sql.internal._` and `...SQLConf._`; exactly one contributes the enum per version. - **4.x serializer**: the only per-version difference is the `AVRO_REBASE_MODE_IN_WRITE` read (String on 4.0, enum on 4.1+); this moved verbatim into the per-version wrappers and the convenience constructor was dropped from the shared class. - **4.0 deserializer**: kept separate (Avro 1.12.0 vs 1.12.1 read-side block), renamed `Spark40AvroDeserializer` to avoid a same-FQN classpath collision with the shared copy; its body is unchanged. ### Impact Pure refactor; no functional change. Bundles already include the family common modules and relocate the `org.apache.spark.sql.avro` package wholesale. ### Risk level low. Every shared body is byte-identical to its originals modulo the documented import/constructor deltas; import resolution was verified by compiling against the Spark 3.3/3.4/3.5 catalyst jars, and scalastyle is clean. CI compiles all Spark 3.3-4.2 profiles on Scala 2.12 and 2.13. ### Documentation Update None. ### Contributor's checklist - [x] Read through the contributor's guide - [x] Enough context is provided in the sections above -- 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]
