6.5 KiB
6.5 KiB
Release Checklist
Quick reference for creating a JellyTau release.
Pre-Release (1-2 days before)
- Code is on
master/mainbranch - All feature branches are merged and tested
- No failing tests locally:
bun run testandbun run test:rust - Requirement traceability check passes:
bun run traces:json - Type checking passes:
bun run check
Update Version (Day before)
-
Decide on version number (semantic versioning)
- Example:
v1.2.0(major.minor.patch) - Example:
v1.0.0-rc1(release candidate) - Example:
v1.0.0-beta(beta)
- Example:
-
Update version in files:
# Check these files for version numbers cat package.json | grep version cat src-tauri/tauri.conf.json | grep version cat src-tauri/Cargo.toml | grep version -
Update
CHANGELOG.md:- Add section for new version
- List all features added
- List all bugs fixed
- List breaking changes (if any)
- Add upgrade instructions (if needed)
- Format: Markdown with clear sections
-
Update
README.md:- Update any version references
- Update feature list if applicable
- Update requirements if changed
-
Commit changes:
git add . git commit -m "Bump version to v1.2.0" git push origin master
Final Check Before Release
-
Run full test suite:
bun run test # Frontend tests bun run test:rust # Rust tests bun run check # Type checking -
Build locally (optional but recommended):
# Test Linux build bun run tauri build # Test Android build bun run tauri android build -
No uncommitted changes:
git status # Should show clean working directory
Release (Tag & Push)
# 1. Create annotated tag with release notes
git tag -a v1.2.0 -m "Release version 1.2.0
Features:
- New feature 1
- New feature 2
Fixes:
- Fixed bug 1
- Fixed bug 2
Improvements:
- Performance improvement 1
- UI improvement 1
Breaking Changes:
- None (or list if applicable)
Migration:
- No action required (or include steps if applicable)"
# 2. Push tag to trigger workflow
git push origin v1.2.0
# 3. Monitor in Gitea Actions
# Go to Actions tab and watch the workflow run
During Release (While Workflow Runs)
- Watch workflow progress in Gitea Actions
- Monitor for test failures
- Monitor for build failures
- Check build logs if any step fails
After Release (Workflow Complete)
-
Download artifacts from release page:
jellytau_*.AppImage(Linux)jellytau_*.deb(Linux)jellytau-release.apk(Android)jellytau-release.aab(Android)
-
Basic testing of artifacts:
- Linux AppImage runs
- Linux DEB installs and runs
- Android APK installs (via
adbor sideload)
-
Verify release page:
- Title is correct: "JellyTau vX.Y.Z"
- Release notes are formatted correctly
- All artifacts are uploaded
- Release type is correct (prerelease vs release)
-
Announce release:
- Post to relevant channels/communities
- Update website/docs
- Tag contributors if applicable
Rollback (If Issues Found)
If critical issues are found after release:
# Option 1: Delete tag locally and remotely
git tag -d v1.2.0
git push origin :refs/tags/v1.2.0
# Option 2: Mark as prerelease in release page
# Then plan immediate patch release (v1.2.1)
# Option 3: Create hotfix branch and release v1.2.1
git checkout -b hotfix/v1.2.1
# Fix issues
git commit -m "Fix critical issue"
git tag v1.2.1
git push origin hotfix/v1.2.1 v1.2.1
Version Examples
Major Release
v2.0.0 - Major version bump
- Significant new features
- Breaking API changes
- Major UI redesign
Minor Release
v1.2.0 - Feature release
- New features
- Backward compatible
- Bug fixes
Patch Release
v1.1.1 - Bug fix/patch
- Bug fixes only
- No new features
- Backward compatible
Pre-releases
v1.2.0-alpha - Early development
v1.2.0-beta - Late development, feature complete
v1.2.0-rc1 - Release candidate, minimal fixes only
File Locations
Key files for versioning:
package.json- Frontend versionsrc-tauri/tauri.conf.json- Tauri config versionsrc-tauri/Cargo.toml- Rust versionCHANGELOG.md- Release historyREADME.md- Project documentation
Troubleshooting
Tests Fail Before Release
- Don't push tag yet
- Fix failing tests locally
- Push fixes to master
- Re-run test suite
- Then tag and push
Build Fails in CI
- Check detailed logs in Gitea Actions
- Fix issue locally
- Delete tag:
git tag -d v1.2.0 && git push origin :refs/tags/v1.2.0 - Push fix to master
- Create new tag with fix
Release Already Exists
- If workflow runs twice, artifacts may conflict
- Check release page
- If duplicates exist, delete and re-release
Artifacts Missing
- Check build logs for errors
- Verify platform-specific dependencies
- Delete tag and retry after fixes
Performance Tips
- Tests: ~5-10 minutes
- Linux build: ~10-15 minutes
- Android build: ~15-20 minutes
- Total release time: ~30-45 minutes
First build takes longer (cache warming). Subsequent releases are faster due to caching.
Template: Release Notes
## 🎉 JellyTau vX.Y.Z
### ✨ Features
- New feature 1
- New feature 2
### 🐛 Bug Fixes
- Fixed issue #123
- Fixed issue #456
### 🚀 Performance
- Improvement 1
- Improvement 2
### 📱 Downloads
- [Linux AppImage](#) - Run on any Linux
- [Linux DEB](#) - Install on Ubuntu/Debian
- [Android APK](#) - Install on Android devices
- [Android AAB](#) - For Google Play Store
### 📋 Requirements
**Linux:** 64-bit, GLIBC 2.29+
**Android:** 8.0+
### 🔗 Links
- [Changelog](../../CHANGELOG.md)
- [Issues](../../issues)
- [Discussion](../../discussions)
---
Built with Tauri, SvelteKit, and Rust 🦀
Quick Commands
# View existing tags
git tag -l
# Create release locally (dry run)
git tag -a v1.2.0 -m "Release v1.2.0" --dry-run
# List commits since last tag
git log v1.1.0..HEAD --oneline
# Show tag details
git show v1.2.0
# Rename tag (if needed)
git tag v1.2.0_old v1.2.0
git tag -d v1.2.0
git push origin v1.2.0_old v1.2.0
# Delete tag locally and remotely
git tag -d v1.2.0
git push origin :refs/tags/v1.2.0
Tips:
- ✅ Always test locally before release
- ✅ Use semantic versioning consistently
- ✅ Document changes in CHANGELOG
- ✅ Wait for full workflow completion
- ✅ Test release artifacts before announcing
Remember: A good release is a tested release! 🚀