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

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 9bcea9b5a8 chore: Continued working on the release scripts.
9bcea9b5a8 is described below

commit 9bcea9b5a8fbf117d83361d5e9d4f2ed16e25607
Author: Christofer Dutz <[email protected]>
AuthorDate: Thu Jul 31 17:15:58 2025 +0200

    chore: Continued working on the release scripts.
---
 tools/release-0-update-generated-code.sh | 20 ++++----
 tools/release-1-create-branch.sh         | 20 ++++----
 tools/release-2-prepare-release.sh       | 85 +++++++++++++++++++++++---------
 tools/release-3-finish-release.sh        | 26 ++++++++++
 tools/stage.pom                          | 28 +++++++++++
 5 files changed, 137 insertions(+), 42 deletions(-)

diff --git a/tools/release-0-update-generated-code.sh 
b/tools/release-0-update-generated-code.sh
index 96e846da78..59ea22a2ce 100755
--- a/tools/release-0-update-generated-code.sh
+++ b/tools/release-0-update-generated-code.sh
@@ -19,7 +19,7 @@
 # under the License.
 # ----------------------------------------------------------------------------
 
-DIRECTORY=..
+DIRECTORY="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
 
 
########################################################################################################################
 # 0. Check Docker Memory Availability
@@ -48,7 +48,7 @@ fi
 # 1. Check if there are uncommitted changes as these would automatically be 
committed (local)
 
########################################################################################################################
 
-if [[ $(git status --porcelain) ]]; then
+if [[ $(git -C "$DIRECTORY" status --porcelain) ]]; then
   # Changes
   echo "❌ There are untracked files or changed files, aborting."
   exit 1
