aboutsummaryrefslogtreecommitdiffstats
path: root/docs/sensitive-release.md
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2019-02-20 04:33:12 +0800
committerDan Finlay <dan@danfinlay.com>2019-02-20 04:35:59 +0800
commit160f1961654632654072759f0aa116b43a97f35b (patch)
tree80b7bd9a46003b8b582850946ffbd818d3bb65b6 /docs/sensitive-release.md
parent29b64bdb17d5386b834c6938934d770ff62e4746 (diff)
downloadtangerine-wallet-browser-160f1961654632654072759f0aa116b43a97f35b.tar
tangerine-wallet-browser-160f1961654632654072759f0aa116b43a97f35b.tar.gz
tangerine-wallet-browser-160f1961654632654072759f0aa116b43a97f35b.tar.bz2
tangerine-wallet-browser-160f1961654632654072759f0aa116b43a97f35b.tar.lz
tangerine-wallet-browser-160f1961654632654072759f0aa116b43a97f35b.tar.xz
tangerine-wallet-browser-160f1961654632654072759f0aa116b43a97f35b.tar.zst
tangerine-wallet-browser-160f1961654632654072759f0aa116b43a97f35b.zip
Add sensitive publishing protocolv6.1.0
Diffstat (limited to 'docs/sensitive-release.md')
-rw-r--r--docs/sensitive-release.md43
1 files changed, 43 insertions, 0 deletions
diff --git a/docs/sensitive-release.md b/docs/sensitive-release.md
new file mode 100644
index 000000000..e2c4e2f3d
--- /dev/null
+++ b/docs/sensitive-release.md
@@ -0,0 +1,43 @@
+# Sensitive Release Protocol
+
+In the case that a new change is so dramatic that it is hard to anticipate all of the potential side-effects, here is a protocol for rolling out these sensitive changes in a way that:
+
+- Minimizes adverse impact on end users.
+- Maximizes our responsiveness to these changes.
+
+## Protocol Steps
+
+1. Prepare a normal release.
+2. Prepare a rollback release.
+3. Roll the normal release out.
+4. In case of emergency, roll back.
+
+### Normal Release
+
+Simply follow the steps in [the publishing guide](./publishing.md).
+
+### Prepare Rollback Release
+
+1. Check out the tagged commit for the release before this new release.
+2. Increment the version over the new release by one patch.
+3. Merge the changelog of the new release into this branch, and make its own changelog refer to rolling back those changes.
+4. Push to the main repository and pull request against `master` prominently noting this is a `DO NOT MERGE` rollback pull request.
+
+### Roll the normal release out
+
+Ensure the rollback release has been built, and downloaded locally, fully ready to deploy with immediacy.
+
+For a sensitive release, initially roll out to only 1% of Chrome users (since Chrome allows incremental rollout).
+
+Monitor Sentry for any recognizable error logs.
+
+Gradually increase the rollout percentage.
+
+### In case of Emergency
+
+If a problem is detected, publish the roll-back release to 100% of users, identify the issue, fix it, and repeat this process with a new release.
+
+## Summary
+
+This protocol is a worst-case scenario, just a way to be incredibly careful about our most sensitive possible changes.
+