Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthik Nayak <knayak@gitlab.com>2023-08-23 18:43:22 +0300
committerKarthik Nayak <knayak@gitlab.com>2023-08-28 11:50:26 +0300
commit44407ae31825974138bcc8adb165f5a6646b3684 (patch)
tree62e657f05b6c46af2790d17e07c63ea641244bfb
parent5649e8da1e31fcaa495da9420a56da09b61236f6 (diff)
issue_templates: Make feature flag rollout a multi issue template
Rolling out feature flag is generally done over multiple issues. Most often the work can be stretched for 3 releases: 1. Deploy code with feature flag <Release X> 2. Enable feature flag on staging <Release X> 3. Enable feature flag on production <Release X> 4. Default enable the feature flag <Release X+1> 5. Remove feature flag <Release X+2> Currently we create a single issue from the `Feature Flag Roll Out` template and use the same issue to track work over the releases. This is problematic since: 1. Most of the time the issue is blocked waiting for a release to happen. 2. Often we prematurely close the issue without removal of feature flag, which means a lot of flags remain as is. To solve both these problems, let's split the `Feature Flag Roll Out` issue template into three: 1. `Feature Flag Roll Out` 2. `Feature Flag Default Enable` 3. `Feature Flag Removal` with this, the first issue can be closed in <Release X> after creating the required subsequent issues. This ensures we have discrete work which can be tracked easily and also ensures that cleanup tasks are created in our backlog making it easier to track/delete old flags.
-rw-r--r--.gitlab/issue_templates/Feature Flag Default Enable.md22
-rw-r--r--.gitlab/issue_templates/Feature Flag Removal.md25
-rw-r--r--.gitlab/issue_templates/Feature Flag Roll Out.md15
3 files changed, 54 insertions, 8 deletions
diff --git a/.gitlab/issue_templates/Feature Flag Default Enable.md b/.gitlab/issue_templates/Feature Flag Default Enable.md
new file mode 100644
index 000000000..9a369643f
--- /dev/null
+++ b/.gitlab/issue_templates/Feature Flag Default Enable.md
@@ -0,0 +1,22 @@
+/title [Feature flag] Default enable feature flag name
+
+/relate feature flag rollout issue here
+
+## What
+
+Default enable the `:feature_name` feature flag.
+
+## Owners
+
+- Team: Gitaly
+- Most appropriate slack channel to reach out to: `#g_gitaly`
+- Best individual to reach out to: NAME
+
+## Steps
+
+- [ ] Change the feature flag to default-enabled ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-lifecycle-after-it-is-live))
+
+Please refer to the [documentation of feature flags](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-flags) for further information.
+
+/assign me
+/label ~"devops::systems" ~"group::gitaly" ~"feature flag" ~"feature::maintainance" ~"Category:Gitaly" ~"section::enablement" ~"featureflag::production" ~"workflow::ready for development"
diff --git a/.gitlab/issue_templates/Feature Flag Removal.md b/.gitlab/issue_templates/Feature Flag Removal.md
new file mode 100644
index 000000000..6925bcbff
--- /dev/null
+++ b/.gitlab/issue_templates/Feature Flag Removal.md
@@ -0,0 +1,25 @@
+/title [Feature flag] Removal of feature flag name
+
+/relate feature flag default enable issue here (if exists)
+/relate feature flag rollout issue here
+
+## What
+
+Remove the `:feature_name` feature flag.
+
+## Owners
+
+- Team: Gitaly
+- Most appropriate slack channel to reach out to: `#g_gitaly`
+- Best individual to reach out to: NAME
+
+## Steps
+
+- [ ] Remove the feature flag and the pre-feature-flag code ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-lifecycle-after-it-is-live))
+- [ ] Wait for the MR to be deployed to production
+- [ ] Remove the feature flag via chatops ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#remove-the-feature-flag-via-chatops))
+
+Please refer to the [documentation of feature flags](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-flags) for further information.
+
+/assign me
+/label ~"devops::systems" ~"group::gitaly" ~"feature flag" ~"feature::maintainance" ~"Category:Gitaly" ~"section::enablement" ~"workflow::ready for development"
diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md
index a7e63060d..97e405a74 100644
--- a/.gitlab/issue_templates/Feature Flag Roll Out.md
+++ b/.gitlab/issue_templates/Feature Flag Roll Out.md
@@ -49,14 +49,13 @@ I.e.
- [ ] Progressively enable in production ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#enable-in-production))
- [ ] Add ~"featureflag::production" to this issue
- [ ] Verify the feature flag was used by checking Prometheus metric [`gitaly_feature_flag_checks_total`](https://prometheus.gprd.gitlab.net/graph?g0.expr=sum%20by%20(flag)%20(rate(gitaly_feature_flag_checks_total%5B5m%5D))&g0.tab=1&g0.stacked=0&g0.range_input=1h)
-- [ ] Default-enable the feature flag (optional, only required if backwards-compatibility concerns exist)
- - [ ] Wait for release containg default-disabled feature flag.
- - [ ] Change the feature flag to default-enabled ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-lifecycle-after-it-is-live))
- - [ ] Wait for release containing default-enabled feature flag.
-- [ ] Remove feature flag
- - [ ] Remove the feature flag and the pre-feature-flag code ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-lifecycle-after-it-is-live))
- - [ ] Remove the feature flag via chatops ([howto](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#remove-the-feature-flag-via-chatops))
- - [ ] Close this issue
+- [ ] Create subsequent issues
+ - [ ] To default enable the feature flag (optional, only required if backwards-compatibility concerns exist)
+ - [ ] [Create issue](https://gitlab.com/gitlab-org/gitaly/-/issues/new?issuable_template=Feature%20Flag%20Default%20Enable) using the `Feature Flag Default Enable` template.
+ - [ ] Set milestone to current+1 release
+ - [ ] To Remove feature flag
+ - [ ] [Create issue](https://gitlab.com/gitlab-org/gitaly/-/issues/new?issuable_template=Feature%20Flag%20Removal) using the `Feature Flag Removal` template.
+ - [ ] Set milestone to current+1 (+2 if we created an issue to default enable the flag).
Please refer to the [documentation of feature flags](https://gitlab.com/gitlab-org/gitaly/-/blob/master/doc/PROCESS.md#feature-flags) for further information.