@@ -102,7 +102,7 @@ find "$DIRECTORY/plc4py/plc4py/protocols" -mindepth 2 -type 
f ! \( -name '__init
 # 4. Make sure the NOTICE file has the current year in the second line
 
########################################################################################################################
 
-NOTICE_FILE="../NOTICE"
+NOTICE_FILE="$DIRECTORY/NOTICE"
 CURRENT_YEAR=$(date +%Y)
 EXPECTED="Copyright 2017-${CURRENT_YEAR} The Apache Software Foundation"
 
@@ -123,12 +123,12 @@ fi
 # 5 Run the maven build for all modules with "update-generated-code" enabled 
(Docker container)
 
########################################################################################################################
 
-if ! docker compose build; then
+if ! docker -f "$DIRECTORY/tools/docker-compose.yml" compose build; then
     echo "❌ Got non-0 exit code from building the release docker container, 
aborting."
     exit 1
 fi
 
-if ! docker compose run releaser bash /ws/mvnw -e -P 
with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code
 -Dmaven.repo.local=/ws/out/.repository clean package -DskipTests; then
+if ! docker -f "$DIRECTORY/tools/docker-compose.yml" compose run releaser bash 
/ws/mvnw -e -P 
with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code
 -Dmaven.repo.local=/ws/out/.repository clean package -DskipTests; then
     echo "❌ Got non-0 exit code from running the code-generation inside 
docker, aborting."
     exit 1
 fi
@@ -137,7 +137,7 @@ fi
 # 6. Make sure the generated driver documentation is up-to-date.
 
########################################################################################################################
 
-if ! docker compose run releaser bash /ws/mvnw -e -P with-java 
-Dmaven.repo.local=/ws/out/.repository clean site -pl :plc4j-driver-all; then
+if ! docker -f "$DIRECTORY/tools/docker-compose.yml" compose run releaser bash 
/ws/mvnw -e -P with-java -Dmaven.repo.local=/ws/out/.repository clean site -pl 
:plc4j-driver-all; then
     echo "❌ Got non-0 exit code from running the site code-generation inside 
docker, aborting."
     exit 1
 fi
@@ -146,11 +146,11 @@ fi
 # 7. Commit and push any changed files
 
########################################################################################################################
 
-if [[ $(git status --porcelain) ]]; then
+if [[ $(git -C "$DIRECTORY" status --porcelain) ]]; then
   echo "Committing changes."
-  git add --all
-  git commit -m "chore: updated generated code"
-  git push
+  git -C "$DIRECTORY" add --all
+  git -C "$DIRECTORY" commit -m "chore: updated generated code"
+  git -C "$DIRECTORY" push
 else
   echo "No changes."
 fi
diff --git a/tools/release-1-create-branch.sh b/tools/release-1-create-branch.sh
index 4b62b5e34d..f416428758 100755
--- a/tools/release-1-create-branch.sh
+++ b/tools/release-1-create-branch.sh
@@ -19,13 +19,13 @@
 # under the License.
 # ----------------------------------------------------------------------------
 
-DIRECTORY=$(pwd)
+DIRECTORY="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
 
 
########################################################################################################################
 # 0. Check if there are uncommitted changes as these would automatically be 
committed (local)
 
########################################################################################################################
 
-if [[ $(git status --porcelain) ]]; then
+if [[ $(git -C "$DIRECTORY" status --porcelain) ]]; then
   # Changes
   echo "❌ There are untracked files or changed files, aborting."
   exit 1
@@ -35,7 +35,7 @@ fi
 # 1. Get and calculate the current version (local)
 
########################################################################################################################
 
-PROJECT_VERSION=$(../mvnw -f ../pom.xml -q -Dexec.executable=echo 
-Dexec.args="\${project.version}" --non-recursive exec:exec)
+PROJECT_VERSION=$("$(DIRECTORY)"/mvnw -f "$(DIRECTORY)/pom.xml" -q 
-Dexec.executable=echo -Dexec.args="\${project.version}" --non-recursive 
exec:exec)
 RELEASE_VERSION=${PROJECT_VERSION%"-SNAPSHOT"}
 RELEASE_SHORT_VERSION=${RELEASE_VERSION%".0"}
 BRANCH_NAME="rel/$RELEASE_SHORT_VERSION"
@@ -63,7 +63,7 @@ esac
 # 4. Do a simple maven branch command with pushChanges=false
 
########################################################################################################################
 
-if ! docker compose run releaser bash /ws/mvnw -e -P 
with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code
 -Dmaven.repo.local=/ws/out/.repository release:branch 
-DautoVersionSubmodules=true -DpushChanges=false 
-DdevelopmentVersion="$NEW_VERSION" -DbranchName="$BRANCH_NAME"; then
+if ! docker -f "$DIRECTORY/tools/docker-compose.yml" compose run releaser bash 
/ws/mvnw -e -P 
with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code
 -Dmaven.repo.local=/ws/out/.repository release:branch 
-DautoVersionSubmodules=true -DpushChanges=false 
-DdevelopmentVersion="$NEW_VERSION" -DbranchName="$BRANCH_NAME"; then
     echo "❌ Got non-0 exit code from docker compose, aborting."
     exit 1
 fi
@@ -72,7 +72,7 @@ fi
 # 5 Remove the "(Unreleased)" prefix from the current version of the 
RELEASE_NOTES file (local)
 
########################################################################################################################
 
-if ! sed -i '' "s/(Unreleased) Apache PLC4X $PROJECT_VERSION*/Apache PLC4X 
$RELEASE_VERSION/" ../RELEASE_NOTES; then
+if ! sed -i '' "s/(Unreleased) Apache PLC4X $PROJECT_VERSION*/Apache PLC4X 
$RELEASE_VERSION/" $DIRECTORY/RELEASE_NOTES; then
     echo "❌ Got non-0 exit code from updating RELEASE_NOTES, aborting."
     exit 1
 fi
@@ -97,7 +97,7 @@ Bug Fixes\n\
 ==============================================================\n\
 "
 echo NEW_VERSION
-if ! sed -i '' "1s/.*/$NEW_HEADER/" ../RELEASE_NOTES; then
+if ! sed -i '' "1s/.*/$NEW_HEADER/" $DIRECTORY/RELEASE_NOTES; then
     echo "❌ Got non-0 exit code from adding a new header to RELEASE_NOTES, 
aborting."
     exit 1
 fi
@@ -106,11 +106,11 @@ fi
 # 7. Commit the change (local)
 
########################################################################################################################
 
-if ! git add --all; then
+if ! git -C "$DIRECTORY" add --all; then
     echo "❌ Got non-0 exit code from adding all changes files, aborting."
     exit 1
 fi
-if ! git commit -m "chore: prepared the RELEASE_NOTES for the next version."; 
then
+if ! git -C "$DIRECTORY" commit -m "chore: prepared the RELEASE_NOTES for the 
next version."; then
     echo "❌ Got non-0 exit code from committing changes files, aborting."
     exit 1
 fi
@@ -119,7 +119,7 @@ fi
 # 8. Push the changes (local)
 
########################################################################################################################
 
-if ! git push; then
+if ! git -C "$DIRECTORY" push; then
     echo "❌ Got non-0 exit code from pushing changes, aborting."
     exit 1
 fi
@@ -128,7 +128,7 @@ fi
 # 9. Switch to the release branch (local)
 
########################################################################################################################
 
-if ! git checkout "$BRANCH_NAME"; then
+if ! git -C "$DIRECTORY" checkout "$BRANCH_NAME"; then
     echo "❌ Got non-0 exit code from switching branches to the release branch, 
aborting."
     exit 1
 fi
diff --git a/tools/release-2-prepare-release.sh 
b/tools/release-2-prepare-release.sh
index cfa1fd69b2..f66cef3d3b 100755
--- a/tools/release-2-prepare-release.sh
+++ b/tools/release-2-prepare-release.sh
@@ -19,19 +19,19 @@
 # under the License.
 # ----------------------------------------------------------------------------
 
-DIRECTORY=$(pwd)
+DIRECTORY="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
 
 
########################################################################################################################
 # 0. Check if there are uncommitted changes as these would automatically be 
committed (local)
 
########################################################################################################################
 
-if [[ $(git status --porcelain) ]]; then
+if [[ $(git -C "$DIRECTORY" status --porcelain) ]]; then
   # Changes
   echo "❌ There are untracked files or changed files, aborting."
   exit 1
 fi
 
-PROJECT_VERSION=$(../mvnw -f ../pom.xml -q -Dexec.executable=echo 
-Dexec.args="\${project.version}" --non-recursive exec:exec)
+PROJECT_VERSION=$("$DIRECTORY"/mvnw -f "$DIRECTORY"/pom.xml -q 
-Dexec.executable=echo -Dexec.args="\${project.version}" --non-recursive 
exec:exec)
 RELEASE_VERSION=${PROJECT_VERSION%"-SNAPSHOT"}
 IFS='.' read -ra VERSION_SEGMENTS <<< "$RELEASE_VERSION"
 
NEW_VERSION="${VERSION_SEGMENTS[0]}.${VERSION_SEGMENTS[1]}.$((VERSION_SEGMENTS[2]
 + 1))-SNAPSHOT"
