You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iggy.apache.org by pi...@apache.org on 2025/12/01 15:52:25 UTC
(iggy) branch release_script created (now 9cd039fcd)
This is an automated email from the ASF dual-hosted git repository.
piotr pushed a change to branch release_script
in repository https://gitbox.apache.org/repos/asf/iggy.git
at 9cd039fcd chore(repo): improve release script
This branch includes the following new commits:
new 9cd039fcd chore(repo): improve release script
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.
(iggy) 01/01: chore(repo): improve release script
Posted by pi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
piotr pushed a commit to branch release_script
in repository https://gitbox.apache.org/repos/asf/iggy.git
commit 9cd039fcd46d28ff1dcb89552fa19c5a7fc923f0
Author: spetz <pi...@gmail.com>
AuthorDate: Mon Dec 1 16:51:58 2025 +0100
chore(repo): improve release script
---
scripts/prepare-release.sh | 28 ++++++++++++++++++++++------
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/scripts/prepare-release.sh b/scripts/prepare-release.sh
index 83e6d46fb..aed8ccc55 100755
--- a/scripts/prepare-release.sh
+++ b/scripts/prepare-release.sh
@@ -31,11 +31,22 @@ if [[ "$OS_NAME" == "Darwin" ]]; then
if command -v gtar >/dev/null 2>&1; then
TAR_CMD="gtar"
else
- echo "❌ GNU tar (gtar) is required on macOS. Install it with: brew install gnu-tar"
+ echo "GNU tar (gtar) is required on macOS. Install it with: brew install gnu-tar"
exit 1
fi
fi
+# pigz is required for reproducible gzip compression across all platforms
+if ! command -v pigz >/dev/null 2>&1; then
+ echo "pigz is required for reproducible builds."
+ if [[ "$OS_NAME" == "Darwin" ]]; then
+ echo "Install with: brew install pigz"
+ else
+ echo "Install with: apt install pigz / dnf install pigz"
+ fi
+ exit 1
+fi
+
if [ "$(basename "$PWD")" == "scripts" ]; then
cd ..
fi
@@ -67,7 +78,6 @@ RELEASE_DIRS=(
"examples"
"foreign"
"helm"
- "licenses"
"scripts"
"web"
)
@@ -174,12 +184,18 @@ VERSION=$(grep '^version' "$TEMP_DIR/core/server/Cargo.toml" | head -n 1 | cut -
echo "Preparing release for version: $VERSION"
+TAR_NAME="iggy-${VERSION}-incubating-src.tar"
ARCHIVE_NAME="iggy-${VERSION}-incubating-src.tar.gz"
-GZIP=-n "$TAR_CMD" --sort=name \
- --mtime='UTC 2020-01-01' \
- --owner=0 --group=0 --numeric-owner \
- -czf "$ARCHIVE_NAME" -C "$TEMP_DIR" .
+# Create uncompressed tar with reproducible settings
+"$TAR_CMD" --sort=name \
+ --mtime='UTC 2020-01-01' \
+ --owner=0 --group=0 --numeric-owner \
+ --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
+ -cf "$TAR_NAME" -C "$TEMP_DIR" .
+
+pigz -n -9 < "$TAR_NAME" > "$ARCHIVE_NAME"
+rm -f "$TAR_NAME"
CHECKSUM_FILE="${ARCHIVE_NAME}.sha512"
sha512sum "$ARCHIVE_NAME" > "$CHECKSUM_FILE"