summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/development/feature_flags/controls.md20
1 files changed, 9 insertions, 11 deletions
diff --git a/doc/development/feature_flags/controls.md b/doc/development/feature_flags/controls.md
index 739f4207e27..8712fb1eccc 100644
--- a/doc/development/feature_flags/controls.md
+++ b/doc/development/feature_flags/controls.md
@@ -106,18 +106,16 @@ For groups the `--group` flag is available:
## Cleaning up
-Once the change is deemed stable, submit a new merge request to remove the
-feature flag. This ensures the change is available to all users and self-hosted
-instances. Make sure to add the ~"feature flag" label to this merge request so
+Once the change is deemed stable, submit a new merge request that:
+
+- Removes the code using the feature flag
+- Adds a migration that removes the feature setting: `Feature.remove('some_feature')`
+
+This ensures the change is available to all users on GitLab.com and self-hosted
+instances, and there are no non-existing feature flag left behind in the database.
+
+Make sure to add the ~"feature flag" label to this merge request so
release managers are aware the changes are hidden behind a feature flag. If the
merge request has to be picked into a stable branch, make sure to also add the
appropriate "Pick into X" label (e.g. "Pick into XX.X").
See [the process document](process.md#including-a-feature-behind-feature-flag-in-the-final-release) for further details.
-
-When a feature gate has been removed from the code base, the value still exists
-in the database.
-This can be removed through ChatOps:
-
-```
-/chatops run feature delete some_feature
-```