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

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-graalvm-distro.git


The following commit(s) were added to refs/heads/main by this push:
     new 11a091d  Fix source tarball build and release SHA-512 checksums (#13)
11a091d is described below

commit 11a091dcb94e2fc3813cbc1772f44090994e39aa
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Mon Mar 16 23:14:04 2026 +0800

    Fix source tarball build and release SHA-512 checksums (#13)
    
    - **Source tarball build fix**: `version.properties` generation now handles 
absent `.git` gracefully — uses `resultproperty` to check git exit code and 
falls back to empty commit ID. No `xmlns:if` or complex Ant logic.
    - **SHA-512 fix**: `sign_and_checksum` uses `cd` pattern so `.sha512` files 
contain only `hash  filename` (no local paths). Darwin SHA-512 re-uploaded to 
GitHub Release after GPG signing.
    - **Vote email**: link changed from `quick-start.md` to `compiling.md`.
    - **Compiling docs**: added "Building from Apache Source Tarball" section 
with step-by-step instructions (no Git required).
---
 changes/changes.md         |  8 ++++++++
 docs/compiling.md          | 33 +++++++++++++++++++++++++++------
 oap-graalvm-server/pom.xml |  2 +-
 release/release.sh         | 20 ++++++++++++++++++--
 4 files changed, 54 insertions(+), 9 deletions(-)

diff --git a/changes/changes.md b/changes/changes.md
index a31ea23..21a0cc8 100644
--- a/changes/changes.md
+++ b/changes/changes.md
@@ -18,6 +18,7 @@ Upgrade to the latest Apache SkyWalking OAP server, with 
documentation restructu
 - Add Docker Hub README (`docker/DOCKERHUB_README.md`).
 - Add release guide (`docs/release-guide.md`).
 - Update root `README.md` with project intro, quick start, and image registry 
table.
+- Add "Building from Apache Source Tarball" section to `docs/compiling.md`.
 
 ### CI/CD
 
@@ -29,6 +30,9 @@ Upgrade to the latest Apache SkyWalking OAP server, with 
documentation restructu
 ### Release Tooling
 
 - `release/release.sh`: auto-create SVN `graalvm-distro` directory if it 
doesn't exist.
+- `release/release.sh`: fix SHA-512 checksum files to contain only hash + 
filename (no local paths).
+- `release/release.sh`: re-upload darwin SHA-512 to GitHub Release after GPG 
signing.
+- `release/release.sh`: link vote email to `compiling.md` instead of 
`quick-start.md`.
 - `release/full-release.sh`: end-to-end release script.
 - Generate vote email template with GPG signer info and submodule commit IDs.
 
@@ -36,6 +40,10 @@ Upgrade to the latest Apache SkyWalking OAP server, with 
documentation restructu
 
 - Add TraceQL module (Tempo-compatible trace query API) with Zipkin and 
SkyWalking datasource support.
 
+### Build
+
+- Fix source tarball build: set `failonerror=false` for version generation; 
`release.sh` pre-generates `version.properties` in the source tarball.
+
 ### Testing
 
 - Replacement class staleness detector: add auto-discovery coverage check for 
untracked same-FQCN replacements in `oap-libs-for-graalvm/`.
diff --git a/docs/compiling.md b/docs/compiling.md
index 9777ab7..87fec8e 100644
--- a/docs/compiling.md
+++ b/docs/compiling.md
@@ -8,7 +8,7 @@ JVM distribution and the GraalVM native image binary.
 - **GraalVM JDK 25** with `native-image` installed
 - **Maven 3.9+** (the Maven wrapper `./mvnw` is included)
 - **Docker** (for macOS cross-compilation and container packaging)
-- **Git** (with submodule support)
+- **Git** (with submodule support; not required when building from Apache 
source tarball)
 
 Set `JAVA_HOME` to your GraalVM installation for all commands below:
 
@@ -16,7 +16,28 @@ Set `JAVA_HOME` to your GraalVM installation for all 
commands below:
 export JAVA_HOME=/path/to/graalvm-jdk-25
 ```
 
-## Step 1: Clone the Repository
+## Building from Apache Source Tarball
+
+If you are building from the official Apache source release tarball (no Git 
required):
+
+```bash
+tar -xzf apache-skywalking-graalvm-distro-<version>-src.tar.gz
+cd apache-skywalking-graalvm-distro-<version>-src
+
+# Install SkyWalking submodule artifacts to local Maven repo
+cd skywalking && ../mvnw flatten:flatten install -DskipTests 
-Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Dgpg.skip=true
+cd ..
+
+# Build the distro
+make build-distro
+
+# Build the native image
+make native-image
+```
+
+## Building from Git Repository
+
+### Step 1: Clone the Repository
 
 ```bash
 git clone --recurse-submodules 
https://github.com/apache/skywalking-graalvm-distro.git
@@ -29,7 +50,7 @@ If you already cloned without `--recurse-submodules`:
 git submodule update --init --recursive
 ```
 
-## Step 2: Install SkyWalking Submodule (First Time Only)
+### Step 2: Install SkyWalking Submodule (First Time Only)
 
 The upstream SkyWalking artifacts must be installed into your local Maven 
repository before
 the distro modules can compile against them:
@@ -41,7 +62,7 @@ make init-skywalking
 This runs `mvn install` on the `skywalking/` submodule. The result is cached 
in `~/.m2/repository`
 and only needs to be re-run when the submodule is updated.
 
-## Step 3: Build the JVM Distribution
+### Step 3: Build the JVM Distribution
 
 ```bash
 make build-distro
@@ -78,7 +99,7 @@ make shutdown
 make docker-down
 ```
 
-## Step 4: Build the Native Image
+### Step 4: Build the Native Image
 
 After `make build-distro` (or `make compile`), build the native binary:
 
@@ -116,7 +137,7 @@ make native-image-macos
 This runs the `native-image` step inside a 
`ghcr.io/graalvm/native-image-community:25`
 container, producing a Linux binary while reusing your host's Maven cache and 
compiled classes.
 
-## Step 5: Package as Docker Image
+### Step 5: Package as Docker Image
 
 After building the native image:
 
diff --git a/oap-graalvm-server/pom.xml b/oap-graalvm-server/pom.xml
index ec00bdc..2515a66 100644
--- a/oap-graalvm-server/pom.xml
+++ b/oap-graalvm-server/pom.xml
@@ -463,7 +463,7 @@
                                 <!-- Generate version.properties from 
submodule git metadata.
                                      Does not depend on upstream's 
git-commit-id-plugin output. -->
                                 <exec executable="git" 
dir="${project.basedir}/../skywalking"
-                                      outputproperty="upstream.git.commit.id" 
failonerror="true">
+                                      outputproperty="upstream.git.commit.id" 
failonerror="false">
                                     <arg value="rev-parse"/>
                                     <arg value="HEAD"/>
                                 </exec>
diff --git a/release/release.sh b/release/release.sh
index 02d2b3f..ba91754 100755
--- a/release/release.sh
+++ b/release/release.sh
@@ -67,7 +67,7 @@ sign_and_checksum() {
     log "Signing ${file}..."
     gpg --armor --detach-sign "${file}"
     log "Generating SHA-512 checksum for ${file}..."
-    shasum -a 512 "${file}" > "${file}.sha512"
+    (cd "$(dirname "${file}")" && shasum -a 512 "$(basename "${file}")" > 
"$(basename "${file}").sha512")
 }
 
 # ─── Validate arguments ─────────────────────────────────────────────────────
@@ -143,6 +143,16 @@ SRC_CLONE_DIR="${TMP_DIR}/src-clone"
 git clone --branch "${TAG}" --recurse-submodules \
     "https://github.com/${REPO}.git"; "${SRC_CLONE_DIR}"
 
+# Pre-generate version.properties before removing .git (no git in source 
tarball)
+SRC_SW_COMMIT=$(git -C "${SRC_CLONE_DIR}/skywalking" rev-parse HEAD)
+mkdir -p "${SRC_CLONE_DIR}/oap-graalvm-server/src/main/resources"
+cat > 
"${SRC_CLONE_DIR}/oap-graalvm-server/src/main/resources/version.properties" 
<<VPEOF
+#Generated by release.sh
+git.build.version=${VERSION}-graal-distro
+git.commit.id=${SRC_SW_COMMIT}
+VPEOF
+log "Pre-generated version.properties for source tarball"
+
 # Remove all .git directories and files (root + submodules)
 # Submodule .git entries are files (not directories), so match both types
 find "${SRC_CLONE_DIR}" -name ".git" -exec rm -rf {} + 2>/dev/null || true
@@ -221,6 +231,12 @@ for tarball in "${DIST_DIR}"/*.tar.gz; do
     sign_and_checksum "${tarball}"
 done
 
+# Re-upload darwin sha512 to GitHub Release (regenerated after GPG signing)
+log "Uploading darwin SHA-512 checksum to GitHub Release..."
+gh release upload "${TAG}" --repo "${REPO}" \
+    "${DIST_DIR}/${DARWIN_SHA512}" \
+    --clobber
+
 # ─── Step 7: Clean up tmp ────────────────────────────────────────────────────
 log "Cleaning up temporary files..."
 rm -rf "${TMP_DIR}"
@@ -326,7 +342,7 @@ Keys to verify the Release Candidate :
 
 Guide to build the release from source :
 
- * 
https://github.com/apache/skywalking-graalvm-distro/blob/v${VERSION}/docs/quick-start.md
+ * 
https://github.com/apache/skywalking-graalvm-distro/blob/v${VERSION}/docs/compiling.md
 
 Voting will start now (${VOTE_DATE}) and will remain open for at least 72 
hours, Request all PMC members to give their vote.
 [ ] +1 Release this package.

Reply via email to