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 0ba6262 Bump version to 0.4.0-SNAPSHOT (#26)
0ba6262 is described below
commit 0ba6262fe42f76be7179597b30c4b9f23861bad4
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Sun Apr 5 23:06:11 2026 +0800
Bump version to 0.4.0-SNAPSHOT (#26)
---
build-tools/build-common/pom.xml | 2 +-
build-tools/config-generator/pom.xml | 2 +-
build-tools/pom.xml | 2 +-
build-tools/precompiler/pom.xml | 2 +-
oap-graalvm-native/pom.xml | 2 +-
oap-graalvm-server/pom.xml | 2 +-
.../agent-analyzer-for-graalvm/pom.xml | 2 +-
.../aws-firehose-receiver-for-graalvm/pom.xml | 2 +-
.../cilium-fetcher-for-graalvm/pom.xml | 2 +-
.../ebpf-receiver-for-graalvm/pom.xml | 2 +-
.../envoy-metrics-receiver-for-graalvm/pom.xml | 2 +-
.../health-checker-for-graalvm/pom.xml | 2 +-
.../library-module-for-graalvm/pom.xml | 2 +-
.../library-server-for-graalvm/pom.xml | 2 +-
.../library-util-for-graalvm/pom.xml | 2 +-
.../log-analyzer-for-graalvm/pom.xml | 2 +-
.../meter-analyzer-for-graalvm/pom.xml | 2 +-
.../otel-receiver-for-graalvm/pom.xml | 2 +-
oap-libs-for-graalvm/pom.xml | 2 +-
.../server-core-for-graalvm/pom.xml | 2 +-
.../server-starter-for-graalvm/pom.xml | 2 +-
.../status-query-for-graalvm/pom.xml | 2 +-
pom.xml | 2 +-
release/full-release.sh | 93 ++++++++++------------
release/pre-release.sh | 55 +++++--------
release/release.sh | 19 +++++
26 files changed, 107 insertions(+), 106 deletions(-)
diff --git a/build-tools/build-common/pom.xml b/build-tools/build-common/pom.xml
index 6e0b6c1..085bcf2 100644
--- a/build-tools/build-common/pom.xml
+++ b/build-tools/build-common/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>build-tools</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>build-common</artifactId>
diff --git a/build-tools/config-generator/pom.xml
b/build-tools/config-generator/pom.xml
index 4c1f210..e668b75 100644
--- a/build-tools/config-generator/pom.xml
+++ b/build-tools/config-generator/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>build-tools</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>config-generator</artifactId>
diff --git a/build-tools/pom.xml b/build-tools/pom.xml
index 09c5668..e0fe39b 100644
--- a/build-tools/pom.xml
+++ b/build-tools/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>skywalking-graalvm-distro</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>build-tools</artifactId>
diff --git a/build-tools/precompiler/pom.xml b/build-tools/precompiler/pom.xml
index 0c615fe..a31063f 100644
--- a/build-tools/precompiler/pom.xml
+++ b/build-tools/precompiler/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>build-tools</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>precompiler</artifactId>
diff --git a/oap-graalvm-native/pom.xml b/oap-graalvm-native/pom.xml
index 1fffae4..1af4471 100644
--- a/oap-graalvm-native/pom.xml
+++ b/oap-graalvm-native/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>skywalking-graalvm-distro</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>oap-graalvm-native</artifactId>
diff --git a/oap-graalvm-server/pom.xml b/oap-graalvm-server/pom.xml
index 1ea6b90..c6db6bf 100644
--- a/oap-graalvm-server/pom.xml
+++ b/oap-graalvm-server/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>skywalking-graalvm-distro</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>oap-graalvm-server</artifactId>
diff --git a/oap-libs-for-graalvm/agent-analyzer-for-graalvm/pom.xml
b/oap-libs-for-graalvm/agent-analyzer-for-graalvm/pom.xml
index 8d4f7d4..36b3067 100644
--- a/oap-libs-for-graalvm/agent-analyzer-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/agent-analyzer-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>agent-analyzer-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/aws-firehose-receiver-for-graalvm/pom.xml
b/oap-libs-for-graalvm/aws-firehose-receiver-for-graalvm/pom.xml
index 2e3b10f..8a461d9 100644
--- a/oap-libs-for-graalvm/aws-firehose-receiver-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/aws-firehose-receiver-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>aws-firehose-receiver-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/cilium-fetcher-for-graalvm/pom.xml
b/oap-libs-for-graalvm/cilium-fetcher-for-graalvm/pom.xml
index 23042d9..6de1556 100644
--- a/oap-libs-for-graalvm/cilium-fetcher-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/cilium-fetcher-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>cilium-fetcher-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/ebpf-receiver-for-graalvm/pom.xml
b/oap-libs-for-graalvm/ebpf-receiver-for-graalvm/pom.xml
index f040cf9..cbd9222 100644
--- a/oap-libs-for-graalvm/ebpf-receiver-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/ebpf-receiver-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>ebpf-receiver-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/envoy-metrics-receiver-for-graalvm/pom.xml
b/oap-libs-for-graalvm/envoy-metrics-receiver-for-graalvm/pom.xml
index d68011a..dbac3ea 100644
--- a/oap-libs-for-graalvm/envoy-metrics-receiver-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/envoy-metrics-receiver-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>envoy-metrics-receiver-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/health-checker-for-graalvm/pom.xml
b/oap-libs-for-graalvm/health-checker-for-graalvm/pom.xml
index 12932a6..d55e71e 100644
--- a/oap-libs-for-graalvm/health-checker-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/health-checker-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>health-checker-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/library-module-for-graalvm/pom.xml
b/oap-libs-for-graalvm/library-module-for-graalvm/pom.xml
index 3f8d8d0..9a04b40 100644
--- a/oap-libs-for-graalvm/library-module-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/library-module-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>library-module-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/library-server-for-graalvm/pom.xml
b/oap-libs-for-graalvm/library-server-for-graalvm/pom.xml
index 6f1914d..224947f 100644
--- a/oap-libs-for-graalvm/library-server-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/library-server-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>library-server-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/library-util-for-graalvm/pom.xml
b/oap-libs-for-graalvm/library-util-for-graalvm/pom.xml
index 690bc6d..1f62990 100644
--- a/oap-libs-for-graalvm/library-util-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/library-util-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>library-util-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/log-analyzer-for-graalvm/pom.xml
b/oap-libs-for-graalvm/log-analyzer-for-graalvm/pom.xml
index 6ef2d7f..603ab3e 100644
--- a/oap-libs-for-graalvm/log-analyzer-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/log-analyzer-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>log-analyzer-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/meter-analyzer-for-graalvm/pom.xml
b/oap-libs-for-graalvm/meter-analyzer-for-graalvm/pom.xml
index 46dc8fa..8466b3a 100644
--- a/oap-libs-for-graalvm/meter-analyzer-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/meter-analyzer-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>meter-analyzer-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/otel-receiver-for-graalvm/pom.xml
b/oap-libs-for-graalvm/otel-receiver-for-graalvm/pom.xml
index 66f8003..9c09af7 100644
--- a/oap-libs-for-graalvm/otel-receiver-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/otel-receiver-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>otel-receiver-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/pom.xml b/oap-libs-for-graalvm/pom.xml
index 100794c..b81b187 100644
--- a/oap-libs-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>skywalking-graalvm-distro</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>oap-libs-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/server-core-for-graalvm/pom.xml
b/oap-libs-for-graalvm/server-core-for-graalvm/pom.xml
index 78a67b2..918ff06 100644
--- a/oap-libs-for-graalvm/server-core-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/server-core-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>server-core-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/server-starter-for-graalvm/pom.xml
b/oap-libs-for-graalvm/server-starter-for-graalvm/pom.xml
index cd5f9fc..e4fa5cc 100644
--- a/oap-libs-for-graalvm/server-starter-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/server-starter-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>server-starter-for-graalvm</artifactId>
diff --git a/oap-libs-for-graalvm/status-query-for-graalvm/pom.xml
b/oap-libs-for-graalvm/status-query-for-graalvm/pom.xml
index d207c1e..c40a831 100644
--- a/oap-libs-for-graalvm/status-query-for-graalvm/pom.xml
+++ b/oap-libs-for-graalvm/status-query-for-graalvm/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.skywalking</groupId>
<artifactId>oap-libs-for-graalvm</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
</parent>
<artifactId>status-query-for-graalvm</artifactId>
diff --git a/pom.xml b/pom.xml
index 4c523ef..8f16361 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
<groupId>org.apache.skywalking</groupId>
<artifactId>skywalking-graalvm-distro</artifactId>
- <version>0.3.0-SNAPSHOT</version>
+ <version>0.4.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>SkyWalking GraalVM Distro</name>
diff --git a/release/full-release.sh b/release/full-release.sh
index 6bc9805..03e48bf 100755
--- a/release/full-release.sh
+++ b/release/full-release.sh
@@ -63,7 +63,26 @@ GPG_EMAIL=$(gpg --list-secret-keys --keyid-format LONG
2>/dev/null \
| grep "uid" | head -1 | sed 's/.*<\(.*\)>.*/\1/')
[[ "${GPG_EMAIL}" == *@apache.org ]] \
|| error "GPG key email '${GPG_EMAIL}' is not an @apache.org address."
-log " GPG signer: ${GPG_EMAIL}"
+
+# Verify GPG signing works before starting the release process.
+# The user must sign a test file to cache the passphrase in gpg-agent.
+export GPG_TTY=$(tty)
+echo ""
+echo "Please sign a test file to verify GPG and cache your passphrase."
+echo "Run this command now:"
+echo ""
+echo " echo test | gpg -s > /dev/null"
+echo ""
+read -r -p "Press Enter after signing succeeds... "
+
+GPG_TEST_FILE=$(mktemp)
+echo "release-preflight-check" > "${GPG_TEST_FILE}"
+if ! gpg --armor --detach-sign "${GPG_TEST_FILE}" 2>/dev/null; then
+ rm -f "${GPG_TEST_FILE}" "${GPG_TEST_FILE}.asc"
+ error "GPG signing still fails. Check: export GPG_TTY=\$(tty) and try
again."
+fi
+rm -f "${GPG_TEST_FILE}" "${GPG_TEST_FILE}.asc"
+log " GPG signer: ${GPG_EMAIL} (signing verified)"
gh auth status --hostname github.com >/dev/null 2>&1 \
|| error "'gh' is not authenticated. Run: gh auth login"
@@ -76,66 +95,40 @@ echo ""
"${SCRIPT_DIR}/pre-release.sh"
# ─── Step 3: Extract versions from what pre-release.sh created ───────────────
-# After pre-release.sh, find the tag that was just created.
-# If main already had the next SNAPSHOT version, HEAD was not changed;
-# otherwise HEAD is the "Bump version to X.Y.Z-SNAPSHOT" commit.
-NEXT_VERSION=$(sed -n 's/.*<version>\(.*\)<\/version>.*/\1/p'
"${REPO_ROOT}/pom.xml" | head -1)
-
-# Find the most recent release tag reachable from the release branch
-# The tag is always on the release branch, not necessarily on main
-LATEST_RELEASE_BRANCH=$(git branch --list 'release/v*' --sort=-creatordate |
head -1 | tr -d ' ')
-TAG=$(git describe --tags --abbrev=0 "${LATEST_RELEASE_BRANCH}")
+# After pre-release.sh, we're back on main (unchanged). The release branch has
+# two commits: release version + next SNAPSHOT, with the tag on the first.
+RELEASE_BRANCH=$(git branch --list 'release/v*' --sort=-creatordate | head -1
| tr -d ' ')
+TAG=$(git describe --tags --abbrev=0 "${RELEASE_BRANCH}~1" 2>/dev/null \
+ || git describe --tags --abbrev=0 "${RELEASE_BRANCH}")
RELEASE_VERSION="${TAG#v}"
-log "Detected: release=${RELEASE_VERSION}, tag=${TAG}, next=${NEXT_VERSION}"
+log "Detected: release=${RELEASE_VERSION}, tag=${TAG},
branch=${RELEASE_BRANCH}"
-# ─── Step 4: Handle snapshot version bump on main ────────────────────────────
-# Check if pre-release.sh created a snapshot bump commit on main
-HEAD_MSG=$(git log -1 --format=%s)
-
-if [[ "${HEAD_MSG}" == "Bump version to ${NEXT_VERSION}" ]]; then
- # Main has a new snapshot bump commit — move it to a PR branch
- SNAPSHOT_BRANCH="version/${NEXT_VERSION}"
- log "Moving snapshot commit to branch ${SNAPSHOT_BRANCH}..."
-
- git checkout -b "${SNAPSHOT_BRANCH}"
- git checkout main
- git reset --hard "${TAG}"
-
- NEEDS_SNAPSHOT_PR=true
-else
- # Main already had the correct SNAPSHOT version — no bump needed
- log "Main already at ${NEXT_VERSION} — no version bump PR needed"
- NEEDS_SNAPSHOT_PR=false
-fi
-
-# ─── Step 5: Push tag (and PR branch if needed) ─────────────────────────────
+# ─── Step 4: Push tag and release branch, create PR ─────────────────────────
log "Pushing tag ${TAG}..."
git push origin "${TAG}"
-log "Pushing release branch ${LATEST_RELEASE_BRANCH}..."
-git push origin "${LATEST_RELEASE_BRANCH}"
+log "Pushing release branch ${RELEASE_BRANCH}..."
+git push -u origin "${RELEASE_BRANCH}"
-if [[ "${NEEDS_SNAPSHOT_PR}" == "true" ]]; then
- log "Pushing branch ${SNAPSHOT_BRANCH}..."
- git push -u origin "${SNAPSHOT_BRANCH}"
+log "Creating PR for release branch..."
+PR_URL=$(gh pr create \
+ --repo "${REPO}" \
+ --title "Release ${RELEASE_VERSION}: bump version to next SNAPSHOT" \
+ --body "$(cat <<EOF
+Release branch for ${RELEASE_VERSION}.
- log "Creating PR for version bump..."
- PR_URL=$(gh pr create \
- --repo "${REPO}" \
- --title "Bump version to ${NEXT_VERSION}" \
- --body "$(cat <<EOF
-Automated version bump after release ${RELEASE_VERSION}.
+- Commit 1: Bump version to \`${RELEASE_VERSION}\` (tagged
\`v${RELEASE_VERSION}\`)
+- Commit 2: Bump version to next SNAPSHOT
-- Bumps all pom.xml from \`${RELEASE_VERSION}\` to \`${NEXT_VERSION}\`
-- Created by \`release/full-release.sh\`
+Merge after release vote passes to update main to the next development version.
+Created by \`release/full-release.sh\`.
EOF
)" \
- --base main \
- --head "${SNAPSHOT_BRANCH}" \
- 2>&1)
- log "PR created: ${PR_URL}"
-fi
+ --base main \
+ --head "${RELEASE_BRANCH}" \
+ 2>&1)
+log "PR created: ${PR_URL}"
# ─── Step 6: Wait for CI on tag ──────────────────────────────────────────────
log "Waiting for CI workflow on tag ${TAG}..."
diff --git a/release/pre-release.sh b/release/pre-release.sh
index e840270..ba729fc 100755
--- a/release/pre-release.sh
+++ b/release/pre-release.sh
@@ -103,49 +103,38 @@ git commit -m "Release ${RELEASE_VERSION}"
log "Creating tag v${RELEASE_VERSION}..."
git tag "v${RELEASE_VERSION}"
-# ─── Step 4: Switch back to main and bump to next development version ───────
-log "Switching back to main..."
-git checkout main
+# ─── Step 4: Bump to next development version (same branch) ─────────────────
+log "Bumping version to ${NEXT_VERSION} on ${RELEASE_BRANCH}..."
-MAIN_NEEDS_BUMP=true
-if [[ "${CURRENT_VERSION}" == "${NEXT_VERSION}" ]]; then
- log "Main already at ${NEXT_VERSION} — skipping version bump"
- MAIN_NEEDS_BUMP=false
-else
- log "Bumping version to ${NEXT_VERSION}..."
+find "${REPO_ROOT}" -name pom.xml -not -path '*/skywalking/*' \
+ -exec sed -i '' "s/${RELEASE_VERSION}/${NEXT_VERSION}/g" {} \;
- find "${REPO_ROOT}" -name pom.xml -not -path '*/skywalking/*' \
- -exec sed -i '' "s/${CURRENT_VERSION}/${NEXT_VERSION}/g" {} \;
+VERIFY_VERSION=$(sed -n 's/.*<version>\(.*\)<\/version>.*/\1/p'
"${REPO_ROOT}/pom.xml" | head -1)
+[[ "${VERIFY_VERSION}" == "${NEXT_VERSION}" ]] || error "Version bump failed.
pom.xml shows '${VERIFY_VERSION}'"
- VERIFY_VERSION=$(sed -n 's/.*<version>\(.*\)<\/version>.*/\1/p'
"${REPO_ROOT}/pom.xml" | head -1)
- [[ "${VERIFY_VERSION}" == "${NEXT_VERSION}" ]] || error "Version bump
failed. pom.xml shows '${VERIFY_VERSION}'"
+log "Committing next development version..."
+git add $(find . -name pom.xml -not -path '*/skywalking/*')
+git commit -m "Bump version to ${NEXT_VERSION}"
- log "Committing next development version..."
- git add $(find . -name pom.xml -not -path '*/skywalking/*')
- git commit -m "Bump version to ${NEXT_VERSION}"
-fi
+# ─── Step 5: Switch back to main (unchanged) ────────────────────────────────
+log "Switching back to main (unchanged)..."
+git checkout main
# ─── Summary ─────────────────────────────────────────────────────────────────
echo ""
log "Pre-release complete!"
echo ""
-echo "Created:"
-echo " - Branch: ${RELEASE_BRANCH}"
-echo " - Commit: Release ${RELEASE_VERSION}"
-echo " - Tag: v${RELEASE_VERSION}"
-if [[ "${MAIN_NEEDS_BUMP}" == "true" ]]; then
- echo " - On main:"
- echo " - Commit: Bump version to ${NEXT_VERSION}"
-else
- echo " - Main: already at ${NEXT_VERSION} (no changes)"
-fi
+echo "Created on branch ${RELEASE_BRANCH}:"
+echo " - Commit 1: Release ${RELEASE_VERSION}"
+echo " - Tag: v${RELEASE_VERSION} (on commit 1)"
+echo " - Commit 2: Bump version to ${NEXT_VERSION}"
+echo ""
+echo "Main branch is unchanged."
echo ""
echo "Next steps:"
-echo " 1. Review: git log --oneline ${RELEASE_BRANCH} -1"
+echo " 1. Review: git log --oneline ${RELEASE_BRANCH} -2"
echo " 2. Push tag: git push origin v${RELEASE_VERSION}"
-echo " 3. Push release: git push origin ${RELEASE_BRANCH}"
-if [[ "${MAIN_NEEDS_BUMP}" == "true" ]]; then
- echo " 4. Push main: git push origin main"
-fi
-echo " 5. Wait for CI release workflow to complete"
+echo " 3. Push branch: git push -u origin ${RELEASE_BRANCH}"
+echo " 4. Create PR: gh pr create --base main --head
${RELEASE_BRANCH}"
+echo " 5. Wait for CI release workflow to complete (triggered by tag push)"
echo " 6. Run: release/release.sh ${RELEASE_VERSION}"
diff --git a/release/release.sh b/release/release.sh
index ba91754..ee006ee 100755
--- a/release/release.sh
+++ b/release/release.sh
@@ -102,6 +102,25 @@ echo " uid: ${GPG_EMAIL}"
echo ""
read -r -p "Proceed with this GPG key? [y/N] " confirm
[[ "${confirm}" =~ ^[Yy]$ ]] || { echo "Aborted."; exit 0; }
+
+# Verify GPG signing works before starting the release process.
+export GPG_TTY=$(tty)
+echo ""
+echo "Please sign a test file to verify GPG and cache your passphrase."
+echo "Run this command now:"
+echo ""
+echo " echo test | gpg -s > /dev/null"
+echo ""
+read -r -p "Press Enter after signing succeeds... "
+
+GPG_TEST_FILE=$(mktemp)
+echo "release-preflight-check" > "${GPG_TEST_FILE}"
+if ! gpg --armor --detach-sign "${GPG_TEST_FILE}" 2>/dev/null; then
+ rm -f "${GPG_TEST_FILE}" "${GPG_TEST_FILE}.asc"
+ error "GPG signing failed. Ensure gpg-agent is running. Try: export
GPG_TTY=\$(tty)"
+fi
+rm -f "${GPG_TEST_FILE}" "${GPG_TEST_FILE}.asc"
+log "GPG signing verified"
echo ""
# Verify tag exists locally