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

yao pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new 66064461768b [SPARK-52010] Do not generate API docs for internal 
classes
66064461768b is described below

commit 66064461768b38d703b8b8d76ed544e92023b24e
Author: Wenchen Fan <wenc...@databricks.com>
AuthorDate: Tue May 6 11:49:47 2025 +0800

    [SPARK-52010] Do not generate API docs for internal classes
    
    ### What changes were proposed in this pull request?
    
    While reviewing the API doc of 4.0 RC4, I found that there are some newly 
added internal classes appear in the API doc. This PR fixes them.
    
    ### Why are the changes needed?
    
    API doc should not include internal classes
    
    ### Does this PR introduce _any_ user-facing change?
    
    no
    
    ### How was this patch tested?
    
    N/A
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    no
    
    Closes #50797 from cloud-fan/api.
    
    Authored-by: Wenchen Fan <wenc...@databricks.com>
    Signed-off-by: Kent Yao <y...@apache.org>
    (cherry picked from commit 9f5ae883899ab72fb2bb8d2e6326c5ef81494250)
    Signed-off-by: Kent Yao <y...@apache.org>
---
 .../scala/org/apache/spark/util/SparkStringUtils.scala     |  4 ++--
 .../main/scala/org/apache/spark/util/SparkTestUtils.scala  |  4 ++--
 .../org/apache/spark/sql/avro/AvroDataToCatalyst.scala     |  2 +-
 .../org/apache/spark/sql/avro/CatalystDataToAvro.scala     |  2 +-
 .../scala/org/apache/spark/sql/avro/SchemaOfAvro.scala     |  2 +-
 .../org/apache/spark/kafka010/KafkaConfigUpdater.scala     |  2 +-
 .../spark/kafka010/KafkaDelegationTokenProvider.scala      |  2 +-
 .../org/apache/spark/kafka010/KafkaRedactionUtil.scala     |  6 +++---
 .../org/apache/spark/kafka010/KafkaTokenSparkConf.scala    |  4 ++--
 .../scala/org/apache/spark/kafka010/KafkaTokenUtil.scala   | 12 ++++++------
 project/SparkBuild.scala                                   | 14 +++++++++++---
 .../spark/sql/exceptions/SqlScriptingException.scala       |  2 +-
 .../scala/org/apache/spark/sql/jdbc/JdbcDialects.scala     |  2 +-
 13 files changed, 33 insertions(+), 25 deletions(-)

diff --git 
a/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala 
b/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala
index 6915f373b84e..9f58288ee266 100644
--- a/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala
+++ b/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala
@@ -16,11 +16,11 @@
  */
 package org.apache.spark.util
 