@@ -40,7 +40,7 @@ 
NEW_VERSION="${VERSION_SEGMENTS[0]}.${VERSION_SEGMENTS[1]}.$((VERSION_SEGMENTS[2
 # 1. Do a simple release-prepare command
 
########################################################################################################################
 
-if ! docker compose run releaser bash /ws/mvnw -e -P 
with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code
 -Dmaven.repo.local=/ws/out/.repository release:prepare 
-DautoVersionSubmodules=true -DreleaseVersion="$RELEASE_VERSION" 
-DdevelopmentVersion="$NEW_VERSION" -Dtag="v$RELEASE_VERSION"; then
+if ! docker -f "$DIRECTORY/tools/docker-compose.yml" compose run releaser bash 
/ws/mvnw -e -P 
with-c,with-dotnet,with-go,with-java,with-python,enable-all-checks,update-generated-code
 -Dmaven.repo.local=/ws/out/.repository release:prepare 
-DautoVersionSubmodules=true -DreleaseVersion="$RELEASE_VERSION" 
-DdevelopmentVersion="$NEW_VERSION" -Dtag="v$RELEASE_VERSION"; then
     echo "❌ Got non-0 exit code from docker compose, aborting."
     exit 1
 fi
@@ -49,7 +49,7 @@ fi
 # 2. Push the changes (local)
 
########################################################################################################################
 
-if ! git push; then
+if ! git -C "$DIRECTORY" push; then
     echo "❌ Got non-0 exit code from pushing changes to git, aborting."
     exit 1
 fi
@@ -59,7 +59,7 @@ fi
 
########################################################################################################################
 
 echo "Performing Release:"
-docker compose build
+docker -f "$DIRECTORY/tools/docker-compose.yml" compose build
 if ! docker compose run releaser bash /ws/mvnw -e 
-Dmaven.repo.local=/ws/out/.repository 
-DaltDeploymentRepository=snapshot-repo::default::file:/ws/out/.local-artifacts-dir
 release:perform; then
     echo "❌ Got non-0 exit code from docker compose, aborting."
     exit 1
@@ -70,7 +70,7 @@ fi
 
