Fix & reinstate !49244 (second attempt) [RUN ALL RSPEC] [RUN AS-IF-FOSS]
What does this MR do?
Reinstates the changes from, and fixes the master:broken situation caused by, !49244 (merged) & !50312 (merged):
- Original MR: !49244 (merged)
- Reversion MR: !50288 (merged)
- First attempt to fix: !50312 (merged)
- Reversion of first attempt: !50903 (merged)
Works around the breakage in FOSS by allowing experiment
type feature flags to be in CE or EE, and by moving the yml
files for certain features flags into CE when the code which access them is also in CE.
Before
> ls -C ee/config/feature_flags/experiment
ci_notification_dot_experiment_percentage.yml
ci_syntax_templates_experiment_percentage.yml
contact_sales_btn_in_app_experiment_percentage.yml
customize_homepage_experiment_percentage.yml
default_to_issues_board_experiment_percentage.yml
group_only_trials_experiment_percentage.yml
invite_members_empty_group_version_a_experiment_percentage.yml
invite_members_empty_project_version_a_experiment_percentage.yml
invite_members_new_dropdown_experiment_percentage.yml
invite_members_version_a_experiment_percentage.yml
invite_members_version_b_experiment_percentage.yml
jobs_empty_state_experiment_percentage.yml
null_hypothesis.yml
onboarding_issues_experiment_percentage.yml
pipelines_empty_state_experiment_percentage.yml
remove_known_trial_form_fields_experiment_percentage.yml
trial_during_signup_experiment_percentage.yml
trial_onboarding_issues_experiment_percentage.yml
trial_registration_with_social_signin_experiment_percentage.yml
trimmed_skip_trial_copy_experiment_percentage.yml
upgrade_link_in_user_menu_a_experiment_percentage.yml
After
> ls -C config/feature_flags/experiment ee/config/feature_flags/experiment
config/feature_flags/experiment:
ci_syntax_templates_experiment_percentage.yml
customize_homepage_experiment_percentage.yml
default_to_issues_board_experiment_percentage.yml
invite_members_empty_group_version_a_experiment_percentage.yml
invite_members_empty_project_version_a_experiment_percentage.yml
invite_members_new_dropdown_experiment_percentage.yml
invite_members_version_a_experiment_percentage.yml
invite_members_version_b_experiment_percentage.yml
jobs_empty_state_experiment_percentage.yml
null_hypothesis.yml
onboarding_issues_experiment_percentage.yml
pipelines_empty_state_experiment_percentage.yml
ee/config/feature_flags/experiment:
ci_notification_dot_experiment_percentage.yml
contact_sales_btn_in_app_experiment_percentage.yml
group_only_trials_experiment_percentage.yml
remove_known_trial_form_fields_experiment_percentage.yml
trial_during_signup_experiment_percentage.yml
trial_onboarding_issues_experiment_percentage.yml
trial_registration_with_social_signin_experiment_percentage.yml
trimmed_skip_trial_copy_experiment_percentage.yml
upgrade_link_in_user_menu_a_experiment_percentage.yml
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
-
Separation of EE specific content
Availability and Testing
What risks does this change pose?
Given that the work in this MR has already caused a master:broken twice, I’d say it poses that same risk again. Hopefully we’ve learned enough from the two previous MRs to get this one right.
What additional test coverage will be needed?
This MR is set up to run all Rspecs and to run as-if-foss specs so that we can hopefully catch all the issues which previously caused master:broken.
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. - [-] Tested in all supported browsers
- [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
@gitlab-com/gl-security/appsec
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team
Related to #294462 (closed) & #290724 (closed)