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

Reply via email to