This is an automated email from the ASF dual-hosted git repository.

dongjoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new f3a08e7036a7 [SPARK-53088][BUILD] Remove `scala-collection-compat` 
dependency
f3a08e7036a7 is described below

commit f3a08e7036a7dd2a2ced08f88a7d56619a44fa27
Author: Dongjoon Hyun <dongj...@apache.org>
AuthorDate: Sun Aug 3 18:34:27 2025 -0700

    [SPARK-53088][BUILD] Remove `scala-collection-compat` dependency
    
    ### What changes were proposed in this pull request?
    
    This PR aims to remove `scala-collection-compat` dependency at Apache Spark 
4.1.0.
    
    ### Why are the changes needed?
    
    Apache Spark 4.0 has a transitive dependency `scala-collection-compat` 
v2.7.0 (2022-03-22) which is a little old.
    
    
https://github.com/apache/spark/blob/21fd325362658e284218118803cad532f6d8cc53/dev/deps/spark-deps-hadoop-3-hive-2.3#L252
    
    - https://github.com/scala/scala-collection-compat/releases/tag/v2.13.0 
(2025-01-27)
    - https://github.com/scala/scala-collection-compat/releases/tag/v2.12.0 
(2024-04-15)
    - https://github.com/scala/scala-collection-compat/releases/tag/v2.11.0 
(2023-06-15)
    - https://github.com/scala/scala-collection-compat/releases/tag/v2.10.0 
(2024-04-24)
    - https://github.com/scala/scala-collection-compat/releases/tag/v2.9.0 
(2022-11-28)
    - https://github.com/scala/scala-collection-compat/releases/tag/v2.8.0 
(2022-07-08)
    
    However, what we actually use is only the following wrapper. We had better 
simplify this dependency relationship.
    
    - https://github.com/scala/scala-collection-compat
    
    > The Scala 2.13 and Scala 3 versions consist only of an empty 
scala.collection.compat package object, so import scala.collection.compat._ 
won't cause an error in cross-compiled code.
    
    ```scala
    package scala.collection
    
    package object compat {
      type Factory[-A, +C] = scala.collection.Factory[A, C]
      val Factory = scala.collection.Factory
    
      type BuildFrom[-From, -A, +C] = scala.collection.BuildFrom[From, A, C]
      val BuildFrom = scala.collection.BuildFrom
    
      type IterableOnce[+X] = scala.collection.IterableOnce[X]
      val IterableOnce = scala.collection.IterableOnce
    }
    ```
    
    ### Does this PR introduce _any_ user-facing change?
    
    No behavior changes.
    
    ### How was this patch tested?
    
    Pass the CIs.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    No.
    
    Closes #51802 from dongjoon-hyun/SPARK-53088-2.
    
    Authored-by: Dongjoon Hyun <dongj...@apache.org>
    Signed-off-by: Dongjoon Hyun <dongj...@apache.org>
---
 LICENSE                                            |  1 +
 LICENSE-binary                                     |  1 -
 dev/.rat-excludes                                  |  1 +
 dev/deps/spark-deps-hadoop-3-hive-2.3              |  1 -
 .../scala/scala/collection/compat/package.scala    | 26 ++++++++++++++++++++++
 pom.xml                                            |  4 ++++
 scalastyle-config.xml                              |  2 +-
 7 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/LICENSE b/LICENSE
index 9b1e96a44a58..ef8192ec38d0 100644
--- a/LICENSE
+++ b/LICENSE
@@ -217,6 +217,7 @@ core/src/main/resources/org/apache/spark/ui/static/vis*
 
connector/spark-ganglia-lgpl/src/main/java/com/codahale/metrics/ganglia/GangliaReporter.java
 core/src/main/resources/org/apache/spark/ui/static/d3-flamegraph.min.js
 core/src/main/resources/org/apache/spark/ui/static/d3-flamegraph.css
+mllib-local/src/main/scala/scala/collection/compat/package.scala
 
 Python Software Foundation License
 ----------------------------------
diff --git a/LICENSE-binary b/LICENSE-binary
index 61a6a830dad3..6f6bf9db5448 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -398,7 +398,6 @@ org.rocksdb:rocksdbjni
 org.scala-lang:scala-compiler
 org.scala-lang:scala-library
 org.scala-lang:scala-reflect
