Skip to content

Commit a1c8be0

Browse files
committed
Document release workflow
1 parent cd78fe9 commit a1c8be0

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

doc/release.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Creating a Release
2+
3+
This document outlines the steps to create a new release for the project. Follow these steps carefully to ensure a smooth release process.
4+
5+
## Prerequisites
6+
7+
- Zig installed (same version used in CI)
8+
- GnuPG with the release signing key available
9+
- [OpenTimestamps client](https://github.com/opentimestamps/opentimestamps-client) (`ots`)
10+
- Access to create GitHub releases and to the [sysupdates repository](https://github.com/nakamochi/sysupdates)
11+
12+
## Step 1: Tag release
13+
14+
```
15+
git tag -s vX.Y.Z -m "Release vX.Y.Z"
16+
```
17+
18+
Replace `X.Y.Z` with the appropriate version number.
19+
20+
## Step 2: Push tag
21+
22+
```
23+
git push origin vX.Y.Z
24+
```
25+
26+
## Step 3: Build and sign aarch64 binaries
27+
28+
```
29+
git submodule update --init --recursive
30+
zig build -Dtarget=aarch64-linux-musl -Ddriver=fbev -Doptimize=ReleaseSafe -Dstrip
31+
cd zig-out/bin
32+
tar czf ndg-vX.Y.Z-aarch64.tar.gz nd ngui
33+
gpg --sign --armor --detach-sign ndg-vX.Y.Z-aarch64.tar.gz
34+
ots stamp ndg-vX.Y.Z-aarch64.tar.gz.asc
35+
```
36+
37+
## Step 4: Create GitHub release
38+
39+
Go to the GitHub releases page for the repository and create a new release. Use the tag `vX.Y.Z` and upload the following files:
40+
41+
- `ndg-vX.Y.Z-aarch64.tar.gz`
42+
- `ndg-vX.Y.Z-aarch64.tar.gz.asc`
43+
- `ndg-vX.Y.Z-aarch64.tar.gz.asc.ots`
44+
45+
Describe main changes in the release notes.
46+
47+
## Step 5: Add new release to sysupdates
48+
49+
Update `ndg/env` in the [sysupdates repository](https://github.com/nakamochi/sysupdates) with the new version and its SHA256 checksum.
50+

0 commit comments

Comments
 (0)