mirror of
https://github.com/cassandra/home-information.git
synced 2026-04-17 21:19:45 -04:00
* Fixed bug for audio signal not being cleared. * Added better server-to-client config interactions. * New install and update scripts. Supporting GitHub actions and docs. * Refactor to rationalize server and client environment config. * Added missing debug setting guard around JS debug.log() messages. * Dealt with packages having deprecated pip install method.
3.4 KiB
3.4 KiB
Rollback Process
This document outlines the process for rolling back a problematic release of Home Information.
When to Rollback vs Hotfix
Rollback When:
- Critical security vulnerability in the new release
- Data corruption or database issues
- Application won't start or crashes immediately
- Major functionality broken affecting core features
- Issue affects all/most users and no quick fix available
Hotfix When:
- Minor bugs that don't prevent normal operation
- Issues affecting subset of users or specific configurations
- Quick fix available (< 2 hours to implement and test)
- Non-critical performance degradation
When in doubt, rollback first - it's easier to rollback immediately and then decide on a fix than to wait and have more users affected.
Rollback Execution
Prerequisites
- Identify the last known good version (check previous releases)
- Confirm the problematic version that needs to be rolled back
- Have admin access to the GitHub repository
Step-by-Step Process
-
Navigate to GitHub Actions
- Go to:
https://github.com/cassandra/home-information/actions - Click on "Rollback Release" workflow
- Go to:
-
Trigger Manual Rollback
- Click "Run workflow" button
- Fill in required inputs:
- Rollback to version: Previous good version (e.g.,
v1.0.1) - Bad version: Problematic version to mark (e.g.,
v1.0.2) - Reason: Brief description (e.g., "Critical database migration issue")
- Rollback to version: Previous good version (e.g.,
- Click "Run workflow"
-
Monitor Execution
- Watch the workflow progress
- Ensure all steps complete successfully
- Check for any error messages
-
Verify Rollback
- Confirm Docker
latesttag points to rollback version - Verify bad release is marked "DO NOT USE"
- Check that tracking issue was created
- Confirm Docker
What the Rollback Does Automatically
The rollback workflow will:
- Pull the target rollback version from registry
- Re-tag it as
latest - Push updated
latesttag - Mark bad release with "DO NOT USE - ROLLED BACK" warning
- Update release notes with warning and update instructions
- Mark bad release as "prerelease" to de-emphasize
- Create tracking issue for follow-up work
Post-Rollback Actions
Immediate (Within 1 hour)
- Verify rollback worked: Test that
update.shpulls the correct version - Communicate incident:
- Post in GitHub Discussions if community exists
- Update any external communication channels
- Monitor for issues: Watch for user reports about the rollback
Short-term (Within 24 hours)
- Investigate root cause: Analyze what went wrong in the bad release
- Plan fix strategy: Determine approach for addressing the issue
- Create fix branch: Start work on resolving the underlying problem
Medium-term (Within 1 week)
- Implement fix: Resolve the issue that caused the rollback
- Test thoroughly: Ensure fix works and doesn't introduce new issues
- Create new release: Publish patched version
- Post-mortem: Document lessons learned (for major incidents)
Rollback Limitations
What rollback CANNOT fix:
- Database migrations that destroyed data
- Issues requiring manual user intervention
- Problems with user-specific configuration files
- Third-party service integration issues
In these cases, additional recovery procedures may be needed beyond the automated rollback.