xPulse Chat β Release Day & Staging Switch Protocol
This document describes the complete flow of a release day:
from the end of the test period through the production release
to setting up the new staging environment for the next RC.
Overview
1
Endof Test Period
2
β
3
Merge RC to production & deploy
4
β
5
Staging teardown (incl. log deletion) β promise to testers
6
β
7
Preparenew RC branch
8
β
9
Set up new staging
10
β
11
Send outnew feedback survey
1. End of Test Period
Close feedback form (save / export responses)
Notify testers via email / channel: "Test period ended, release follows"
Review open feedback issues β what goes into this release, what into the next?
2. Production Release
2.1 Merge Branch
1
git checkout main
2
git merge --no-ff release/vX.Y.Z
3
git tag vX.Y.Z
4
git push origin main --tags
2.2 Deploy to Production
1
make prod-down
2
git pull
3
make prod
2.3 Smoke Test
https://chat.xpulse.one reachable
Login works
Pairing works
Version pill shows vX.Y.Z
3. Staging Teardown
Privacy promise: After each test period ends, all staging containers,
volumes, and logs are completely removed.
Tester activity is no longer reconstructable afterwards.
3.1 Makefile Target
1
make stage-teardown
The target handles automatically (see Makefile):
Stop and remove containers
Remove Docker volumes (-v)
Delete log files in var/log/stage/
Remove Docker images for this RC
3.2 Verify Manually
1
# No containers running anymore
2
docker ps | grep stage
3
4
# Log directory empty
5
ls -la var/log/stage/
6
7
# Subdomain no longer reachable
8
curl -I https://rc-X-Y-Z.stage.xpulse.one
9
# β should return 404 / Connection refused
All checks passed
Teardown timestamp noted: ____________________
4. Prepare New RC Branch
1
git checkout -b release/vA.B.C
2
# Update .env.stage:
3
# RC_VERSION=rc-A-B-C
RC_VERSION updated in .env.stage
CHANGELOG.md entry for vA.B.C created
Version pill in index.html / sidebar updated
Pull-to-refresh from v1.2.0 carried over to v1.3.0 (modules/pull-to-refresh.js)
5. Set Up New Staging
1
make stage
Smoke Test Staging
https://rc-A-B-C.stage.xpulse.one reachable
Login works
Pairing works
Version pill shows correct RC
6. New Feedback Survey
Deploy new survey at https://rc-A-B-C.stage.xpulse.one/feedback/vA.B.C/
Roadmap items for this version visible in the survey