########################################################################################################################
 
 echo "Signing artifacts:"
-find ../out/.local-artifacts-dir -print | grep -E 
'^((.*\.pom)|(.*\.jar)|(.*\.kar)|(.*\.nar)|(.*-features\.xml)|(.*-cyclonedx\.json)|(.*-cyclonedx\.xml)|(.*-site\.xml)|(.*\.zip))$'
 | while read -r line ; do
+find $DIRECTORY/out/.local-artifacts-dir -print | grep -E 
'^((.*\.pom)|(.*\.jar)|(.*\.kar)|(.*\.nar)|(.*-features\.xml)|(.*-cyclonedx\.json)|(.*-cyclonedx\.xml)|(.*-site\.xml)|(.*\.zip))$'
 | while read -r line ; do
     echo "Processing $line"
     if ! gpg -ab "$line"; then
         echo "❌ Got non-0 exit code from signing artifact, aborting."
@@ -83,11 +83,24 @@ done
 
########################################################################################################################
 
 echo "Deploying artifacts:"
-if ! ../mvnw -f ../jenkins.pom -X -P deploy-releases wagon:upload; then
-    echo "❌ Got non-0 exit code from staging artifacts, aborting."
+if ! "$(DIRECTORY)/mvnw" -f "$(DIRECTORY)/tools/stage.pom" 
nexus-staging:deploy-staged-repository; then
+    cho "❌ Got non-0 exit code from staging artifacts, aborting."
     exit 1
 fi
 
+echo "Closing staging repository:"
+if ! "$(DIRECTORY)/mvnw" -f "$(DIRECTORY)/tools/stage.pom" 
nexus-staging:rc-close; then
+    cho "❌ Got non-0 exit code from closing staging repository, aborting."
+    exit 1
+fi
+
+# Get the url of the closed repo to add that to the VOTE email
+DEPLOY_PROPS="$HOME/.m2/repository/.nexus-staging/deploy.properties"
+STAGING_REPO_ID=$(grep stagingRepositoryId "$DEPLOY_PROPS" | cut -d= -f2)
+NEXUS_URL="https://repository.apache.org/";
+STAGING_REPO_URL="$NEXUS_URL/content/repositories/$STAGING_REPO_ID"
+echo "✅ Staging repository closed: $STAGING_REPO_URL"
+
 
########################################################################################################################
 # 6. Prepare a directory for the release candidate
 
########################################################################################################################
@@ -95,29 +108,57 @@ fi
 echo "Staging release candidate:"
 read -r -p 'Release-Candidate number: ' rcNumber
 RELEASE_CANDIDATE="rc$rcNumber"
-RELEASE_VERSION=$(find 
../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/ -maxdepth 1 -type d 
| grep -vE 'plc4x-parent/$' | xargs -n 1 basename)
-mkdir -p "../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}"
-cp ../README.md "../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/README"
-cp ../RELEASE_NOTES "../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}"
-cp 
"../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-source-release.zip"
 
"../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip"
-cp 
"../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-source-release.zip.asc"
 
"../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip.asc"
-cp 
"../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-source-release.zip.sha512"
 
"../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip.sha512"
-cp 
"../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.json"
 
"../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.json"
-cp 
"../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.json.asc"
 
"../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.json.asc"
-cp 
"../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.xml"
 
"../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.xml"
-cp 
"../out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.xml.asc"
 
"../out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.xml.asc"
+RELEASE_VERSION=$(find 
$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/ -maxdepth 1 
-type d | grep -vE 'plc4x-parent/$' | xargs -n 1 basename)
+mkdir -p "$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}"
+cp "$DIRECTORY/README.md" 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/README"
+cp "$DIRECTORY/RELEASE_NOTES" 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}"
+cp 
"$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-source-release.zip"
 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip"
+cp 
"$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-source-release.zip.asc"
 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip.asc"
+cp 
"$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-source-release.zip.sha512"
 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip.sha512"
+cp 
"$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.json"
 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.json"
+cp 
"$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.json.asc"
 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.json.asc"
+cp 
"$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.xml"
 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.xml"
+cp 
"$DIRECTORY/out/.local-artifacts-dir/org/apache/plc4x/plc4x-parent/${RELEASE_VERSION}/plc4x-parent-${RELEASE_VERSION}-cyclonedx.xml.asc"
 
