Release Checklist
Use this checklist when tagging a new release. Each section must be fully checked before proceeding to the next.
Pre-release verification
- [ ] All frontend tests green:
pnpm test --run(CI frontend job confirms) - [ ]
cargo test --workspace --all-targetsgreen (CI Rust unit job confirms) - [ ]
cargo test --workspace --features integrationgreen (CI Linux integration job with LocalStack confirms) - [ ] Manual smoke on each platform (macOS, Windows, Linux):
- [ ] Add a credential profile
- [ ] List buckets
- [ ] Upload a file
- [ ] Download a file
- [ ] Preview an image, a text file, and a CSV
- [ ] Delete a file
- [ ] Manual screen-reader pass per Accessibility:
- [ ] VoiceOver on macOS
- [ ] Narrator on Windows
- [ ]
CHANGELOG.md[X.Y.Z]block populated and accurate - [ ] Version bumped consistently:
- [ ]
src-tauri/Cargo.tomlversionfield - [ ]
package.jsonversionfield - [ ]
src-tauri/tauri.conf.jsonversionfield
- [ ]
Sign and notarize
- [ ] All 5 code-signing secrets configured in GitHub repository settings:
- [ ]
TAURI_UPDATER_PRIVATE_KEY(updater signing key) - [ ]
TAURI_UPDATER_KEY_PASSWORD(passphrase for updater key) - [ ]
APPLE_CERTIFICATE(base64-encoded .p12) - [ ]
APPLE_CERTIFICATE_PASSWORD - [ ]
APPLE_SIGNING_IDENTITY(e.g.Developer ID Application: …) - [ ]
APPLE_ID(Apple ID used for notarization) - [ ]
APPLE_PASSWORD(app-specific password) - [ ]
WINDOWS_CERTIFICATE(base64-encoded .pfx) - [ ]
WINDOWS_CERTIFICATE_PASSWORD
- [ ]
- [ ] Test signing locally if possible:
pnpm tauri buildproduces a signed binary (macOS: check withcodesign -vvv, Windows: check withsigntool verify)
Tag and release
- [ ] Create and push the version tag:sh
git tag v0.1.0 -m "Release v0.1.0" git push origin v0.1.0 - [ ] GitHub Actions release workflow triggers automatically (3 jobs: macOS, Windows, Linux)
- [ ] All 3 jobs succeed (check Actions tab)
- [ ] Verify all 4 artifacts are present on the Releases page:
- [ ]
.dmg(macOS universal) - [ ]
.exe(Windows NSIS) - [ ]
.AppImage(Linux) - [ ]
.deb(Linux)
- [ ]
- [ ] Updater feed JSON (
latest.json) is published and includes a valid signature for each platform artifact
Post-release smoke
- [ ] Download the
.dmgon macOS, install, launch — first-run welcome modal appears - [ ] Download the
.exeon Windows, install, launch — first-run welcome modal appears - [ ] Download and run the
.AppImageon Linux — first-run welcome modal appears - [ ] Install the
.debon a Debian/Ubuntu system — first-run welcome modal appears - [ ] Verify auto-update path (test with v0.0.1 → v0.1.0 if a prior signed release exists):
- [ ] App detects update and prompts user
- [ ] Update installs without error
- [ ] App relaunches on the new version
- [ ] Open a GitHub issue if any artifact is broken or the auto-update path fails
Announcement
- [ ] GitHub Releases page release notes updated (mirror the CHANGELOG
[0.1.0]block) - [ ] Optional: blog post or social announcement