release-process: Add signing of tarball
What changed, and why it matters
This commit updates the project's release instructions to add a new step: creating a GPG-signed source-code tarball when making a release. It is a documentation-only change that improves release integrity and does not modify any code or fix a security bug.
No security action required. Treat as normal process documentation update.
Security signals we found
Documentation-only change to release process
Adds GPG signing of release tarballs
References expected signing key in SECURITY.md
No code, build system, or dependency changes
Evidence from the diff
The patch modifies doc/release-process.md only. It adds guidance for release maintainers to use their expected GPG signing key, create a tarball with git archive, produce a detached GPG signature, verify it, and attach both files to the GitHub release. No source code, build scripts, or cryptographic logic are changed.
Changed components
doc/release-process.mdInspect captured patch +14 / −4
diff --git a/doc/release-process.md b/doc/release-process.md
index 8760c55..40bd220 100644
--- a/doc/release-process.md
+++ b/doc/release-process.md
@@ -42,6 +42,9 @@ Perform these checks when reviewing the release PR (see below):
## Preparing and tagging a release
+If you're going to sign the release, make sure that your default GPG signing key is the [expected one](../SECURITY.md).
+You can see your default key by running `echo "test" | gpg --sign --verbose > /dev/null`.
+
### Regular release
1. Open a PR to the master branch with a commit (using message `"release: prepare for $MAJOR.$MINOR.$PATCH"`, for example) that
@@ -93,7 +96,14 @@ Note that bug fixes need to be backported only to releases for which no compatib
```
5. Open PR to the master branch that includes a commit (with commit message `"release notes: add $MAJOR.$MINOR.$PATCH"`, for example) that adds release notes to [CHANGELOG.md](../CHANGELOG.md).
-## Announcing the release
-
-1. Create a new GitHub release with a link to the corresponding entry in [CHANGELOG.md](../CHANGELOG.md).
-2. Send an announcement email to the bitcoin-dev mailing list.
+## Creating a tarball and announcing the release
+
+1. Create a tarball and a detached GPG signature covering it, and check that the signature verifies under the expected key.
+ ```
+ git archive --output "libsecp256k1-$MAJOR.$MINOR.$PATCH.tar.gz" --prefix "libsecp256k1-$MAJOR.$MINOR.$PATCH/" v$MAJOR.$MINOR.$PATCH
+ gpg --detach-sign "libsecp256k1-$MAJOR.$MINOR.$PATCH.tar.gz"
+ gpg --verify "libsecp256k1-$MAJOR.$MINOR.$PATCH.tar.gz.sig"
+ ```
+2. Create a new GitHub release with a link to the corresponding entry in [CHANGELOG.md](../CHANGELOG.md).
+ Attach the tarball and the detached signature.
+3. Send an announcement email to the bitcoin-dev mailing list.
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.