"$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-cyclonedx.xml.asc"
 
 
########################################################################################################################
 # 7. Upload the release candidate artifacts to SVN
 
########################################################################################################################
 
-cd "../out/stage/${RELEASE_VERSION}" || exit
+cd "$DIRECTORY/out/stage/${RELEASE_VERSION}" || exit
 svn import "${RELEASE_CANDIDATE}" 
"https://dist.apache.org/repos/dist/dev/plc4x/${RELEASE_VERSION}/${RELEASE_CANDIDATE}";
 -m"Staging of ${RELEASE_CANDIDATE} of PLC4X ${RELEASE_VERSION}"
 
 
########################################################################################################################
-# 8. TODO: Make sure the currently used GPG key is available in the KEYS file
+# 8. Make sure the currently used GPG key is available in the KEYS file
 
########################################################################################################################
 
+ORIGINAL_FILE="$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip"
+SIGNED_FILE="$DIRECTORY/out/stage/${RELEASE_VERSION}/${RELEASE_CANDIDATE}/apache-plc4x-${RELEASE_VERSION}-source-release.zip.asc"
+
+KEYS_URL="https://dist.apache.org/repos/dist/release/plc4x/KEYS";
+TEMP_DIR=$(mktemp -d)
+KEYS_FILE="$TEMP_DIR/KEYS"
+KEYRING="$TEMP_DIR/pubring.kbx"
+
+# Fetch KEYS file
+echo "🔽 Downloading KEYS file from $KEYS_URL"
+curl -fsSL "$KEYS_URL" -o "$KEYS_FILE"
+
+# Import keys into temporary keyring
+echo "🔑 Importing KEYS into temporary GPG keyring"
+gpg --no-default-keyring --keyring "$KEYRING" --import "$KEYS_FILE" > 
/dev/null 2>&1
+
+# Verify the signature
+echo "🧾 Verifying signature on $SIGNED_FILE"
+if gpg --no-default-keyring --keyring "$KEYRING" --verify "$SIGNED_FILE" 
"$ORIGINAL_FILE" 2>&1 | grep -q "Good signature"; then
+  echo "✅ Signature is valid and signed by a key in the Apache PLC4X KEYS file"
+else
+  echo "❌ Signature is invalid or the key is not in the Apache PLC4X KEYS file"
+    exit 1
+fi
+
+# Cleanup
+rm -rf "$TEMP_DIR"
+
 
########################################################################################################################
 # 9. TODO: Close the Nexus staging repository
 
########################################################################################################################
diff --git a/tools/release-3-finish-release.sh 
b/tools/release-3-finish-release.sh
new file mode 100644
index 0000000000..10df19fc15
--- /dev/null
+++ b/tools/release-3-finish-release.sh
@@ -0,0 +1,26 @@
+########################################################################################################################
+# TODO: Send out the [RESULT][VOTE] email
+########################################################################################################################
+
+########################################################################################################################
+# TODO: Add this version to the website/resources/plc4x-doap.rdf file (On HEAD)
+########################################################################################################################
+
+########################################################################################################################
+# TODO: Update the website generation config to now serve the newly released 
version, make that the
+#   default (website/antora-playbook.yml on HEAD)
+########################################################################################################################
+
+########################################################################################################################
+# TODO: Move the release candidate from the dev part of svn to the release part
+########################################################################################################################
+
+########################################################################################################################
+# TODO: Release the Nexus staging repository
+########################################################################################################################
+
+# TODO: mvn nexus-staging:rc-release
+
+########################################################################################################################
+# TODO: Send out the [NOTICE] email
+########################################################################################################################
diff --git a/tools/stage.pom b/tools/stage.pom
new file mode 100644
index 0000000000..1eba31cb09
--- /dev/null
+++ b/tools/stage.pom
@@ -0,0 +1,28 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                             http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.plc4x</groupId>
+    <artifactId>deploy-wrapper</artifactId>
+    <version>1.0.0</version>
+    <packaging>pom</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.sonatype.plugins</groupId>
+                <artifactId>nexus-staging-maven-plugin</artifactId>
+                <version>1.7.0</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <serverId>apache.releases.https</serverId>
+                    <nexusUrl>https://repository.apache.org/</nexusUrl>
+                    <autoReleaseAfterClose>false</autoReleaseAfterClose>
+                    
<repositoryDirectory>../out/.local-artifacts-dir</repositoryDirectory>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

Reply via email to