Skip to content

Conversation

@sanity
Copy link
Collaborator

@sanity sanity commented Oct 26, 2025

Summary

Improves the release process based on issues encountered during v0.1.32 release, making it more robust and adding recovery options.

Changes

Deploy Script (deploy-local-gateway.sh)

  • ✅ Fix "Text file busy" errors by properly handling systemd auto-restart
  • ✅ Add --all-instances flag to deploy to gateway + all 10 peer instances
  • ✅ Add automatic version verification after deployment
  • ✅ Wait for binary to be released (up to 30s timeout)
  • ✅ Add --no-verify flag for skipping version checks

Release Script (release.sh)

  • ✅ Add --resume STATE_FILE flag for resuming failed releases
  • ✅ Add state tracking infrastructure for 7 release steps
  • ✅ Better error handling foundation

New Scripts

  • release-rollback.sh: Complete rollback utility with --yank-crates option
  • RELEASE_RECOVERY.md: Comprehensive manual recovery documentation

Problem → Solution

Problem: Deployment failed with "Text file busy" errors
Solution: Disable systemd auto-restart, wait for binary release, then re-enable

Problem: Had to manually deploy to 11 instances one-by-one
Solution: --all-instances flag deploys to all at once

Problem: Release script failures left manual cleanup
Solution: State persistence + recovery guide + rollback script

Problem: No version verification after deployment
Solution: Automatic verification with clear error messages

Testing

Tested manually during v0.1.32 release recovery:

  • Deployment to all 11 instances successful
  • Version verification working
  • Recovery documentation accurate

Breaking Changes

None. All changes are backward compatible. Existing usage patterns continue to work.

🤖 Generated with Claude Code

Addresses issues encountered during v0.1.32 release:

## Deploy Script Improvements (deploy-local-gateway.sh)

- Fix "Text file busy" errors by disabling systemd auto-restart during deployment
- Add --all-instances flag to deploy to gateway + all 10 peer instances
- Add automatic version verification after deployment
- Wait up to 30s for binary to be released by processes
- Add --no-verify flag to skip version checking

## Release Script Improvements (release.sh)

- Add --resume flag with state persistence for recovery
- Add state tracking for 7 release steps
- Infrastructure for better error handling and recovery

## New Helper Scripts

- release-rollback.sh: Complete rollback utility with --yank-crates option
- RELEASE_RECOVERY.md: Comprehensive manual recovery guide

## Key Fixes

- Deployment no longer fails when systemd has Restart=always
- Can deploy to all 11 freenet instances with one command
- Clear recovery path when release script fails
- Easy rollback of failed releases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@sanity sanity enabled auto-merge October 26, 2025 18:47
@sanity sanity added this pull request to the merge queue Oct 26, 2025
Merged via the queue into main with commit 4ee72ac Oct 26, 2025
10 checks passed
@sanity sanity deleted the fix/improve-release-process branch October 26, 2025 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants