diff options
author | Robert Speicher <rspeicher@gmail.com> | 2018-10-05 11:12:24 -0500 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2018-10-05 11:57:34 -0500 |
commit | a78bc746083db825f0b59296823d1d7f98df3335 (patch) | |
tree | b8d98ebc3f5f1b093d5bdf6a6ab8f9b2aca24d40 | |
parent | 6b9adf5b2a024db3037a69b4b0dd4204bf3f74b8 (diff) | |
download | gitlab-ce-a78bc746083db825f0b59296823d1d7f98df3335.tar.gz |
Documentation for feature flags defaulting to on
Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/7883
-rw-r--r-- | doc/development/rolling_out_changes_using_feature_flags.md | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/doc/development/rolling_out_changes_using_feature_flags.md b/doc/development/rolling_out_changes_using_feature_flags.md index 905aa26a40b..dada59ce242 100644 --- a/doc/development/rolling_out_changes_using_feature_flags.md +++ b/doc/development/rolling_out_changes_using_feature_flags.md @@ -151,3 +151,27 @@ most cases this will translate to a feature (with a feature flag) being shipped in RC1, followed by the feature flag being removed in RC2. This in turn means the feature will be stable by the time we publish a stable package around the 22nd of the month. + +## Undefined feature flags default to "on" + +By default, the [`Project#feature_available?`][project-fa], +[`Namespace#feature_available?`][namespace-fa] (EE), and +[`License.feature_available?`][license-fa] (EE) methods will check if the +specified feature is behind a feature flag. Unless the feature is explicitly +disabled or limited to a percentage of users, the feature flag check will +default to `true`. + +As an example, if you were to ship the backend half of a feature behind a flag, +you'd want to explicitly disable that flag until the frontend half is also ready +to be shipped. You can do this via ChatOps: + +``` +/chatops run feature set some_feature 0 +``` + +Note that you can do this at any time, even before the merge request using the +flag has been merged! + +[project-fa]: https://gitlab.com/gitlab-org/gitlab-ee/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/app/models/project_feature.rb#L63-68 +[namespace-fa]: https://gitlab.com/gitlab-org/gitlab-ee/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/ee/app/models/ee/namespace.rb#L71-85 +[license-fa]: https://gitlab.com/gitlab-org/gitlab-ee/blob/4cc1c62918aa4c31750cb21dfb1a6c3492d71080/ee/app/models/license.rb#L293-300 |