diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2021-01-12 17:47:34 +0300 |
---|---|---|
committer | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2021-01-18 19:50:49 +0300 |
commit | 86c8480e89b290af7d30dd5d5d09a53df8b107a8 (patch) | |
tree | 7df4aec9a628248c9ce429d348d8fcd67b039e1e | |
parent | 424c584cbe67d640705122802087ced5a4b728f4 (diff) |
Feature flag rollout doc: expand on post-100% steps
Add more steps reflecting what we need to do after we have the feature
at 100%. Includes a paraphrased version of what I noted in my
a96949aef (Enable feature flag go_user_delete_{branch,tag} by default,
2021-01-12) as part of
https://gitlab.com/gitlab-org/gitaly/-/merge_requests/2994
-rw-r--r-- | .gitlab/issue_templates/Feature Flag Roll Out.md | 3 | ||||
-rw-r--r-- | doc/PROCESS.md | 21 |
2 files changed, 24 insertions, 0 deletions
diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index e925767d7..a46e95e27 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -57,6 +57,9 @@ If applicable, any groups/projects that are happy to have this feature turned on - [ ] Enable on GitLab.com by running chatops command in `#production` ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#enable-in-production)) - [ ] Cross post chatops slack command to `#support_gitlab-com` and in your team channel - [ ] Announce on the issue that the flag has been enabled +- [ ] Submit a MR to have the feature `OnByDefault: true` and add changelog entry ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-lifecycle-after-it-is-live)) +- [ ] Have that MR merged +- [ ] Possibly wait for at least one deployment cycle ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#two-phase-ruby-to-go-rollouts)) - [ ] Remove feature flag and add changelog entry - [ ] Close this issue diff --git a/doc/PROCESS.md b/doc/PROCESS.md index 59e2d989a..171bac470 100644 --- a/doc/PROCESS.md +++ b/doc/PROCESS.md @@ -185,6 +185,27 @@ Nobody's better off if you wait 10 hours at 1% to get error data you could have waited 1 hour at 10% to get, or just over 10 minutes with close monitoring at 50%. +#### Feature lifecycle after it is live + +##### Discussion + +After a feature is running at `100%` for what ever's deemed to be a +safe amount of time we should change it to be `OnByDefault: true`. See +[this MR for an example][example-on-by-default-mr]. + +[example-on-by-default-mr]: https://gitlab.com/gitlab-org/gitaly/-/merge_requests/2994 + +##### Two phase Ruby to Go rollouts + +Depending on what the feature does it may be bad to remove the `else` +branch where we have the feature disabled at this point. E.g. if it's +a rewrite of Ruby code in Go. + +As we deploy the Ruby code might be in the middle of auto-restarting, +so we could remove its code before the Go code has a chance to update +with its default, and would still want to call it. So therefore you +need to do any such removal in two gitlab.com release cycles. + ### Gitaly Releases Gitaly releases are tagged automatically by |