111 lines
2.8 KiB
Markdown
111 lines
2.8 KiB
Markdown
# Release Process
|
|
|
|
This document describes how to create a new release of hyprvoice.
|
|
|
|
## Automated Release Process
|
|
|
|
### 1. Create a Release Tag
|
|
|
|
```bash
|
|
# Make sure you're on main branch with latest changes
|
|
git checkout main
|
|
git pull origin main
|
|
|
|
# Create and push a version tag
|
|
git tag v0.1.0
|
|
git push origin v0.1.0
|
|
```
|
|
|
|
### 2. GitHub Actions Automatically:
|
|
|
|
- ✅ Builds the binary with CGO for Linux x86_64
|
|
- ✅ Runs all tests
|
|
- ✅ Creates a GitHub release with changelog
|
|
- ✅ Uploads `hyprvoice-linux-x86_64` binary
|
|
- ✅ Generates and uploads SHA256 checksums
|
|
|
|
### 3. Update AUR Package
|
|
|
|
```bash
|
|
cd packaging/
|
|
./update-aur.sh v0.1.0
|
|
```
|
|
|
|
That's it! The script handles everything:
|
|
- Updates PKGBUILD version and checksums
|
|
- Copies files to AUR repository
|
|
- Generates .SRCINFO
|
|
- Tests the build
|
|
- Commits and pushes to AUR (with confirmation)
|
|
|
|
## Manual Release (if needed)
|
|
|
|
### Build Binary
|
|
|
|
```bash
|
|
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o hyprvoice-linux-x86_64 ./cmd/hyprvoice
|
|
```
|
|
|
|
### Create Release
|
|
|
|
1. Go to GitHub Releases
|
|
2. Click "Create a new release"
|
|
3. Tag: `v0.1.0`
|
|
4. Release title: `Release 0.1.0`
|
|
5. Upload `hyprvoice-linux-x86_64`
|
|
6. Publish release
|
|
|
|
## Version Scheme
|
|
|
|
- **Major.Minor.Patch** (e.g., `0.1.0`)
|
|
- **Major**: Breaking changes
|
|
- **Minor**: New features, backwards compatible
|
|
- **Patch**: Bug fixes, small improvements
|
|
|
|
## Complete Release Checklist
|
|
|
|
### Pre-release
|
|
- [ ] All tests pass: `go test ./...`
|
|
- [ ] Binary builds: `go build ./cmd/hyprvoice`
|
|
- [ ] Configure command works: `./hyprvoice configure --help`
|
|
- [ ] Version bumped in any relevant files
|
|
- [ ] Changes documented
|
|
|
|
### GitHub Release
|
|
- [ ] Create and push version tag: `git tag v0.1.0 && git push origin v0.1.0`
|
|
- [ ] Verify GitHub Actions completed successfully
|
|
- [ ] Verify binary uploaded to GitHub releases
|
|
- [ ] Verify checksums generated
|
|
|
|
### AUR Package Update (if AUR package exists)
|
|
- [ ] Run complete AUR update: `./packaging/update-aur.sh 0.1.0`
|
|
- [ ] Verify AUR package page updated
|
|
|
|
### Post-release Verification
|
|
- [ ] Test AUR installation: `yay -S hyprvoice-bin`
|
|
- [ ] Test configure command: `hyprvoice configure`
|
|
- [ ] Test service: `systemctl --user status hyprvoice.service`
|
|
- [ ] Update project README if needed
|
|
|
|
## Files Updated in Release
|
|
|
|
- `packaging/PKGBUILD` - Version and checksums
|
|
- GitHub Release - Binary and checksums
|
|
- AUR repository - Updated package
|
|
|
|
## Troubleshooting
|
|
|
|
### Build Fails
|
|
- Check that all CGO dependencies are installed
|
|
- Ensure Go version matches workflow (1.21+)
|
|
|
|
### AUR Package Issues
|
|
- Run `makepkg -si` to test locally
|
|
- Check checksums match: `updpkgsums`
|
|
- Verify binary downloads correctly
|
|
|
|
### GitHub Actions Issues
|
|
- Check workflow logs in Actions tab
|
|
- Ensure tag follows `v*` pattern
|
|
- Verify GITHUB_TOKEN has necessary permissions
|