-trait SparkStringUtils {
+private[spark] trait SparkStringUtils {
   def stringToSeq(str: String): Seq[String] = {
     import org.apache.spark.util.ArrayImplicits._
     str.split(",").map(_.trim()).filter(_.nonEmpty).toImmutableArraySeq
   }
 }
 
-object SparkStringUtils extends SparkStringUtils
+private[spark] object SparkStringUtils extends SparkStringUtils
diff --git 
a/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala 
b/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala
index bcb2668d31e6..34b40a5a8890 100644
--- a/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala
+++ b/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala
@@ -25,7 +25,7 @@ import javax.tools.{JavaFileObject, SimpleJavaFileObject, 
ToolProvider}
 
 import scala.jdk.CollectionConverters._
 
-trait SparkTestUtils {
+private[spark] trait SparkTestUtils {
   // Adapted from the JavaCompiler.java doc examples
   private val SOURCE = JavaFileObject.Kind.SOURCE
 
@@ -103,4 +103,4 @@ trait SparkTestUtils {
 
 }
 
-object SparkTestUtils extends SparkTestUtils
+private[spark] object SparkTestUtils extends SparkTestUtils
diff --git 
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
 
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
index 62c185a91d85..c0b50e5cba48 100644
--- 
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
+++ 
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
@@ -30,7 +30,7 @@ import org.apache.spark.sql.catalyst.util.{FailFastMode, 
ParseMode, PermissiveMo
 import org.apache.spark.sql.errors.QueryCompilationErrors
 import org.apache.spark.sql.types._
 
-private[sql] case class AvroDataToCatalyst(
+case class AvroDataToCatalyst(
     child: Expression,
     jsonFormatSchema: String,
     options: Map[String, String])
diff --git 
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
 
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
index 56ed117aef58..01daac1cfa6b 100644
--- 
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
+++ 
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
@@ -27,7 +27,7 @@ import org.apache.spark.sql.catalyst.expressions.{Expression, 
UnaryExpression}
 import org.apache.spark.sql.catalyst.expressions.codegen.{CodegenContext, 
ExprCode}
 import org.apache.spark.sql.types.{BinaryType, DataType}
 
-private[sql] case class CatalystDataToAvro(
+case class CatalystDataToAvro(
     child: Expression,
     jsonFormatSchema: Option[String]) extends UnaryExpression {
 
diff --git 
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala 
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala
index e062ad778106..362fc79a0f1b 100644
--- a/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala
+++ b/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala
@@ -25,7 +25,7 @@ import org.apache.spark.sql.catalyst.util.{FailFastMode, 
ParseMode, PermissiveMo
 import org.apache.spark.sql.errors.QueryCompilationErrors
 import org.apache.spark.sql.types.{DataType, ObjectType, StringType}
 
-private[sql] case class SchemaOfAvro(
+case class SchemaOfAvro(
     jsonFormatSchema: String,
     options: Map[String, String])
   extends LeafExpression with RuntimeReplaceable {
diff --git 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
index 8251c0c43d9e..17392f5a231d 100644
--- 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
+++ 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
@@ -30,7 +30,7 @@ import org.apache.spark.internal.Logging
 /**
  * Class to conveniently update Kafka config params, while logging the changes
  */
-private[spark] case class KafkaConfigUpdater(module: String, kafkaParams: 
Map[String, Object])
+case class KafkaConfigUpdater(module: String, kafkaParams: Map[String, Object])
     extends Logging {
   private val map = new ju.HashMap[String, Object](kafkaParams.asJava)
 
diff --git 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
index 3616f93659fb..8acdd01a15ba 100644
--- 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
+++ 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
@@ -28,7 +28,7 @@ import org.apache.spark.internal.{Logging, MDC}
 import org.apache.spark.internal.LogKeys.{CLUSTER_ID, SERVICE_NAME}
 import org.apache.spark.security.HadoopDelegationTokenProvider
 
-private[spark] class KafkaDelegationTokenProvider
+class KafkaDelegationTokenProvider
   extends HadoopDelegationTokenProvider with Logging {
 
   override def serviceName: String = "kafka"
diff --git 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
index c552e469ab83..44c0b1cb32c9 100644
--- 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
+++ 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
@@ -24,8 +24,8 @@ import org.apache.spark.internal.Logging
 import org.apache.spark.internal.config.SECRET_REDACTION_PATTERN
 import org.apache.spark.util.Utils.{redact, REDACTION_REPLACEMENT_TEXT}
 
-private[spark] object KafkaRedactionUtil extends Logging {
-  private[spark] def redactParams(params: Seq[(String, Object)]): Seq[(String, 
String)] = {
+object KafkaRedactionUtil extends Logging {
+  def redactParams(params: Seq[(String, Object)]): Seq[(String, String)] = {
     val redactionPattern = Some(Option(SparkEnv.get).map(_.conf)
       .getOrElse(new SparkConf()).get(SECRET_REDACTION_PATTERN))
     params.map { case (key, value) =>
@@ -42,7 +42,7 @@ private[spark] object KafkaRedactionUtil extends Logging {
     }
   }
 
-  private[kafka010] def redactJaasParam(param: String): String = {
+  def redactJaasParam(param: String): String = {
     if (param != null && !param.isEmpty) {
       param.replaceAll("password=\".*\"", 
s"""password="$REDACTION_REPLACEMENT_TEXT"""")
     } else {
diff --git 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
index 21ba7b21ed9d..64cc2cba6b30 100644
--- 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
+++ 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
@@ -25,7 +25,7 @@ import org.apache.spark.SparkConf
 import org.apache.spark.internal.Logging
 import org.apache.spark.util.Utils.REDACTION_REPLACEMENT_TEXT
 
-private[spark] case class KafkaTokenClusterConf(
+case class KafkaTokenClusterConf(
     identifier: String,
     authBootstrapServers: String,
     targetServersRegex: String,
@@ -57,7 +57,7 @@ private[spark] case class KafkaTokenClusterConf(
     
s"specifiedKafkaParams=${KafkaRedactionUtil.redactParams(specifiedKafkaParams.toSeq)}}"
 }
 
-private [kafka010] object KafkaTokenSparkConf extends Logging {
+object KafkaTokenSparkConf extends Logging {
   val CLUSTERS_CONFIG_PREFIX = "spark.kafka.clusters."
   val DEFAULT_TARGET_SERVERS_REGEX = ".*"
   val DEFAULT_SASL_KERBEROS_SERVICE_NAME = "kafka"
diff --git 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
index 669491f14205..54014859bc5e 100644
--- 
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
+++ 
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
@@ -44,7 +44,7 @@ import org.apache.spark.internal.config._
 import org.apache.spark.util.{SecurityUtils, Utils}
 import org.apache.spark.util.Utils.REDACTION_REPLACEMENT_TEXT
 
-private[spark] object KafkaTokenUtil extends Logging {
+object KafkaTokenUtil extends Logging {
   val TOKEN_KIND = new Text("KAFKA_DELEGATION_TOKEN")
   private val TOKEN_SERVICE_PREFIX = "kafka.server.delegation.token"
   private val DATE_TIME_FORMATTER =
@@ -52,17 +52,17 @@ private[spark] object KafkaTokenUtil extends Logging {
       .ofPattern("yyyy-MM-dd'T'HH:mm")
       .withZone(ZoneId.systemDefault())
 
-  private[kafka010] def getTokenService(identifier: String): Text =
+  def getTokenService(identifier: String): Text =
     new Text(s"$TOKEN_SERVICE_PREFIX.$identifier")
 
   private def getClusterIdentifier(service: Text): String =
     service.toString().replace(s"$TOKEN_SERVICE_PREFIX.", "")
 
-  private[spark] class KafkaDelegationTokenIdentifier extends 
AbstractDelegationTokenIdentifier {
+  class KafkaDelegationTokenIdentifier extends 
AbstractDelegationTokenIdentifier {
     override def getKind: Text = TOKEN_KIND
   }
 
-  private[kafka010] def obtainToken(
+  def obtainToken(
       sparkConf: SparkConf,
       clusterConf: KafkaTokenClusterConf): 
(Token[KafkaDelegationTokenIdentifier], Long) = {
     checkProxyUser()
@@ -81,7 +81,7 @@ private[spark] object KafkaTokenUtil extends Logging {
     ), token.tokenInfo.expiryTimestamp)
   }
 
-  private[kafka010] def checkProxyUser(): Unit = {
+  def checkProxyUser(): Unit = {
     val currentUser = UserGroupInformation.getCurrentUser()
     // Obtaining delegation token for proxy user is planned but not yet 
implemented
     // See https://issues.apache.org/jira/browse/KAFKA-6945
@@ -89,7 +89,7 @@ private[spark] object KafkaTokenUtil extends Logging {
       "user is not yet supported.")
   }
 
-  private[kafka010] def createAdminClientProperties(
+  def createAdminClientProperties(
       sparkConf: SparkConf,
       clusterConf: KafkaTokenClusterConf): ju.Properties = {
     val adminClientProperties = new ju.Properties
diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala
index e8a19de8e12d..f57438228745 100644
--- a/project/SparkBuild.scala
+++ b/project/SparkBuild.scala
@@ -334,10 +334,14 @@ object SparkBuild extends PomBuild {
       "-groups",
       "-skip-packages", Seq(
         "org.apache.spark.api.python",
-        "org.apache.spark.network",
         "org.apache.spark.deploy",
-        "org.apache.spark.util.collection",
-        "org.apache.spark.sql.scripting"
+        "org.apache.spark.kafka010",
+        "org.apache.spark.network",
+        "org.apache.spark.sql.avro",
+        "org.apache.spark.sql.scripting",
+        "org.apache.spark.types.variant",
+        "org.apache.spark.ui.flamegraph",
+        "org.apache.spark.util.collection"
       ).mkString(":"),
       "-doc-title", "Spark " + version.value.replaceAll("-SNAPSHOT", "") + " 
ScalaDoc"
     ),
@@ -1380,10 +1384,14 @@ object Unidoc {
         f.getCanonicalPath.contains("org/apache/spark/unsafe") &&
         
!f.getCanonicalPath.contains("org/apache/spark/unsafe/types/CalendarInterval")))
       .map(_.filterNot(_.getCanonicalPath.contains("python")))
+      
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/kafka010")))
+      
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/types/variant")))
+      
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/ui/flamegraph")))
       
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/util/collection")))
       
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/util/io")))
       
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/util/kvstore")))
       
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/artifact")))
+      
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/avro")))
       
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/catalyst")))
       
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/connect/")))
       
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/classic/")))
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
index 7602366c71a6..28d8177dbb23 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
@@ -23,7 +23,7 @@ import org.apache.spark.{SparkThrowable, SparkThrowableHelper}
 import org.apache.spark.sql.catalyst.trees.Origin
 import 
org.apache.spark.sql.exceptions.SqlScriptingException.errorMessageWithLineNumber
 
-class SqlScriptingException (
+private[sql] class SqlScriptingException (
     errorClass: String,
     cause: Throwable,
     val origin: Origin,
diff --git 
a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala 
b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
index 85dd5860e5a5..65e39ca0b91b 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
@@ -862,7 +862,7 @@ abstract class JdbcDialect extends Serializable with 
Logging {
 /**
  * Make the `classifyException` method throw out the original exception
  */
-trait NoLegacyJDBCError extends JdbcDialect {
+private[sql] trait NoLegacyJDBCError extends JdbcDialect {
 
   override def classifyException(
       e: Throwable,


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

Reply via email to