You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2026/03/16 08:59:46 UTC
(skywalking-graalvm-distro) branch fix/source-tarball-build created (now d4d5957)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a change to branch fix/source-tarball-build
in repository https://gitbox.apache.org/repos/asf/skywalking-graalvm-distro.git
at d4d5957 Fix source tarball build and release SHA-512 checksums
This branch includes the following new commits:
new d4d5957 Fix source tarball build and release SHA-512 checksums
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(skywalking-graalvm-distro) 01/01: Fix source tarball build and release SHA-512 checksums
Posted by wu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch fix/source-tarball-build
in repository https://gitbox.apache.org/repos/asf/skywalking-graalvm-distro.git
commit d4d5957ab4f9dfe3b7021e8d55e8b956ccfa1083
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Mon Mar 16 16:59:32 2026 +0800
Fix source tarball build and release SHA-512 checksums
- version.properties: use distro version + own commit ID (like upstream),
gracefully handle absent .git via resultproperty check.
- release.sh: fix SHA-512 files to contain only hash + filename,
re-upload darwin SHA-512 after signing, link to compiling.md.
- compiling.md: add source tarball build instructions.
---
changes/changes.md | 8 ++++++++
docs/compiling.md | 33 +++++++++++++++++++++++++++------
oap-graalvm-server/pom.xml | 34 ++++++++++++----------------------
release/release.sh | 10 ++++++++--
4 files changed, 55 insertions(+), 30 deletions(-)
diff --git a/changes/changes.md b/changes/changes.md
index 9836004..d569e70 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,9 +30,16 @@ 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.
+### Build
+
+- Fix source tarball build: gracefully handle absent `.git` in version generation (no git required for Apache source release builds).
+
### 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 ef5ed9b..11c128f 100644
--- a/oap-graalvm-server/pom.xml
+++ b/oap-graalvm-server/pom.xml
@@ -444,10 +444,9 @@
</target>
</configuration>
</execution>
- <!-- Copy version.properties from submodule, patch version for graal-distro.
- If version has -SNAPSHOT, replace it with the short commit ID.
- e.g. 10.4.0-SNAPSHOT -> 10.4.0-b537891-graal-distro
- Release versions just get the suffix: 10.4.0 -> 10.4.0-graal-distro -->
+ <!-- Generate version.properties for GraphQL version query.
+ Same approach as upstream: git-commit-id style properties.
+ failonerror=false: source tarball has no .git directory. -->
<execution>
<id>copy-version-properties</id>
<phase>generate-resources</phase>
@@ -456,28 +455,19 @@
</goals>
<configuration>
<target>
- <!-- 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">
+ <exec executable="git" outputproperty="distro.git.raw"
+ resultproperty="distro.git.rc" failonerror="false">
<arg value="rev-parse"/>
<arg value="HEAD"/>
</exec>
- <loadresource property="upstream.git.commit.id.short">
- <string value="${upstream.git.commit.id}"/>
- <filterchain>
- <replaceregex pattern="^(.{7}).*$" replace="\1"/>
- </filterchain>
- </loadresource>
- <!-- Build version: replace -SNAPSHOT with -<short-commit>, then append -graal-distro -->
- <loadresource property="upstream.build.version">
- <string value="${skywalking.version}"/>
- <filterchain>
- <replaceregex pattern="-SNAPSHOT$" replace="-${upstream.git.commit.id.short}"/>
- </filterchain>
- </loadresource>
+ <!-- Use git output only when exit code is 0 -->
+ <condition property="distro.git.commit.id"
+ value="${distro.git.raw}">
+ <equals arg1="${distro.git.rc}" arg2="0"/>
+ </condition>
+ <property name="distro.git.commit.id" value=""/>
<echo file="${project.build.outputDirectory}/version.properties"
- message="#Generated by skywalking-graalvm-distro${line.separator}git.build.version=${upstream.build.version}-graal-distro${line.separator}git.commit.id=${upstream.git.commit.id}${line.separator}"/>
+ message="#Generated by skywalking-graalvm-distro${line.separator}git.build.version=${project.version}${line.separator}git.commit.id=${distro.git.commit.id}${line.separator}"/>
</target>
</configuration>
</execution>
diff --git a/release/release.sh b/release/release.sh
index 02d2b3f..561d3f6 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 ─────────────────────────────────────────────────────
@@ -221,6 +221,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 +332,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.