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

XiaoHongbo-Hope pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-mosaic.git


The following commit(s) were added to refs/heads/main by this push:
     new 3b45db9  release: fix source tarball and Java verification paths (#48)
3b45db9 is described below

commit 3b45db9db719cf183626ab8bb49d5e8da8db148d
Author: QuakeWang <[email protected]>
AuthorDate: Fri May 29 15:16:58 2026 +0800

    release: fix source tarball and Java verification paths (#48)
    
    * release: avoid macOS metadata in source tarball
    
    * release: fix Java verification native paths
    
    * docs: clarify release verification steps
---
 docs/creating-a-release.html            |  2 +-
 docs/verifying-a-release-candidate.html | 22 ++++++++++++++++++---
 tools/create_source_release.sh          | 34 ++++++++++++++-------------------
 3 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/docs/creating-a-release.html b/docs/creating-a-release.html
index 8b69a4d..cad0d35 100644
--- a/docs/creating-a-release.html
+++ b/docs/creating-a-release.html
@@ -178,7 +178,7 @@ python3 tools/dependencies.py generate
 git add DEPENDENCIES.rust.tsv core/DEPENDENCIES.rust.tsv 
ffi/DEPENDENCIES.rust.tsv jni/DEPENDENCIES.rust.tsv
 git commit -m "chore: update dependency list for release ${RELEASE_VERSION}"
 git push origin main</code></pre>
-            <p>Fix any license violations before proceeding. The generated 
files must be committed before tagging because 
<code>create_source_release.sh</code> builds the archive from a git clone.</p>
+            <p>Fix any license violations before proceeding. The generated 
files must be committed before tagging because 
<code>create_source_release.sh</code> builds the archive from the committed Git 
tree.</p>
 
             <h3>Create a Release Branch</h3>
             <p>Create one stable release branch for the release line. Do not 
include the RC number in the branch name; RC attempts are represented by tags 
such as <code>v0.1.0-rc1</code> and <code>v0.1.0-rc2</code>.</p>
diff --git a/docs/verifying-a-release-candidate.html 
b/docs/verifying-a-release-candidate.html
index 6f620de..0b52e9e 100644
--- a/docs/verifying-a-release-candidate.html
+++ b/docs/verifying-a-release-candidate.html
@@ -101,9 +101,25 @@ cargo test --workspace</code></pre>
 
             <h3>Java</h3>
             <p>Build the Java binding (requires JDK 8+ and Maven):</p>
-<pre><code>cargo build --release -p paimon-mosaic-jni
-cp target/release/libpaimon_mosaic_jni.* java/src/main/resources/native/
-cd java
+<pre><code>cargo build --release -p paimon-mosaic-jni</code></pre>
+            <p>Copy the built native library into the resource directory for 
the platform being verified. Run only the snippet for your current platform.</p>
+            <p><strong>Linux x86_64:</strong></p>
+<pre><code>mkdir -p java/src/main/resources/native/linux/x86_64
+cp target/release/libpaimon_mosaic_jni.so \
+  java/src/main/resources/native/linux/x86_64/</code></pre>
+            <p><strong>Linux aarch64:</strong></p>
+<pre><code>mkdir -p java/src/main/resources/native/linux/aarch64
+cp target/release/libpaimon_mosaic_jni.so \
+  java/src/main/resources/native/linux/aarch64/</code></pre>
+            <p><strong>macOS aarch64:</strong></p>
+<pre><code>mkdir -p java/src/main/resources/native/macos/aarch64
+cp target/release/libpaimon_mosaic_jni.dylib \
+  java/src/main/resources/native/macos/aarch64/</code></pre>
+            <p><strong>Windows x86_64:</strong></p>
+<pre><code>mkdir -p java/src/main/resources/native/windows/x86_64
+cp target/release/paimon_mosaic_jni.dll \
+  java/src/main/resources/native/windows/x86_64/</code></pre>
+<pre><code>cd java
 mvn clean package</code></pre>
 
             <h3>Python</h3>
diff --git a/tools/create_source_release.sh b/tools/create_source_release.sh
index 6962e6d..ba94fa2 100755
--- a/tools/create_source_release.sh
+++ b/tools/create_source_release.sh
@@ -32,6 +32,7 @@ MVN=${MVN:-mvn}
 # fail immediately
 set -o errexit
 set -o nounset
+set -o pipefail
 # print command before executing
 set -o xtrace
 
@@ -62,32 +63,25 @@ cd ..
 
 echo "Creating source package"
 
-# create a temporary git clone to ensure that we have a pristine source release
-git clone . tools/release/paimon-mosaic-tmp-clone
-cd tools/release/paimon-mosaic-tmp-clone
+ARCHIVE="apache-paimon-mosaic-${RELEASE_VERSION}-src.tgz"
+# Archive from Git objects so filesystem metadata such as macOS xattrs is not 
included.
+git archive --format=tar --prefix="paimon-mosaic-${RELEASE_VERSION}/" 
'HEAD^{tree}' . \
+  ':(exclude).gitignore' ':(exclude).gitattributes' \
+  ':(exclude).asf.yaml' ':(exclude).github' \
+  ':(exclude)deploysettings.xml' ':(exclude)target' \
+  ':(exclude).idea' ':(exclude)*.iml' ':(exclude).DS_Store' \
+  | gzip -n > "tools/release/${ARCHIVE}"
 
-trap 'cd ${CURR_DIR}/release;rm -rf paimon-mosaic-tmp-clone' ERR
+cd tools/release
 
-rsync -a \
-  --exclude ".git" --exclude ".gitignore" --exclude ".gitattributes" \
-  --exclude ".asf.yaml" --exclude ".github" \
-  --exclude "deploysettings.xml" --exclude "target" \
-  --exclude ".idea" --exclude "*.iml" --exclude ".DS_Store" \
-  . paimon-mosaic-$RELEASE_VERSION
-
-tar czf apache-paimon-mosaic-${RELEASE_VERSION}-src.tgz 
paimon-mosaic-$RELEASE_VERSION
-gpg --armor --detach-sig apache-paimon-mosaic-$RELEASE_VERSION-src.tgz
-$SHASUM apache-paimon-mosaic-$RELEASE_VERSION-src.tgz > 
apache-paimon-mosaic-$RELEASE_VERSION-src.tgz.sha512
+gpg --armor --detach-sig "${ARCHIVE}"
+$SHASUM "${ARCHIVE}" > "${ARCHIVE}.sha512"
 
 echo "Verifying GPG signature"
-gpg --verify apache-paimon-mosaic-$RELEASE_VERSION-src.tgz.asc 
apache-paimon-mosaic-$RELEASE_VERSION-src.tgz
+gpg --verify "${ARCHIVE}.asc" "${ARCHIVE}"
 
 echo "Verifying tarball integrity"
-tar tzf apache-paimon-mosaic-${RELEASE_VERSION}-src.tgz > /dev/null
-
-mv apache-paimon-mosaic-$RELEASE_VERSION-src.* ../
-cd ..
-rm -rf paimon-mosaic-tmp-clone
+tar tzf "${ARCHIVE}" > /dev/null
 
 echo ""
 echo "Source release created successfully. Artifacts in tools/release/:"

Reply via email to