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/ci_notification_dot_experiment_percentage.yml b/ee/config/feature_flags/experiment/ci_notification_dot_experiment_percentage.yml deleted file mode 100644 index 3d6f70d2ce578fb77947253913ce5c9d583d1379..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/ci_notification_dot_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 3ed457acce8f1b9d1f7d6284cc75d37041885184..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 80401523f53e96f8e88e17f1f8525ca3cc7c656a..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/contact_sales_btn_in_app_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index eff0d2785eb448eeba5c2d6270dcbdece5ca19bb..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/customize_homepage_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index d4a695502f945022eae410ee7f699970aca86dc2..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/default_to_issues_board_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index e410eb08d01723a4e7570db20333c6843d8249da..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/group_only_trials_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 6f8186a6888bc969de40e2f1bd47b221d4da52bc..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/invite_members_empty_group_version_a_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 8b91ec9526ccb4aeda7723138c21b4c23fa08dd4..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/invite_members_empty_project_version_a_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 6fac63b381c604625d1949488b9fe0b9aab04aca..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/invite_members_new_dropdown_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index b284a0e2f78fcabc31b93cbc64ebfa4ed5033961..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 069e740ba4408986f26f63bdf80597affb3a04a4..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/invite_members_version_b_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 33a15e28d445d0311690450dd40fbd00084a4cb9..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/jobs_empty_state_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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/ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml b/ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml deleted file mode 100644 index 7a8f3074d96c5e367bc3eb22c7907c0a3157c764..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/onboarding_issues_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index beb8e8a21c63e7c3835fd8d4c3dff4ca2e1e1058..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/pipelines_empty_state_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 72b49a0423546e631d325711102f257aa8ec5f11..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/remove_known_trial_form_fields_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 543b48b6626507b6561dfb7e84238109619f16f3..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/trial_during_signup_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 4d31cce9a52b66467d20b4c3ab3cb262992df4db..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/trial_onboarding_issues_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index e0f224ae0c45f796551a86be5570b14cf9d05ae8..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/trial_registration_with_social_signin_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index 6e6e4555a6b5b523d06aa5ee436b02814eefe13f..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/trimmed_skip_trial_copy_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 deleted file mode 100644 index e383e7040db39ef1a0eb86d6d300557a82124dd0..0000000000000000000000000000000000000000 --- a/ee/config/feature_flags/experiment/upgrade_link_in_user_menu_a_experiment_percentage.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -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 99f99a8ae3d46e497f6f7cac289e2b0a9e3b33a0..535fd065230a6d667827126811b8970c8516d4f3 100644 --- a/ee/spec/requests/api/experiments_spec.rb +++ b/ee/spec/requests/api/experiments_spec.rb @@ -20,8 +20,6 @@ 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 a3f02156d94b2c0981c75197fc05437714f1d5cd..17dfe26bd8276f6d096474050c43aae1cc205f9e 100644 --- a/lib/feature/shared.rb +++ b/lib/feature/shared.rb @@ -57,8 +57,6 @@ 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 36cd673a38fbcecdfd18a58302a14f61795215b6..e594c3bedeb444fde9a1981c3024f3989d3570e5 100644 --- a/lib/gitlab/experimentation/experiment.rb +++ b/lib/gitlab/experimentation/experiment.rb @@ -3,21 +3,17 @@ 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 @@ -29,17 +25,7 @@ def enabled_for_index?(index) private - 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 + attr_reader :experiment_percentage end end end diff --git a/spec/lib/gitlab/experimentation/experiment_spec.rb b/spec/lib/gitlab/experimentation/experiment_spec.rb index 008e669959796bfc2e495f5c7851088950ccbf3e..7b1d1763010ed27b273afb6c9892f07a6ad367e8 100644 --- a/spec/lib/gitlab/experimentation/experiment_spec.rb +++ b/spec/lib/gitlab/experimentation/experiment_spec.rb @@ -14,10 +14,8 @@ end before do - 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) + feature = double('FeatureFlag', percentage_of_time_value: percentage ) + expect(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 b503960b8c78de0e1bf9fa4b1f368456ac702f43..a68c050d8296ebeba638a08a8d224c9aee6e8f39 100644 --- a/spec/lib/gitlab/experimentation_spec.rb +++ b/spec/lib/gitlab/experimentation_spec.rb @@ -38,8 +38,6 @@ } }) - 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 408d16a7c08d780b41db14b8531fe90a5541823c..247692d83ee3b07e087527406a6e03aac30fcce1 100644 --- a/spec/support/helpers/stub_experiments.rb +++ b/spec/support/helpers/stub_experiments.rb @@ -11,7 +11,6 @@ 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 @@ -26,14 +25,7 @@ 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 77f31169ecb9e70f29b002b9fd82e635de541806..7f30a2a70cdf56fdc90cf3ef6c183b55828345a6 100644 --- a/spec/support/helpers/stub_feature_flags.rb +++ b/spec/support/helpers/stub_feature_flags.rb @@ -66,8 +66,4 @@ 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