From 606586d6b3abbd30575d61d31531c8d23ed88148 Mon Sep 17 00:00:00 2001 From: Dallas Reedy Date: Tue, 5 Jan 2021 16:01:07 -0800 Subject: [PATCH 1/3] Revert "Revert "Merge branch '294462-fix-reinstate-49244' into 'master'"" This reverts commit 579baf6b6c0268a62d021b0fa75f3ad6081ae997. --- ...notification_dot_experiment_percentage.yml | 8 ++++++++ ...syntax_templates_experiment_percentage.yml | 8 ++++++++ ...sales_btn_in_app_experiment_percentage.yml | 8 ++++++++ ...stomize_homepage_experiment_percentage.yml | 8 ++++++++ ..._to_issues_board_experiment_percentage.yml | 8 ++++++++ ...roup_only_trials_experiment_percentage.yml | 8 ++++++++ ..._group_version_a_experiment_percentage.yml | 8 ++++++++ ...roject_version_a_experiment_percentage.yml | 8 ++++++++ ...ers_new_dropdown_experiment_percentage.yml | 8 ++++++++ ...embers_version_a_experiment_percentage.yml | 8 ++++++++ ...embers_version_b_experiment_percentage.yml | 8 ++++++++ ...jobs_empty_state_experiment_percentage.yml | 8 ++++++++ .../experiment/null_hypothesis.yml | 0 ...nboarding_issues_experiment_percentage.yml | 8 ++++++++ ...ines_empty_state_experiment_percentage.yml | 8 ++++++++ ...rial_form_fields_experiment_percentage.yml | 8 ++++++++ ...al_during_signup_experiment_percentage.yml | 8 ++++++++ ...nboarding_issues_experiment_percentage.yml | 8 ++++++++ ...th_social_signin_experiment_percentage.yml | 8 ++++++++ ..._skip_trial_copy_experiment_percentage.yml | 8 ++++++++ ...k_in_user_menu_a_experiment_percentage.yml | 8 ++++++++ ee/spec/requests/api/experiments_spec.rb | 2 ++ lib/feature/shared.rb | 2 ++ lib/gitlab/experimentation/experiment.rb | 20 ++++++++++++++++--- .../gitlab/experimentation/experiment_spec.rb | 6 ++++-- spec/lib/gitlab/experimentation_spec.rb | 2 ++ spec/support/helpers/stub_experiments.rb | 8 ++++++++ spec/support/helpers/stub_feature_flags.rb | 4 ++++ 28 files changed, 199 insertions(+), 5 deletions(-) create mode 100644 ee/config/feature_flags/experiment/ci_notification_dot_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/contact_sales_btn_in_app_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/group_only_trials_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml rename {config => ee/config}/feature_flags/experiment/null_hypothesis.yml (100%) create mode 100644 ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/remove_known_trial_form_fields_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/trial_during_signup_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/trial_onboarding_issues_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/trial_registration_with_social_signin_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/trimmed_skip_trial_copy_experiment_percentage.yml create mode 100644 ee/config/feature_flags/experiment/upgrade_link_in_user_menu_a_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/ci_notification_dot_experiment_percentage.yml b/ee/config/feature_flags/experiment/ci_notification_dot_experiment_percentage.yml new file mode 100644 index 00000000000000..3d6f70d2ce578f --- /dev/null +++ b/ee/config/feature_flags/experiment/ci_notification_dot_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: ci_notification_dot_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27626 +rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/101 +milestone: '12.10' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml b/ee/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml new file mode 100644 index 00000000000000..3ed457acce8f1b --- /dev/null +++ b/ee/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: ci_syntax_templates_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48141 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/281057 +milestone: '13.8' +type: experiment +group: group::activation +default_enabled: false diff --git a/ee/config/feature_flags/experiment/contact_sales_btn_in_app_experiment_percentage.yml b/ee/config/feature_flags/experiment/contact_sales_btn_in_app_experiment_percentage.yml new file mode 100644 index 00000000000000..80401523f53e96 --- /dev/null +++ b/ee/config/feature_flags/experiment/contact_sales_btn_in_app_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: contact_sales_btn_in_app_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38508 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/238207 +milestone: '13.3' +type: experiment +group: group::conversion +default_enabled: true diff --git a/ee/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml b/ee/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml new file mode 100644 index 00000000000000..eff0d2785eb448 --- /dev/null +++ b/ee/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: customize_homepage_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39348 +rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/187 +milestone: '13.4' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml b/ee/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml new file mode 100644 index 00000000000000..d4a695502f9450 --- /dev/null +++ b/ee/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: default_to_issues_board_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43939 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/268298 +milestone: '13.5' +type: experiment +group: group::conversion +default_enabled: true diff --git a/ee/config/feature_flags/experiment/group_only_trials_experiment_percentage.yml b/ee/config/feature_flags/experiment/group_only_trials_experiment_percentage.yml new file mode 100644 index 00000000000000..e410eb08d01723 --- /dev/null +++ b/ee/config/feature_flags/experiment/group_only_trials_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: group_only_trials_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40564 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/258629 +milestone: '13.5' +type: experiment +group: group::conversion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml b/ee/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml new file mode 100644 index 00000000000000..6f8186a6888bc9 --- /dev/null +++ b/ee/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: invite_members_empty_group_version_a_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45689 +rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/280 +milestone: '13.6' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml b/ee/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml new file mode 100644 index 00000000000000..8b91ec9526ccb4 --- /dev/null +++ b/ee/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: invite_members_empty_project_version_a_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49588 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/262014 +milestone: '13.7' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml b/ee/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml new file mode 100644 index 00000000000000..6fac63b381c604 --- /dev/null +++ b/ee/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: invite_members_new_dropdown_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50069 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/268129 +milestone: '13.8' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml b/ee/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml new file mode 100644 index 00000000000000..b284a0e2f78fca --- /dev/null +++ b/ee/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: invite_members_version_a_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45689/ +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/219239 +milestone: '13.6' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml b/ee/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml new file mode 100644 index 00000000000000..069e740ba44089 --- /dev/null +++ b/ee/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: invite_members_version_b_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43900 +rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/214 +milestone: '13.5' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml b/ee/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml new file mode 100644 index 00000000000000..33a15e28d445d0 --- /dev/null +++ b/ee/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: jobs_empty_state_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48686 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/281054 +milestone: '13.7' +type: experiment +group: group::activation +default_enabled: false diff --git a/config/feature_flags/experiment/null_hypothesis.yml b/ee/config/feature_flags/experiment/null_hypothesis.yml similarity index 100% rename from config/feature_flags/experiment/null_hypothesis.yml rename to ee/config/feature_flags/experiment/null_hypothesis.yml diff --git a/ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml b/ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml new file mode 100644 index 00000000000000..7a8f3074d96c5e --- /dev/null +++ b/ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: onboarding_issues_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31656/ +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/224515 +milestone: '13.0' +type: experiment +group: group::conversion +default_enabled: true diff --git a/ee/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml b/ee/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml new file mode 100644 index 00000000000000..beb8e8a21c63e7 --- /dev/null +++ b/ee/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: pipelines_empty_state_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47952 +rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/289 +milestone: '13.8' +type: experiment +group: group::activation +default_enabled: false diff --git a/ee/config/feature_flags/experiment/remove_known_trial_form_fields_experiment_percentage.yml b/ee/config/feature_flags/experiment/remove_known_trial_form_fields_experiment_percentage.yml new file mode 100644 index 00000000000000..72b49a0423546e --- /dev/null +++ b/ee/config/feature_flags/experiment/remove_known_trial_form_fields_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: remove_known_trial_form_fields_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45634/ +rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/281 +milestone: '13.7' +type: experiment +group: group::conversion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/trial_during_signup_experiment_percentage.yml b/ee/config/feature_flags/experiment/trial_during_signup_experiment_percentage.yml new file mode 100644 index 00000000000000..543b48b6626507 --- /dev/null +++ b/ee/config/feature_flags/experiment/trial_during_signup_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: trial_during_signup_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45147/ +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/251231 +milestone: '13.8' +type: experiment +group: group::conversion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/trial_onboarding_issues_experiment_percentage.yml b/ee/config/feature_flags/experiment/trial_onboarding_issues_experiment_percentage.yml new file mode 100644 index 00000000000000..4d31cce9a52b66 --- /dev/null +++ b/ee/config/feature_flags/experiment/trial_onboarding_issues_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: trial_onboarding_issues_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48052 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/276703 +milestone: '13.8' +type: experiment +group: group::conversion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/trial_registration_with_social_signin_experiment_percentage.yml b/ee/config/feature_flags/experiment/trial_registration_with_social_signin_experiment_percentage.yml new file mode 100644 index 00000000000000..e0f224ae0c45f7 --- /dev/null +++ b/ee/config/feature_flags/experiment/trial_registration_with_social_signin_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: trial_registration_with_social_signin_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45633 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/262853 +milestone: '13.7' +type: experiment +group: group::conversion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/trimmed_skip_trial_copy_experiment_percentage.yml b/ee/config/feature_flags/experiment/trimmed_skip_trial_copy_experiment_percentage.yml new file mode 100644 index 00000000000000..6e6e4555a6b5b5 --- /dev/null +++ b/ee/config/feature_flags/experiment/trimmed_skip_trial_copy_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: trimmed_skip_trial_copy_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48110 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/284956 +milestone: '13.7' +type: experiment +group: group::conversion +default_enabled: false diff --git a/ee/config/feature_flags/experiment/upgrade_link_in_user_menu_a_experiment_percentage.yml b/ee/config/feature_flags/experiment/upgrade_link_in_user_menu_a_experiment_percentage.yml new file mode 100644 index 00000000000000..e383e7040db39e --- /dev/null +++ b/ee/config/feature_flags/experiment/upgrade_link_in_user_menu_a_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: upgrade_link_in_user_menu_a_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29428 +rollout_issue_url: https://gitlab.com/gitlab-org/growth/team-tasks/-/issues/126 +milestone: '13.0' +type: experiment +group: group::expansion +default_enabled: false diff --git a/ee/spec/requests/api/experiments_spec.rb b/ee/spec/requests/api/experiments_spec.rb index 535fd065230a6d..99f99a8ae3d46e 100644 --- a/ee/spec/requests/api/experiments_spec.rb +++ b/ee/spec/requests/api/experiments_spec.rb @@ -20,6 +20,8 @@ end before do + skip_feature_flags_yaml_validation + skip_default_enabled_yaml_check stub_const('Gitlab::Experimentation::EXPERIMENTS', experiments) Feature.enable_percentage_of_time('experiment_1_experiment_percentage', 10) Feature.disable('experiment_2_experiment_percentage') diff --git a/lib/feature/shared.rb b/lib/feature/shared.rb index 17dfe26bd8276f..a3f02156d94b2c 100644 --- a/lib/feature/shared.rb +++ b/lib/feature/shared.rb @@ -57,6 +57,8 @@ module Shared default_enabled: false, example: <<-EOS experiment(:my_experiment, project: project, actor: current_user) { ...variant code... } + # or + Gitlab::Experimentation.in_experiment_group?(:my_experiment, subject: current_user) EOS } }.freeze diff --git a/lib/gitlab/experimentation/experiment.rb b/lib/gitlab/experimentation/experiment.rb index e594c3bedeb444..36cd673a38fbce 100644 --- a/lib/gitlab/experimentation/experiment.rb +++ b/lib/gitlab/experimentation/experiment.rb @@ -3,17 +3,21 @@ module Gitlab module Experimentation class Experiment + FEATURE_FLAG_SUFFIX = "_experiment_percentage" + attr_reader :key, :tracking_category, :use_backwards_compatible_subject_index def initialize(key, **params) @key = key @tracking_category = params[:tracking_category] @use_backwards_compatible_subject_index = params[:use_backwards_compatible_subject_index] - - @experiment_percentage = Feature.get(:"#{key}_experiment_percentage").percentage_of_time_value # rubocop:disable Gitlab/AvoidFeatureGet end def active? + # TODO: just touch a feature flag + # Temporary change, we will change `experiment_percentage` in future to `Feature.enabled? + Feature.enabled?(feature_flag_name, type: :experiment, default_enabled: :yaml) + ::Gitlab.dev_env_or_com? && experiment_percentage > 0 end @@ -25,7 +29,17 @@ def enabled_for_index?(index) private - attr_reader :experiment_percentage + def experiment_percentage + feature_flag.percentage_of_time_value + end + + def feature_flag + Feature.get(feature_flag_name) # rubocop:disable Gitlab/AvoidFeatureGet + end + + def feature_flag_name + :"#{key}#{FEATURE_FLAG_SUFFIX}" + end end end end diff --git a/spec/lib/gitlab/experimentation/experiment_spec.rb b/spec/lib/gitlab/experimentation/experiment_spec.rb index 7b1d1763010ed2..008e669959796b 100644 --- a/spec/lib/gitlab/experimentation/experiment_spec.rb +++ b/spec/lib/gitlab/experimentation/experiment_spec.rb @@ -14,8 +14,10 @@ end before do - feature = double('FeatureFlag', percentage_of_time_value: percentage ) - expect(Feature).to receive(:get).with(:experiment_key_experiment_percentage).and_return(feature) + skip_feature_flags_yaml_validation + skip_default_enabled_yaml_check + feature = double('FeatureFlag', percentage_of_time_value: percentage, enabled?: true) + allow(Feature).to receive(:get).with(:experiment_key_experiment_percentage).and_return(feature) end subject(:experiment) { described_class.new(:experiment_key, **params) } diff --git a/spec/lib/gitlab/experimentation_spec.rb b/spec/lib/gitlab/experimentation_spec.rb index a68c050d8296eb..b503960b8c78de 100644 --- a/spec/lib/gitlab/experimentation_spec.rb +++ b/spec/lib/gitlab/experimentation_spec.rb @@ -38,6 +38,8 @@ } }) + skip_feature_flags_yaml_validation + skip_default_enabled_yaml_check Feature.enable_percentage_of_time(:backwards_compatible_test_experiment_experiment_percentage, enabled_percentage) Feature.enable_percentage_of_time(:test_experiment_experiment_percentage, enabled_percentage) allow(Gitlab).to receive(:com?).and_return(true) diff --git a/spec/support/helpers/stub_experiments.rb b/spec/support/helpers/stub_experiments.rb index 247692d83ee3b0..408d16a7c08d78 100644 --- a/spec/support/helpers/stub_experiments.rb +++ b/spec/support/helpers/stub_experiments.rb @@ -11,6 +11,7 @@ def stub_experiment(experiments) allow(Gitlab::Experimentation).to receive(:active?).and_call_original experiments.each do |experiment_key, enabled| + Feature.persist_used!("#{experiment_key}#{feature_flag_suffix}") allow(Gitlab::Experimentation).to receive(:active?).with(experiment_key) { enabled } end end @@ -25,7 +26,14 @@ def stub_experiment_for_subject(experiments) allow(Gitlab::Experimentation).to receive(:in_experiment_group?).and_call_original experiments.each do |experiment_key, enabled| + Feature.persist_used!("#{experiment_key}#{feature_flag_suffix}") allow(Gitlab::Experimentation).to receive(:in_experiment_group?).with(experiment_key, anything) { enabled } end end + + private + + def feature_flag_suffix + Gitlab::Experimentation::Experiment::FEATURE_FLAG_SUFFIX + end end diff --git a/spec/support/helpers/stub_feature_flags.rb b/spec/support/helpers/stub_feature_flags.rb index 7f30a2a70cdf56..77f31169ecb9e7 100644 --- a/spec/support/helpers/stub_feature_flags.rb +++ b/spec/support/helpers/stub_feature_flags.rb @@ -66,4 +66,8 @@ def stub_feature_flag_gate(object) def skip_feature_flags_yaml_validation allow(Feature::Definition).to receive(:valid_usage!) end + + def skip_default_enabled_yaml_check + allow(Feature::Definition).to receive(:default_enabled?).and_return(false) + end end -- GitLab From 707d66f7d1c30f9fc79ee4630fb32dc6c270c55c Mon Sep 17 00:00:00 2001 From: Dallas Reedy Date: Tue, 5 Jan 2021 16:18:18 -0800 Subject: [PATCH 2/3] Allow experiment FFs to be in CE or EE - Adjust the definition of `experiment` feature flag type to allow for YAML files to be in both config/... and ee/config/... - Review usage of existing `experiment` type feature flags in the code & move the corresponding YAML file from ee/config/... to config/... as necessary --- .../experiment/ci_syntax_templates_experiment_percentage.yml | 0 .../experiment/customize_homepage_experiment_percentage.yml | 0 .../default_to_issues_board_experiment_percentage.yml | 0 ...vite_members_empty_group_version_a_experiment_percentage.yml | 0 ...te_members_empty_project_version_a_experiment_percentage.yml | 0 .../invite_members_new_dropdown_experiment_percentage.yml | 0 .../invite_members_version_a_experiment_percentage.yml | 0 .../invite_members_version_b_experiment_percentage.yml | 0 .../experiment/jobs_empty_state_experiment_percentage.yml | 0 .../feature_flags/experiment/null_hypothesis.yml | 0 .../experiment/onboarding_issues_experiment_percentage.yml | 0 .../experiment/pipelines_empty_state_experiment_percentage.yml | 0 lib/feature/shared.rb | 2 +- 13 files changed, 1 insertion(+), 1 deletion(-) rename {ee/config => config}/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/customize_homepage_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/null_hypothesis.yml (100%) rename {ee/config => config}/feature_flags/experiment/onboarding_issues_experiment_percentage.yml (100%) rename {ee/config => config}/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml (100%) diff --git a/ee/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml b/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml rename to config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml b/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml rename to config/feature_flags/experiment/customize_homepage_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml b/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml rename to config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml b/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml rename to config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml b/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml rename to config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml b/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml rename to config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml b/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml rename to config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml b/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml rename to config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml b/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml rename to config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/null_hypothesis.yml b/config/feature_flags/experiment/null_hypothesis.yml similarity index 100% rename from ee/config/feature_flags/experiment/null_hypothesis.yml rename to config/feature_flags/experiment/null_hypothesis.yml diff --git a/ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml b/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml rename to config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml b/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml similarity index 100% rename from ee/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml rename to config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml diff --git a/lib/feature/shared.rb b/lib/feature/shared.rb index a3f02156d94b2c..5ad9af6ff7ddc0 100644 --- a/lib/feature/shared.rb +++ b/lib/feature/shared.rb @@ -53,7 +53,7 @@ module Shared description: 'Short lived, used specifically to run A/B/n experiments.', optional: true, rollout_issue: true, - ee_only: true, + ee_only: false, default_enabled: false, example: <<-EOS experiment(:my_experiment, project: project, actor: current_user) { ...variant code... } -- GitLab From 417dc2b8beb100307915ea28505dd87113956887 Mon Sep 17 00:00:00 2001 From: Dallas Reedy Date: Thu, 7 Jan 2021 11:34:49 -0800 Subject: [PATCH 3/3] Revert "Removed show_trial_status_in_sidebar_experiment_percentage feature flag" This reverts commit 48b6d01dd54fe12a8439db04834efdcf114c8e9b. Adds the feature flag definition YAML file back in for the now-merged-in group trial status sidebar widget experiment: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50090 --- ...show_trial_status_in_sidebar_experiment_percentage.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 ee/config/feature_flags/experiment/show_trial_status_in_sidebar_experiment_percentage.yml diff --git a/ee/config/feature_flags/experiment/show_trial_status_in_sidebar_experiment_percentage.yml b/ee/config/feature_flags/experiment/show_trial_status_in_sidebar_experiment_percentage.yml new file mode 100644 index 00000000000000..08cc5cae6c4db1 --- /dev/null +++ b/ee/config/feature_flags/experiment/show_trial_status_in_sidebar_experiment_percentage.yml @@ -0,0 +1,8 @@ +--- +name: show_trial_status_in_sidebar_experiment_percentage +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50090 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/281019 +milestone: '13.8' +type: experiment +group: group::conversion +default_enabled: false -- GitLab