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.