Feature Flag YAML - Rollout
This is the tracking issue for the Feature Flag YAML rollout.
Documentation
- Starting with Feature Flags in Development (presentation)
- Creating a new feature flag
- Including a feature behind a feature flag in the final release
- Controlling feature flags
Existing feature flags
There's a number of users of a new YAML definition process. You can check the existing feature flags in these places:
Timeline
-
Announcements -
Two weeks in advance - Announce timeline on various engineering Keeping Yourself Informed channels https://about.gitlab.com/handbook/engineering/#keeping-yourself-informed -
Fridays until rollout Announce in WIR and on https://about.gitlab.com/handbook/engineering/#keeping-yourself-informed channels
-
-
September 7 -
Feature flag training available -
Announced in WIR -
Announced in https://about.gitlab.com/handbook/engineering/#keeping-yourself-informed channels -
On-boarding template: https://gitlab.com/gitlab-com/people-group/employment-templates/-/merge_requests/491 -
Training with presentation link: gitlab-com/www-gitlab-com!61722 (merged)
-
-
September 14 -
Announced in WIR -
Announced in https://about.gitlab.com/handbook/engineering/#keeping-yourself-informed channels -
Migrate existing feature flags -
Inform teams that any changes to feature flag will require an update to the definition. New feature flag format not yet enforced.
-
-
September 21 -
Announced in WIR -
Announced in https://about.gitlab.com/handbook/engineering/#keeping-yourself-informed channels -
New feature flag format will be enforced -
Run a "catch up" migration to catch any non-YAML feature flags
-
-
October / %13.5 -
Reach to teams/groups to update feature flag definitions with an ownership
-
Key-moments
September 7: Feature flag training available
We have up-to date documentation about development usage of the feature flags.
September 15: Migrate existing feature flags
We will as part of this effort gather ALL existing feature flags and create theirs definition.
The feature flags will be committed and merged into master
:
The YAML
definition will:
- have
name:
,type:
anddefault_enabled:
- lack:
group:
,introduced_by_url:
,rollout_issue_url:
From that point the change of default_enabled:
for existing feature flags
will require update of YAML definition stored in one of the above locations.
At that point YAML-definition is still optional
September 21: New feature flag format will be enforced
We will require that all new feature flags to have YAML definition. It means in order
to use a feature flag in a GitLab codebase the bin/feature-flag
as described in
creating a new feature flag will have to be used.
%13.5: Reach to groups to update ownership
October /During %13.5 cycle we will reach out to the respective groups to ask
to prefill the details about group:
. The introduced_by_url
and rollout_issue_url:
will be not be required for older
feature flags.
The related issue #251080 (closed).