desktop: Prefix the release commit and tag

- Write "desktop: Release <version>" as the release commit subject and
  the tag message, like httpd
- Drop the v before the version everywhere else too: changelog
  headings, the releases/ folders and the apt branch
- Still find older release commits, which lack the prefix and have a v
This commit is contained in:
Daniel Norman
2026-11-10 13:32:16 +01:00
committed by Rūdolfs Ošiņš
parent 58e848d1d0
commit 3b64bbf556
3 changed files with 48 additions and 44 deletions
+21 -21
View File
@@ -1,4 +1,4 @@
### v0.18.0
### 0.18.0
**Features**
@@ -28,7 +28,7 @@
- [brandonoxendine](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkpwnLQxFBQXyMK3Es91s8A7Ew7G11BFFyng1dqZR8QhG3)
- [ioannis](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkfcWogpi5oLMvhvkk1M91CcrQhWgvbxbWCPDXxWATu8fG)
### v0.17.0
### 0.17.0
**Features**
@@ -80,7 +80,7 @@
- [brandonoxendine](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkpwnLQxFBQXyMK3Es91s8A7Ew7G11BFFyng1dqZR8QhG3)
- [efstajas](https://radicle.network/nodes/iris.radicle.network/users/z6MkqG3Pu18RWuZ8GrqGQ9s4yoi5rfhcLq9rpo1ZZX8en994)
### v0.16.0
### 0.16.0
**Features**
@@ -124,7 +124,7 @@
- [brandonoxendine](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkpwnLQxFBQXyMK3Es91s8A7Ew7G11BFFyng1dqZR8QhG3)
- [upbeat-molar](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkmRaBHeJuJKQE21aRVSe2uW3j5T7gQQAEAY7UF4tr5jRn)
### v0.15.0
### 0.15.0
**Features**
@@ -148,7 +148,7 @@
- [brandonoxendine](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkpwnLQxFBQXyMK3Es91s8A7Ew7G11BFFyng1dqZR8QhG3)
### v0.14.0
### 0.14.0
**Features**
@@ -169,7 +169,7 @@
- [hlatimer266](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkkwiqeqFrjPNvSNuNACpynpwiuVHqF8YHwGLzCBSfNJzZ)
- [justarandomgeek](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkwfrBy9mKTfcVELcV4wc6zfN379FPMnAqsxnwt4j2TdQ2)
### v0.13.0
### 0.13.0
**Features**
@@ -191,7 +191,7 @@
- List scroll position is now restored when navigating back and forth through
history
### v0.12.0
### 0.12.0
**Features**
@@ -207,7 +207,7 @@
- Fixed the Linux AppImage failing to launch on non-Debian distributions
- Fixed duplicate CI job runs by deduplicating them by run ID
### v0.11.0
### 0.11.0
**Features**
@@ -261,7 +261,7 @@
- [lorenz](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz)
- [yarikoptic](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkfCGiLM9j7AstSVNGhqtz9zkAhfb863etsbkRnXsipuRr)
### v0.10.0
### 0.10.0
- Fixed app loading indicator
- Sidebar scroll position is now preserved when navigating between views
@@ -272,7 +272,7 @@
- [lorenz](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz)
### v0.9.0
### 0.9.0
- Redesigned the entire app with a new UI kit — typography, colors, icons,
avatars, and border radii have all been updated for a more polished,
@@ -297,7 +297,7 @@
- [brandonhaslegs](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkpwnLQxFBQXyMK3Es91s8A7Ew7G11BFFyng1dqZR8QhG3)
- [julien](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkgvaRdahQZfnf7ccMHByeHtTYrMrM3MuSGYawF6ZL6DNj)
### v0.8.0
### 0.8.0
- CI job run statuses are now shown for the default branch and in patch revision
commit lists
@@ -312,12 +312,12 @@
- [geigerzaehler](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6Mki9XNNHeVRnYS88U59iCBzKUp2xWM3f4zvA3cXuKJFvWF)
### v0.7.1
### 0.7.1
- Fixed a bug in patch and notification lists caused by a library
incompatibility
### v0.7.0
### 0.7.0
- Source code can now be browsed directly within the app
- Draft reviews and their comments can now be deleted
@@ -328,13 +328,13 @@
- [geigerzaehler](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6Mki9XNNHeVRnYS88U59iCBzKUp2xWM3f4zvA3cXuKJFvWF)
### v0.6.1
### 0.6.1
- Fixed a bug where the app wouldn't onboard new users or locked identities
- Fixed regression where the current version of the app wasn't including the
commit it was built from
### v0.6.0
### 0.6.0
- UI polish: scrollbars now auto-hide across the app
- Fixed button overflow in issue and patch sidebars
@@ -346,7 +346,7 @@
- [geigerzaehler](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6Mki9XNNHeVRnYS88U59iCBzKUp2xWM3f4zvA3cXuKJFvWF)
### v0.5.0
### 0.5.0
- The app is now officially available via Arch packaging
- Fuzzy search now supports repo IDs, descriptions, and issue/patch IDs
@@ -368,12 +368,12 @@
- [lorenz](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz)
- [tippfehlr](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MksSTAFPKk7eQju9aGzK64qpfiSnKQ1tJWv1rdzRd5bMHU)
### v0.4.1
### 0.4.1
- Fixed a bug in the release pipeline to update the latest artifacts
- Added WSL2 installation instructions to https://radworks.garden
### v0.4.0
### 0.4.0
- Notification inbox is now accessible from any view without navigating away
- App icon now shows a badge with the unread notification count and polls for
@@ -393,7 +393,7 @@
- [tshepang](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MkfPSKW7AgQqXSi8fgEJMduHpm9ABmsPYwPhMeF7PssonK)
- [youthlic](https://radicle.network/nodes/iris.radicle.network/users/did:key:z6MktsSuE4bVYbuTtEPjmhrQWA7dMri7GUg9Qp9o8tRCsmhu)
### v0.3.0
### 0.3.0
- New onboarding guide to help users get started faster
- Repo homepage now shows README and project info for quick overview
@@ -401,7 +401,7 @@
- Settings now show version and commit hash for easier support
- Fixed notification count and comment placement bugs
### v0.2.0
### 0.2.0
- Added font size controls for enhanced readability and accessibility
- Introduced contextual explainers in key areas to guide users and improve
@@ -409,6 +409,6 @@
- Enhanced contrast in both dark and light modes to improve legibility and
visual clarity
### v0.1.0
### 0.1.0
- First public release
+2 -2
View File
@@ -71,9 +71,9 @@ SHORT_SHA="$(git -C "$PROJECT_DIR" rev-parse --short=8 HEAD)"
# container's root doesn't own, so build.rs can't rely on asking it for the
# commit. Pass it in the way build.rs would get it.
GIT_HEAD="$(git -C "$PROJECT_DIR" rev-parse --short HEAD)"
RELEASE_DIR="$PROJECT_DIR/releases/v$VERSION"
RELEASE_DIR="$PROJECT_DIR/releases/$VERSION"
step "Building release v$VERSION (${SHORT_SHA})"
step "Building release $VERSION (${SHORT_SHA})"
echo " Output: $RELEASE_DIR"
mkdir -p "$RELEASE_DIR"
+25 -21
View File
@@ -150,9 +150,13 @@ conf_version() {
jq -r '.version' "$TAURI_CONF"
}
# Release commits are "desktop: Release X.Y.Z". Older ones lack the prefix
# and have a v before the version.
RELEASE_SUBJECT='^(desktop: )?Release v?'
# The SHA of the release commit for $1, looked up by its commit subject.
release_commit_sha() {
git -C "$PROJECT_DIR" log --grep="^Release v$1\$" -1 --format=%H -- "${RELEASE_PATHS[@]}"
git -C "$PROJECT_DIR" log -E --grep="$RELEASE_SUBJECT$1\$" -1 --format=%H -- "${RELEASE_PATHS[@]}"
}
# ---- Phases ----
@@ -161,7 +165,7 @@ phase_prep() {
local version="$1"
[[ -n "$version" ]] || die "prep requires --version X.Y.Z"
step "Preparing release v$version"
step "Preparing release $version"
info "Syncing and fetching"
run rad sync
@@ -170,9 +174,9 @@ phase_prep() {
info "Creating branch release/desktop/$version"
run git -C "$PROJECT_DIR" checkout -b "release/desktop/$version"
step "Changelog material (for the v$version entry)"
step "Changelog material (for the $version entry)"
local prev
prev="$(git -C "$PROJECT_DIR" log --grep='^Release v' -1 --format=%H -- "${RELEASE_PATHS[@]}" || true)"
prev="$(git -C "$PROJECT_DIR" log -E --grep="${RELEASE_SUBJECT}[0-9]" -1 --format=%H -- "${RELEASE_PATHS[@]}" || true)"
if [[ -n "$prev" ]]; then
info "Commits since $(git -C "$PROJECT_DIR" log -1 --format='%s' "$prev"):"
echo
@@ -185,7 +189,7 @@ phase_prep() {
echo
info "Format the list into the user-facing changes for the CHANGELOG entry."
else
warn "no previous 'Release v*' commit found; writing the entry from scratch"
warn "no previous 'Release *' commit found; writing the entry from scratch"
fi
if ! confirm "Continue and open CHANGELOG.md in \$EDITOR?"; then
@@ -197,11 +201,11 @@ phase_prep() {
[[ "$DRY_RUN" == true ]] || info "tauri.conf.json -> $(conf_version)"
step "Editing CHANGELOG.md"
info "Add the v$version entry (Features, Bug fixes, Shout-out block)."
info "Add the $version entry (Features, Bug fixes, Shout-out block)."
run "${EDITOR:-vi}" "$CHANGELOG"
step "Creating Release Commit"
run git -C "$PROJECT_DIR" commit -m "Release v$version" -- "$TAURI_CONF" "$CHANGELOG"
run git -C "$PROJECT_DIR" commit -m "desktop: Release $version" -- "$TAURI_CONF" "$CHANGELOG"
local sha
sha="$(git -C "$PROJECT_DIR" rev-parse HEAD)"
info "Release commit: $sha"
@@ -220,11 +224,11 @@ phase_build() {
local version
version="$(conf_version)"
require_podman
step "Building release artifacts for v$version"
step "Building release artifacts for $version"
run "$SCRIPT_DIR/build-artifacts"
step "Build complete"
info "Install releases/v$version/radicle-desktop-aarch64.dmg and verify it runs."
info "Install releases/$version/radicle-desktop-aarch64.dmg and verify it runs."
next "scripts/release --phase apt"
}
@@ -232,7 +236,7 @@ phase_apt() {
local version
version="$(conf_version)"
local deb="radicle-desktop_${version}_amd64.deb"
local src="$PROJECT_DIR/releases/v$version/$deb"
local src="$PROJECT_DIR/releases/$version/$deb"
step "Staging the Debian package for signing"
[[ -f "$src" ]] || fail "$src not found — run --phase build first"
@@ -261,12 +265,12 @@ phase_apt() {
RADICLE_APT_SIGNING_KEY=/src/keys/signing-key ./import-deb $deb
# Back on the host:
git checkout -b release-v$version
git checkout -b release-$version
git add db/ dists/ pool/
git commit -m "Update radicle-desktop to $version"
git push rad HEAD:refs/patches
# After peer approval:
git checkout main && git merge --ff-only release-v$version && git push
git checkout main && git merge --ff-only release-$version && git push
make publish
EOF
next "scripts/release --phase publish"
@@ -275,7 +279,7 @@ EOF
phase_publish() {
local version
version="$(conf_version)"
local release_dir="$PROJECT_DIR/releases/v$version"
local release_dir="$PROJECT_DIR/releases/$version"
local remote="/var/www/$FILES_HOST/releases/radicle-desktop"
local key target
key="$(rad path)/keys/radicle"
@@ -307,15 +311,15 @@ phase_publish() {
phase_tag() {
local version
version="$(conf_version)"
step "Tagging canonical release v$version"
step "Tagging canonical release $version"
local sha
sha="$(release_commit_sha "$version")"
[[ -n "$sha" ]] || fail "could not find the 'Release v$version' commit (is the patch merged into master?)"
[[ -n "$sha" ]] || fail "could not find the 'desktop: Release $version' commit (is the patch merged into master?)"
info "Tagging commit: ${sha:-<release-commit-sha>}"
local tag="releases/desktop/$version"
run git -C "$PROJECT_DIR" tag "$tag" "${sha:-<release-commit-sha>}" -m "Release $version"
run git -C "$PROJECT_DIR" tag "$tag" "${sha:-<release-commit-sha>}" -m "desktop: Release $version"
run git -C "$PROJECT_DIR" push rad "refs/tags/$tag"
run rad sync
@@ -324,12 +328,12 @@ phase_tag() {
step "Announce on Zulip"
local entry
entry="$(awk -v v="### v$version" '
entry="$(awk -v v="### $version" '
$0 == v {grab=1}
grab && NR>1 && /^### v/ && $0 != v {exit}
grab && NR>1 && /^### / && $0 != v {exit}
grab {print}
' "$CHANGELOG")"
[[ -n "$entry" ]] || fail "no '### v$version' section found in CHANGELOG.md"
[[ -n "$entry" ]] || fail "no '### $version' section found in CHANGELOG.md"
echo
bold " Copy the message below into the announcements channel:"
@@ -339,10 +343,10 @@ phase_tag() {
echo "$entry"
echo " --------------------------------------------------------------------"
echo
info "Post it under a topic named: radicle-desktop v$version"
info "Post it under a topic named: radicle-desktop $version"
info "Then resolve the previous release topic."
echo
bold "Release v$version complete."
bold "Release $version complete."
}
# ---- Dispatch ----