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

jiayu pushed a commit to branch release-process
in repository https://gitbox.apache.org/repos/asf/sedona.git

commit efa6ad35d5c14c84fa49a1bcafbd6d8fb04e6f03
Author: Jia Yu <[email protected]>
AuthorDate: Sun Sep 7 22:41:24 2025 -0700

    update
---
 docs/community/publish.md | 197 +++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 179 insertions(+), 18 deletions(-)

diff --git a/docs/community/publish.md b/docs/community/publish.md
index e0dbecb4cd..e2d37a1f28 100644
--- a/docs/community/publish.md
+++ b/docs/community/publish.md
@@ -119,13 +119,63 @@ rm -rf $LOCAL_DIR && git clone --depth 1 --branch $TAG 
$REPO_URL $LOCAL_DIR && c
 MAVEN_PLUGIN_VERSION="2.3.2"
 
 # Define Spark and Scala versions
-declare -a SPARK_VERSIONS=("3.3" "3.4" "3.5")
+declare -a SPARK_VERSIONS=("3.4" "3.5" "4.0")
 declare -a SCALA_VERSIONS=("2.12" "2.13")
 
+# Function to get Java version for Spark version
+get_java_version() {
+  local spark_version=$1
+  if [[ "$spark_version" == "4.0" ]]; then
+    echo "17"
+  else
+    echo "11"
+  fi
+}
+
+# Function to set JAVA_HOME based on Java version
+set_java_home() {
+  local java_version=$1
+  if [[ "$java_version" == "17" ]]; then
+    # Try to find Java 17 installation
+    if command -v /usr/libexec/java_home >/dev/null 2>&1; then
+      export JAVA_HOME=$(/usr/libexec/java_home -v 17 2>/dev/null || 
/usr/libexec/java_home -v 1.17 2>/dev/null || echo "")
+    fi
+    if [[ -z "$JAVA_HOME" ]]; then
+      echo "Warning: Java 17 not found, using system default"
+    else
+      echo "Using Java 17: $JAVA_HOME"
+    fi
+  else
+    # Try to find Java 11 installation
+    if command -v /usr/libexec/java_home >/dev/null 2>&1; then
+      export JAVA_HOME=$(/usr/libexec/java_home -v 11 2>/dev/null || 
/usr/libexec/java_home -v 1.11 2>/dev/null || echo "")
+    fi
+    if [[ -z "$JAVA_HOME" ]]; then
+      echo "Warning: Java 11 not found, using system default"
+    else
+      echo "Using Java 11: $JAVA_HOME"
+    fi
+  fi
+
+  # Verify Java version using Maven
+  echo "Verifying Java version with Maven..."
+  local mvn_java_version=$(mvn --version | grep "Java version" | sed 's/.*Java 
version: \([0-9]*\).*/\1/')
+  if [[ "$mvn_java_version" != "$java_version" ]]; then
+    echo "ERROR: Maven is using Java $mvn_java_version, but expected Java 
$java_version"
+    echo "Please ensure the correct Java version is installed and JAVA_HOME is 
set properly"
+    exit 1
+  fi
+  echo "✓ Verified: Maven is using Java $mvn_java_version"
+}
+
 # Iterate through Spark and Scala versions
 for SPARK in "${SPARK_VERSIONS[@]}"; do
   for SCALA in "${SCALA_VERSIONS[@]}"; do
-    echo "Running release:perform for Spark $SPARK and Scala $SCALA..."
+    JAVA_VERSION=$(get_java_version $SPARK)
+    echo "Running release:perform for Spark $SPARK and Scala $SCALA with Java 
$JAVA_VERSION..."
+
+    # Set appropriate Java version
+    set_java_home $JAVA_VERSION
 
     mvn 
org.apache.maven.plugins:maven-release-plugin:$MAVEN_PLUGIN_VERSION:perform \
       -DconnectionUrl=scm:git:file://$(pwd) \
@@ -159,26 +209,79 @@ echo "Compiling the source code..."
 
 mkdir apache-sedona-{{ sedona_create_release.current_version }}-bin
 
-cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=3.3 -Dscala=2.12 && cd ..
-cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
-cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/flink-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
-cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/snowflake/target/sedona-*{{ sedona_create_release.current_version}}.jar 
apache-sedona-{{ sedona_create_release.current_version }}-bin/
-
-cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=3.3 -Dscala=2.13 && cd ..
-cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
-
+# Function to get Java version for Spark version
+get_java_version() {
+  local spark_version=$1
+  if [[ "$spark_version" == "4.0" ]]; then
+    echo "17"
+  else
+    echo "11"
+  fi
+}
+
+# Function to set JAVA_HOME based on Java version
+set_java_home() {
+  local java_version=$1
+  if [[ "$java_version" == "17" ]]; then
+    # Try to find Java 17 installation
+    if command -v /usr/libexec/java_home >/dev/null 2>&1; then
+      export JAVA_HOME=$(/usr/libexec/java_home -v 17 2>/dev/null || 
/usr/libexec/java_home -v 1.17 2>/dev/null || echo "")
+    fi
+    if [[ -z "$JAVA_HOME" ]]; then
+      echo "Warning: Java 17 not found, using system default"
+    else
+      echo "Using Java 17: $JAVA_HOME"
+    fi
+  else
+    # Try to find Java 11 installation
+    if command -v /usr/libexec/java_home >/dev/null 2>&1; then
+      export JAVA_HOME=$(/usr/libexec/java_home -v 11 2>/dev/null || 
/usr/libexec/java_home -v 1.11 2>/dev/null || echo "")
+    fi
+    if [[ -z "$JAVA_HOME" ]]; then
+      echo "Warning: Java 11 not found, using system default"
+    else
+      echo "Using Java 11: $JAVA_HOME"
+    fi
+  fi
+
+  # Verify Java version using Maven
+  echo "Verifying Java version with Maven..."
+  local mvn_java_version=$(mvn --version | grep "Java version" | sed 's/.*Java 
version: \([0-9]*\).*/\1/')
+  if [[ "$mvn_java_version" != "$java_version" ]]; then
+    echo "ERROR: Maven is using Java $mvn_java_version, but expected Java 
$java_version"
+    echo "Please ensure the correct Java version is installed and JAVA_HOME is 
set properly"
+    exit 1
+  fi
+  echo "✓ Verified: Maven is using Java $mvn_java_version"
+}
+
+# Compile for Spark 3.4 with Java 11
+JAVA_VERSION=$(get_java_version "3.4")
+set_java_home $JAVA_VERSION
 cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=3.4 -Dscala=2.12 && cd ..
 cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
 
 cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=3.4 -Dscala=2.13 && cd ..
 cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
 
+# Compile for Spark 3.5 with Java 11
+JAVA_VERSION=$(get_java_version "3.5")
+set_java_home $JAVA_VERSION
 cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=3.5 -Dscala=2.12 && cd ..
 cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
 
 cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=3.5 -Dscala=2.13 && cd ..
 cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
 
+# Compile for Spark 4.0 with Java 17
+JAVA_VERSION=$(get_java_version "4.0")
+set_java_home $JAVA_VERSION
+cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=4.0 -Dscala=2.12 && cd ..
+cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
+
+cd apache-sedona-{{ sedona_create_release.current_version }}-src && mvn -q 
clean install -DskipTests -Dspark=4.0 -Dscala=2.13 && cd ..
+cp apache-sedona-{{ sedona_create_release.current_version 
}}-src/spark-shaded/target/sedona-*{{ 
sedona_create_release.current_version}}.jar apache-sedona-{{ 
sedona_create_release.current_version }}-bin/
+
 tar czf apache-sedona-{{ sedona_create_release.current_version }}-bin.tar.gz 
apache-sedona-{{ sedona_create_release.current_version }}-bin
 shasum -a 512 apache-sedona-{{ sedona_create_release.current_version 
}}-src.tar.gz > apache-sedona-{{ sedona_create_release.current_version 
}}-src.tar.gz.sha512
 shasum -a 512 apache-sedona-{{ sedona_create_release.current_version 
}}-bin.tar.gz > apache-sedona-{{ sedona_create_release.current_version 
}}-bin.tar.gz.sha512
@@ -384,17 +487,75 @@ git pull
 rm -f release.*
 rm -f pom.xml.*
 
-# For Spark 3.3 and Scala 2.12
-mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=3.3 -Dscala=2.12" -Dspark=3.3 -Dscala=2.12
-
-# For Spark 3.3 and Scala 2.13
-mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=3.3 -Dscala=2.13" -Dspark=3.3 -Dscala=2.13
-
-# For Spark 3.4 and Scala 2.12
+# Function to get Java version for Spark version
+get_java_version() {
+  local spark_version=$1
+  if [[ "$spark_version" == "4.0" ]]; then
+    echo "17"
+  else
+    echo "11"
+  fi
+}
+
+# Function to set JAVA_HOME based on Java version
+set_java_home() {
+  local java_version=$1
+  if [[ "$java_version" == "17" ]]; then
+    # Try to find Java 17 installation
+    if command -v /usr/libexec/java_home >/dev/null 2>&1; then
+      export JAVA_HOME=$(/usr/libexec/java_home -v 17 2>/dev/null || 
/usr/libexec/java_home -v 1.17 2>/dev/null || echo "")
+    fi
+    if [[ -z "$JAVA_HOME" ]]; then
+      echo "Warning: Java 17 not found, using system default"
+    else
+      echo "Using Java 17: $JAVA_HOME"
+    fi
+  else
+    # Try to find Java 11 installation
+    if command -v /usr/libexec/java_home >/dev/null 2>&1; then
+      export JAVA_HOME=$(/usr/libexec/java_home -v 11 2>/dev/null || 
/usr/libexec/java_home -v 1.11 2>/dev/null || echo "")
+    fi
+    if [[ -z "$JAVA_HOME" ]]; then
+      echo "Warning: Java 11 not found, using system default"
+    else
+      echo "Using Java 11: $JAVA_HOME"
+    fi
+  fi
+
+  # Verify Java version using Maven
+  echo "Verifying Java version with Maven..."
+  local mvn_java_version=$(mvn --version | grep "Java version" | sed 's/.*Java 
version: \([0-9]*\).*/\1/')
+  if [[ "$mvn_java_version" != "$java_version" ]]; then
+    echo "ERROR: Maven is using Java $mvn_java_version, but expected Java 
$java_version"
+    echo "Please ensure the correct Java version is installed and JAVA_HOME is 
set properly"
+    exit 1
+  fi
+  echo "✓ Verified: Maven is using Java $mvn_java_version"
+}
+
+# For Spark 3.4 and Scala 2.12 (Java 11)
+JAVA_VERSION=$(get_java_version "3.4")
+set_java_home $JAVA_VERSION
 mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=3.4 -Dscala=2.12" -Dspark=3.4 -Dscala=2.12
 
-# For Spark 3.4 and Scala 2.13
+# For Spark 3.4 and Scala 2.13 (Java 11)
 mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=3.4 -Dscala=2.13" -Dspark=3.4 -Dscala=2.13
+
+# For Spark 3.5 and Scala 2.12 (Java 11)
+JAVA_VERSION=$(get_java_version "3.5")
+set_java_home $JAVA_VERSION
+mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=3.5 -Dscala=2.12" -Dspark=3.5 -Dscala=2.12
+
+# For Spark 3.5 and Scala 2.13 (Java 11)
+mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=3.5 -Dscala=2.13" -Dspark=3.5 -Dscala=2.13
+
+# For Spark 4.0 and Scala 2.12 (Java 17)
+JAVA_VERSION=$(get_java_version "4.0")
+set_java_home $JAVA_VERSION
+mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=4.0 -Dscala=2.12" -Dspark=4.0 -Dscala=2.12
+
+# For Spark 4.0 and Scala 2.13 (Java 17)
+mvn -q org.apache.maven.plugins:maven-release-plugin:2.3.2:perform 
-DconnectionUrl=scm:git:https://github.com/apache/sedona.git -Dtag={{ 
sedona_create_release.current_git_tag }} -Dresume=false 
-Darguments="-DskipTests -Dspark=4.0 -Dscala=2.13" -Dspark=4.0 -Dscala=2.13
 ```
 
 ## 9. Release Sedona Python and Zeppelin

Reply via email to