-org.scala-lang.modules:scala-collection-compat_2.13
 org.scala-lang.modules:scala-parallel-collections_2.13
 org.scala-lang.modules:scala-parser-combinators_2.13
 org.scala-lang.modules:scala-xml_2.13
diff --git a/dev/.rat-excludes b/dev/.rat-excludes
index 5084d0b6905a..f976b03b49c9 100644
--- a/dev/.rat-excludes
+++ b/dev/.rat-excludes
@@ -132,6 +132,7 @@ SqlBaseLexer.tokens
 .*\.proto.bin
 LimitedInputStream.java
 TimSort.java
+mllib-local/src/main/scala/scala/collection/compat/package.scala
 xml-resources/*
 loose_version.py
 people.xml
diff --git a/dev/deps/spark-deps-hadoop-3-hive-2.3 
b/dev/deps/spark-deps-hadoop-3-hive-2.3
index 020a2c4f6cfe..78025a4f934c 100644
--- a/dev/deps/spark-deps-hadoop-3-hive-2.3
+++ b/dev/deps/spark-deps-hadoop-3-hive-2.3
@@ -249,7 +249,6 @@ pickle/1.5//pickle-1.5.jar
 py4j/0.10.9.9//py4j-0.10.9.9.jar
 remotetea-oncrpc/1.1.2//remotetea-oncrpc-1.1.2.jar
 rocksdbjni/9.8.4//rocksdbjni-9.8.4.jar
-scala-collection-compat_2.13/2.7.0//scala-collection-compat_2.13-2.7.0.jar
 scala-compiler/2.13.16//scala-compiler-2.13.16.jar
 scala-library/2.13.16//scala-library-2.13.16.jar
 
scala-parallel-collections_2.13/1.2.0//scala-parallel-collections_2.13-1.2.0.jar
diff --git a/mllib-local/src/main/scala/scala/collection/compat/package.scala 
b/mllib-local/src/main/scala/scala/collection/compat/package.scala
new file mode 100644
index 000000000000..8ce1cfff886f
--- /dev/null
+++ b/mllib-local/src/main/scala/scala/collection/compat/package.scala
@@ -0,0 +1,26 @@
+// scalastyle:off license
+/*
+ * Scala (https://www.scala-lang.org)
+ *
+ * Copyright EPFL and Lightbend, Inc. dba Akka
+ *
+ * Licensed under Apache License 2.0
+ * (http://www.apache.org/licenses/LICENSE-2.0).
+ *
+ * See the NOTICE file distributed with this work for
+ * additional information regarding copyright ownership.
+ */
+// scalastyle:on license
+
+package scala.collection
+
+package object compat {
+  type Factory[-A, +C] = scala.collection.Factory[A, C]
+  val Factory = scala.collection.Factory
+
+  type BuildFrom[-From, -A, +C] = scala.collection.BuildFrom[From, A, C]
+  val BuildFrom = scala.collection.BuildFrom
+
+  type IterableOnce[+X] = scala.collection.IterableOnce[X]
+  val IterableOnce = scala.collection.IterableOnce
+}
diff --git a/pom.xml b/pom.xml
index bd9e9650a6f1..4b5eeeeb6cd3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1150,6 +1150,10 @@
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-math3</artifactId>
           </exclusion>
+          <exclusion>
+            <groupId>org.scala-lang.modules</groupId>
+            
<artifactId>scala-collection-compat_${scala.binary.version}</artifactId>
+          </exclusion>
         </exclusions>
       </dependency>
       <dependency>
diff --git a/scalastyle-config.xml b/scalastyle-config.xml
index d0e15998c36a..7b6b65a22810 100644
--- a/scalastyle-config.xml
+++ b/scalastyle-config.xml
@@ -46,7 +46,7 @@ This file is divided into 3 sections:
 
   <check level="error" class="org.scalastyle.file.FileTabChecker" 
enabled="true"></check>
 
-  <check level="error" class="org.scalastyle.file.HeaderMatchesChecker" 
enabled="true">
+  <check customId="license" level="error" 
class="org.scalastyle.file.HeaderMatchesChecker" enabled="true">
     <parameters>
        <parameter name="header"><![CDATA[/*
  * Licensed to the Apache Software Foundation (ASF) under one or more


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to