[go: up one dir, main page]

Skip to content

[Feature flag] Cleanup allow_protected_branches_for_group

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Summary

This issue is to cleanup the allow_protected_branches_for_group feature flag, after the feature flag has been enabled by default for an appropriate amount of time in production.

Group-level protected branches MVC (&8679)

Enables group level protected branches feature

Owners

Stakeholders

Expectations

What might happen if this goes wrong?

We find buts in the implementation

(Optional) Release the feature with the feature flag

WARNING: This approach has the downside that it makes it difficult for us to clean up the flag. For example, on-premise users could disable the feature on their GitLab instance. But when you remove the flag at some point, they suddenly see the feature as enabled and they can't roll it back to the previous behavior. To avoid this potential breaking change, use this approach only for urgent matters.

See instructions if you're sure about enabling the feature globally through the feature flag definition

If you're still unsure whether the feature is deemed stable but want to release it in the current milestone, you can change the default state of the feature flag to be enabled. To do so, follow these steps:

  • Create a merge request with the following changes. Ask for review and merge it.
    • If feature was enabled for various actors, ensure the feature has been enabled globally on production /chatops run feature get allow_protected_branches_for_group. If the feature has not been globally enabled then enable the feature globally using: /chatops run feature set allow_protected_branches_for_group true
    • Set the default_enabled attribute in the feature flag definition to true.
    • Decide which changelog entry is needed.
  • Ensure that the default-enabling MR has been included in the release package. If the merge request was deployed before the monthly release was tagged, the feature can be officially announced in a release blog post: /chatops run release check <merge-request-url> <milestone>
  • Consider cleaning up the feature flag from all environments by running these chatops command in #production channel. Otherwise these settings may override the default enabled: /chatops run feature delete allow_protected_branches_for_group --dev --pre --staging --staging-ref --production
  • Close [the feature issue][main-issue] to indicate the feature will be released in the current milestone.
  • Set the next milestone to this rollout issue for scheduling the flag removal.
  • (Optional) You can create a separate issue for scheduling the steps below to Release the feature.
    • Set the title to "[Feature flag] Cleanup allow_protected_branches_for_group".
    • Execute the /copy_metadata <this-rollout-issue-link> quick action to copy the labels from this rollout issue.
    • Link this rollout issue as a related issue.
    • Close this rollout issue.

Cleaning up the feature flag

  • Specify in the issue description if this feature will be removed completely or will be productized as part of the Feature Flag cleanup
  • Create a merge request to remove allow_protected_branches_for_group feature flag. Ask for review and merge it.
    • Remove all references to the feature flag from the codebase.
    • Remove the YAML definitions for the feature from the repository.
    • Create a changelog entry.
  • Ensure that the cleanup MR has been deployed to both production and canary. If the merge request was deployed before the code cutoff, the feature can be officially announced in a release blog post.
    • /chatops run auto_deploy status <merge-commit-of-cleanup-mr>
  • Close the feature issue to indicate the feature will be released in the current milestone.
  • If not already done, clean up the feature flag from all environments by running these chatops command in #production channel: /chatops run feature delete allow_protected_branches_for_group --dev --pre --staging --staging-ref --production
  • Close this rollout issue.
Edited by 🤖 GitLab Bot 🤖