From b78687791453dd93b8ba12cb6d65c99a2c8944f6 Mon Sep 17 00:00:00 2001 From: GitLab Housekeeping Bot Date: Mon, 1 Sep 2025 09:52:40 +0000 Subject: [PATCH] Delete the `merge_trains_skip_train` feature flag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This feature flag was introduced in 16.4, which is more than 4 milestones ago. As part of our process we want to ensure [feature flags don't stay too long in the codebase](https://docs.gitlab.com/ee/development/feature_flags/#types-of-feature-flags). Rollout issue: https://gitlab.com/gitlab-org/gitlab/-/issues/422111
Remaining mentions of the feature flag (click to expand) ``` .rubocop_todo/rspec/be_eq.yml 31: - 'ee/spec/features/projects/settings/merge_requests/merge_trains/enable_merge_trains_skip_train_allowed_spec.rb' doc/ci/pipelines/merge_trains.md 248:- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/414505) in GitLab 16.5 [with a flag](../../administration/feature_flags/_index.md) named `merge_trains_skip_train`. Disabled by default. ee/spec/requests/api/merge_requests_spec.rb 533: stub_feature_flags(merge_trains_skip_train: false) doc-locale/ja-jp/api/graphql/reference/_index.md 8550:| `mergeTrainsSkipTrainAllowed` | [`Boolean`](#boolean) | マージトレインを更新せずにマージできるオプションを許可するかどうかを示します。`merge_trains_skip_train`機能フラグも有効になっているのでなければ、無視されます。 | 34891:| `mergeTrainsSkipTrainAllowed` | [`Boolean!`](#boolean) | マージトレインで即時マージが許可されているかどうか。 | doc/api/graphql/reference/_index.md 10060:| `mergeTrainsSkipTrainAllowed` | [`Boolean`](#boolean) | Indicates whether an option is allowed to merge without refreshing the merge train. Ignored unless the `merge_trains_skip_train` feature flag is also enabled. | 40505:| `mergeTrainsSkipTrainAllowed` | [`Boolean!`](#boolean) | Whether merge immediately is allowed for merge trains. | ee/spec/requests/api/graphql/ci/ci_cd_setting_spec.rb 52: expect(settings_data['mergeTrainsSkipTrainAllowed']).to eq skip_train_setting .rubocop_todo/rspec/be_eq.yml 31: - 'ee/spec/features/projects/settings/merge_requests/merge_trains/enable_merge_trains_skip_train_allowed_spec.rb' app/models/project_ci_cd_setting.rb 57: validates :merge_trains_skip_train_allowed, inclusion: { in: [true, false] } db/init_structure.sql 13909: merge_trains_skip_train_allowed boolean DEFAULT false NOT NULL, doc-locale/ja-jp/api/graphql/reference/_index.md 8550:| `mergeTrainsSkipTrainAllowed` | [`Boolean`](#boolean) | マージトレインを更新せずにマージできるオプションを許可するかどうかを示します。`merge_trains_skip_train`機能フラグも有効になっているのでなければ、無視されます。 | doc-locale/ja-jp/api/projects.md 1446:| `merge_trains_skip_train_allowed` | ブール値 | いいえ | パイプラインが完了するのを待たずに、マージトレインマージリクエストをマージできるようにします。 | 1694:| `merge_trains_skip_train_allowed` | ブール値 | いいえ | パイプラインが完了するのを待たずに、マージトレインマージリクエストをマージできるようにします。 | doc-locale/ja-jp/ci/pipelines/merge_trains.md 209:- `merge_trains_skip_train`という名前の[フラグ](../../administration/feature_flags.md)を使用して、GitLab 16.5 で[導入](https://gitlab.com/gitlab-org/gitlab/-/issues/414505)されました。デフォルトでは無効になっています。 216:GitLab Self-Managedでは、デフォルトでこの機能を利用できます。機能を非表示にするには、管理者は`merge_trains_skip_train`という名前の[機能フラグを無効に](../../administration/feature_flags.md)できます。GitLab.com および GitLab Dedicated では、この機能を利用できます。 doc/api/graphql/reference/_index.md 10060:| `mergeTrainsSkipTrainAllowed` | [`Boolean`](#boolean) | Indicates whether an option is allowed to merge without refreshing the merge train. Ignored unless the `merge_trains_skip_train` feature flag is also enabled. | doc/api/openapi/openapi_v2.yaml 48061: merge_trains_skip_train_allowed: 64308: merge_trains_skip_train_allowed: 64873: merge_trains_skip_train_allowed: doc/api/openapi/openapi_v2.yaml.generated 45510: merge_trains_skip_train_allowed: 61198: merge_trains_skip_train_allowed: 61742: merge_trains_skip_train_allowed: doc/api/projects.md 1478:| `merge_trains_skip_train_allowed` | boolean | No | Allows merge train merge requests to be merged without waiting for pipelines to finish. | 1734:| `merge_trains_skip_train_allowed` | boolean | No | Allows merge train merge requests to be merged without waiting for pipelines to finish. | doc/ci/pipelines/merge_trains.md 248:- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/414505) in GitLab 16.5 [with a flag](../../administration/feature_flags/_index.md) named `merge_trains_skip_train`. Disabled by default. 250:- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/422111) in GitLab 18.5. Feature flag `merge_trains_skip_train` removed. ee/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js 57: this.mergeTrainsSkipAllowed = data.merge_trains_skip_train_allowed; ee/app/controllers/ee/projects/settings/merge_requests_controller.rb 56: attrs << %i[merge_trains_skip_train_allowed] if allow_merge_trains_params? ee/app/graphql/ee/mutations/ci/project_ci_cd_settings_update.rb 19: argument :merge_trains_skip_train_allowed, GraphQL::Types::Boolean, 46: result.merge!(args.slice(:merge_pipelines_enabled, :merge_trains_enabled, :merge_trains_skip_train_allowed)) ee/app/graphql/ee/types/ci/ci_cd_setting_type.rb 10: field :merge_trains_skip_train_allowed, 14: method: :merge_trains_skip_train_allowed?, ee/app/models/ee/project.rb 499: delegate :merge_trains_skip_train_allowed, :merge_trains_skip_train_allowed= 1327: def merge_trains_skip_train_allowed? ee/app/models/ee/project_ci_cd_setting.rb 33: def merge_trains_skip_train_allowed? 34: merge_trains_skip_train_allowed && ee/app/serializers/ee/merge_request_poll_widget_entity.rb 17: expose :merge_trains_skip_train_allowed?, as: :merge_trains_skip_train_allowed do |merge_request| 18: merge_request.target_project.merge_trains_skip_train_allowed? ee/app/services/ee/merge_requests/merge_service.rb 13: params[:skip_merge_train] && project.merge_trains_skip_train_allowed? ee/app/views/projects/settings/merge_requests/_merge_trains_settings.html.haml 17: = form.gitlab_ui_checkbox_component :merge_trains_skip_train_allowed, ee/lib/ee/api/entities/project.rb 63: expose :true, as: :merge_trains_skip_train_allowed, if: ->(project, _) { project.feature_available?(:merge_pipelines) } ee/lib/ee/api/helpers/projects_helpers.rb 50: optional :merge_trains_skip_train_allowed, type: Grape::API::Boolean, desc: 'Allow merge train merge requests to be merged without waiting for pipelines to finish.' 87: :merge_trains_skip_train_allowed, ee/lib/ee/api/projects.rb 131: attrs.delete(:merge_trains_skip_train_allowed) unless project.feature_available?(:merge_trains) ee/spec/controllers/projects/settings/merge_requests_controller_spec.rb 171: context 'when merge_trains_skip_train_allowed param is specified' do 172: let(:params) { { merge_trains_skip_train_allowed: true } } 186: expect(ci_settings.merge_trains_skip_train_allowed).to be_truthy 197: expect(ci_settings.merge_trains_skip_train_allowed).to be_falsy ee/spec/controllers/projects_controller_spec.rb 503: context 'when merge_trains_skip_train_allowed param is specified' do 504: let(:params) { { merge_trains_skip_train_allowed: true } } 517: expect(project.merge_trains_skip_train_allowed).to be_truthy 528: expect(project.merge_trains_skip_train_allowed).to be_falsy ee/spec/features/merge_request/user_merges_immediately_spec.rb 21: project.update!(merge_pipelines_enabled: true, merge_trains_enabled: true, merge_trains_skip_train_allowed: true) ee/spec/features/projects/settings/merge_requests/merge_trains/enable_merge_trains_skip_train_allowed_spec.rb 21: expect(find('#project_merge_trains_skip_train_allowed')).not_to be_checked 27: expect(find('#project_merge_trains_skip_train_allowed')).to be_checked 36: expect(project.ci_cd_settings.merge_trains_skip_train_allowed).to eq(true) ee/spec/graphql/ee/mutations/ci/project_ci_cd_settings_update_spec.rb 20: merge_trains_skip_train_allowed: false 59: context 'when merge_trains_skip_train_allowed is set to true' do 62: merge_trains_skip_train_allowed: true 67: # This column value is not the same as #merge_trains_skip_train_allowed? 69: expect(project.ci_cd_settings.merge_trains_skip_train_allowed).to be(true) ee/spec/models/ee/project_spec.rb 146: 'merge_trains_skip_train_allowed' => '' ee/spec/models/project_ci_cd_setting_spec.rb 113: describe '#merge_trains_skip_train_allowed?' do 114: subject(:result) { project.merge_trains_skip_train_allowed? } 141: merge_trains_skip_train_allowed: skip_train_allowed, ee/spec/requests/api/graphql/ci/ci_cd_setting_spec.rb 47: let(:skip_train_setting) { project.ci_cd_settings.merge_trains_skip_train_allowed? } ee/spec/requests/api/merge_requests_spec.rb 520: merge_trains_skip_train_allowed: true 531: context 'with merge_trains_skip_train disabled' do 533: stub_feature_flags(merge_trains_skip_train: false) ee/spec/serializers/ee/merge_request_poll_widget_entity_spec.rb 31: expect(entity).to include(:merge_trains_skip_train_allowed) ee/spec/services/merge_requests/merge_service_spec.rb 184: merge_trains_skip_train_allowed: true 199: project.ci_cd_settings.update!(merge_trains_skip_train_allowed: false) spec/graphql/types/ci/ci_cd_setting_type_spec.rb 19: merge_trains_skip_train_allowed merge_trains_enabled spec/requests/api/project_attributes.yml 99: - merge_trains_skip_train_allowed ```
**Currently the feature flag is `enabled` on production** It is possible that this MR will still need some changes to remove references to the feature flag in the code. At the moment the `gitlab-housekeeper` is not always capable of removing all references so you must check the diff and pipeline failures to confirm if there are any issues. It is the responsibility of ~"group::pipeline execution" to push those changes to this branch. **Note:** If you do not want to remove this feature flag at this time, you can add an `intended_to_rollout_by_date` attribute in the feature flag YAML file to prevent automated removal. ## TODO for the reviewers before merging this MR - [ ] See the status of the rollout by checking https://gitlab.com/gitlab-org/gitlab/-/issues/422111, https://gitlab.com/gitlab-com/gl-infra/feature-flag-log/-/issues/?search=merge_trains_skip_train&sort=created_date&state=all&label_name%5B%5D=host%3A%3Agitlab.com - [ ] Verify the feature flag status via chatops by running `/chatops run feature get merge_trains_skip_train`. - [ ] [Search for references to `MergeTrainsSkipTrain` in frontend part of code](https://gitlab.com/search?project_id=278964&scope=blobs&search=MergeTrainsSkipTrain®ex=false) - [ ] [Search for references to `merge_trains_skip_train` in code](https://gitlab.com/search?project_id=278964&scope=blobs&search=merge_trains_skip_train®ex=false) - [ ] Check if we need to remove any Gem or other related code by looking at the changes in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129422 This change was generated by [gitlab-housekeeper](https://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper) in [CI](https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/jobs/11202603532) using the `Keeps::DeleteOldFeatureFlags` keep. To provide feedback on your experience with `gitlab-housekeeper` please create an issue with the label ~"GitLab Housekeeper" and consider pinging the author of this keep. Changelog: removed --- .../components/states/ready_to_merge.vue | 2 +- .../development/merge_trains_skip_train.yml | 8 ----- doc/ci/pipelines/merge_trains.md | 9 +---- .../ee/projects/merge_requests_controller.rb | 1 - ee/app/controllers/ee/projects_controller.rb | 1 - .../ci/project_ci_cd_settings_update.rb | 9 ++--- ee/app/models/ee/project.rb | 2 +- ee/app/models/ee/project_ci_cd_setting.rb | 3 +- .../_merge_trains_settings.html.haml | 9 +++-- ee/lib/ee/api/entities/project.rb | 2 +- .../user_merges_immediately_spec.rb | 35 +------------------ ...le_merge_trains_skip_train_allowed_spec.rb | 10 ------ .../states/mr_widget_ready_to_merge_spec.js | 31 +++------------- .../merge_requests/merge_service_spec.rb | 12 ------- spec/models/project_spec.rb | 1 - 15 files changed, 16 insertions(+), 119 deletions(-) delete mode 100644 config/feature_flags/development/merge_trains_skip_train.yml diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue index 3ff2488d8787e4..1dc7bf37119b0d 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue @@ -356,7 +356,7 @@ export default { }; }, isSkipMergeTrainAvailable() { - return this.mergeTrainsSkipAllowed && this.glFeatures.mergeTrainsSkipTrain; + return this.mergeTrainsSkipAllowed; }, displaySkipMergeTrainOptions() { return this.shouldDisplayMergeImmediatelyDropdownOptions && this.isSkipMergeTrainAvailable; diff --git a/config/feature_flags/development/merge_trains_skip_train.yml b/config/feature_flags/development/merge_trains_skip_train.yml deleted file mode 100644 index b1e215c69f1325..00000000000000 --- a/config/feature_flags/development/merge_trains_skip_train.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: merge_trains_skip_train -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129422 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/422111 -milestone: '16.4' -type: development -group: group::pipeline execution -default_enabled: true diff --git a/doc/ci/pipelines/merge_trains.md b/doc/ci/pipelines/merge_trains.md index 130ee137cb7a81..dbc9622c8cefcc 100644 --- a/doc/ci/pipelines/merge_trains.md +++ b/doc/ci/pipelines/merge_trains.md @@ -247,17 +247,10 @@ merge method and the source branch is behind the target branch. See [issue 43407 - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/414505) in GitLab 16.5 [with a flag](../../administration/feature_flags/_index.md) named `merge_trains_skip_train`. Disabled by default. - [Enabled](https://gitlab.com/gitlab-org/gitlab/-/issues/422111) as an [experiment feature](../../policy/development_stages_support.md) in GitLab 16.10. +- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/422111) in GitLab 18.5. Feature flag `merge_trains_skip_train` removed. {{< /history >}} -{{< alert type="flag" >}} - -On GitLab Self-Managed, by default this feature is available. To hide the feature, -an administrator can [disable the feature flag](../../administration/feature_flags/_index.md) -named `merge_trains_skip_train`. On GitLab.com and GitLab Dedicated, this feature is available. - -{{< /alert >}} - You can allow merge requests to be merged without completely restarting a running merge train. Use this feature to quickly merge changes that can safely skip the pipeline, for example minor documentation updates. diff --git a/ee/app/controllers/ee/projects/merge_requests_controller.rb b/ee/app/controllers/ee/projects/merge_requests_controller.rb index 3b7f5aedfd4f6c..4e295fcf8eb1c2 100644 --- a/ee/app/controllers/ee/projects/merge_requests_controller.rb +++ b/ee/app/controllers/ee/projects/merge_requests_controller.rb @@ -10,7 +10,6 @@ module MergeRequestsController include GeoInstrumentation before_action only: [:show] do - push_frontend_feature_flag(:merge_trains_skip_train, @project) push_frontend_feature_flag(:vulnerability_partial_scans, @project) push_frontend_ability(ability: :resolve_vulnerability_with_ai, resource: @project, user: current_user) push_frontend_ability(ability: :measure_comment_temperature, resource: merge_request, user: current_user) diff --git a/ee/app/controllers/ee/projects_controller.rb b/ee/app/controllers/ee/projects_controller.rb index d1fb6251ead46b..35bcb6c4cfe4ea 100644 --- a/ee/app/controllers/ee/projects_controller.rb +++ b/ee/app/controllers/ee/projects_controller.rb @@ -100,7 +100,6 @@ def project_params_ee attrs << :merge_pipelines_enabled if allow_merge_pipelines_params? attrs << :merge_trains_enabled if allow_merge_trains_params? - attrs << :merge_trains_skip_train_allowed if allow_merge_trains_params? attrs += merge_request_rules_params diff --git a/ee/app/graphql/ee/mutations/ci/project_ci_cd_settings_update.rb b/ee/app/graphql/ee/mutations/ci/project_ci_cd_settings_update.rb index 179f42d5bbf5f7..533b8929529687 100644 --- a/ee/app/graphql/ee/mutations/ci/project_ci_cd_settings_update.rb +++ b/ee/app/graphql/ee/mutations/ci/project_ci_cd_settings_update.rb @@ -18,8 +18,7 @@ module ProjectCiCdSettingsUpdate argument :merge_trains_skip_train_allowed, GraphQL::Types::Boolean, required: false, - description: 'Indicates whether an option is allowed to merge without refreshing the merge train. ' \ - 'Ignored unless the `merge_trains_skip_train` feature flag is also enabled.' + description: 'Indicates whether an option is allowed to merge without refreshing the merge train.' end override :resolve @@ -44,11 +43,7 @@ def resolve(**args) override :project_update_params def project_update_params(project, **args) result = super - result.merge!(args.slice(:merge_pipelines_enabled, :merge_trains_enabled)) - - if ::Feature.enabled?(:merge_trains_skip_train, project) - result.merge!(args.slice(:merge_trains_skip_train_allowed)) - end + result.merge!(args.slice(:merge_pipelines_enabled, :merge_trains_enabled, :merge_trains_skip_train_allowed)) result.compact end diff --git a/ee/app/models/ee/project.rb b/ee/app/models/ee/project.rb index 89f71aecdd2433..369bca87af01c9 100644 --- a/ee/app/models/ee/project.rb +++ b/ee/app/models/ee/project.rb @@ -1327,7 +1327,7 @@ def merge_trains_enabled? def merge_trains_skip_train_allowed? return false unless ci_cd_settings - ci_cd_settings.merge_trains_skip_train_allowed? + true end def auto_rollback_enabled? diff --git a/ee/app/models/ee/project_ci_cd_setting.rb b/ee/app/models/ee/project_ci_cd_setting.rb index bc35020a3f099f..868fc3032ea33b 100644 --- a/ee/app/models/ee/project_ci_cd_setting.rb +++ b/ee/app/models/ee/project_ci_cd_setting.rb @@ -33,8 +33,7 @@ def auto_rollback_enabled? def merge_trains_skip_train_allowed? merge_trains_skip_train_allowed && merge_trains_enabled? && - !project.ff_merge_must_be_possible? && # Not yet supported, see https://gitlab.com/gitlab-org/gitlab/-/issues/429009 - ::Feature.enabled?(:merge_trains_skip_train, project) + !project.ff_merge_must_be_possible? # Not yet supported, see https://gitlab.com/gitlab-org/gitlab/-/issues/429009 end end end diff --git a/ee/app/views/projects/settings/merge_requests/_merge_trains_settings.html.haml b/ee/app/views/projects/settings/merge_requests/_merge_trains_settings.html.haml index 7c4090c4740645..376d83f455de62 100644 --- a/ee/app/views/projects/settings/merge_requests/_merge_trains_settings.html.haml +++ b/ee/app/views/projects/settings/merge_requests/_merge_trains_settings.html.haml @@ -14,8 +14,7 @@ s_('ProjectSettings|Enable merge trains'), help_text: s_('ProjectSettings|Merge requests approved for merge are queued, and pipelines validate the combined results of the source and target branches before merge. %{link_start}What are merge trains?%{link_end}').html_safe % { link_start: merge_trains_help_link_start, link_end: ''.html_safe }, checkbox_options: { class: 'js-merge-options-merge-trains', data: { testid: 'merge-trains-checkbox' } } - - if Feature.enabled?(:merge_trains_skip_train) - = form.gitlab_ui_checkbox_component :merge_trains_skip_train_allowed, - s_('ProjectSettings|Allow skipping the merge train'), - help_text: full_skip_trains_help_test, - checkbox_options: { class: 'js-merge-options-merge-trains-skip-train-allowed' } + = form.gitlab_ui_checkbox_component :merge_trains_skip_train_allowed, + s_('ProjectSettings|Allow skipping the merge train'), + help_text: full_skip_trains_help_test, + checkbox_options: { class: 'js-merge-options-merge-trains-skip-train-allowed' } diff --git a/ee/lib/ee/api/entities/project.rb b/ee/lib/ee/api/entities/project.rb index 0d996d02705dec..5a5f655daedc05 100644 --- a/ee/lib/ee/api/entities/project.rb +++ b/ee/lib/ee/api/entities/project.rb @@ -60,7 +60,7 @@ def preload_relation(projects_relation, options = {}) } expose :merge_pipelines_enabled?, as: :merge_pipelines_enabled, if: ->(project, _) { project.feature_available?(:merge_pipelines) } expose :merge_trains_enabled?, as: :merge_trains_enabled, if: ->(project, _) { project.feature_available?(:merge_pipelines) } - expose :merge_trains_skip_train_allowed?, as: :merge_trains_skip_train_allowed, if: ->(project, _) { project.feature_available?(:merge_pipelines) } + expose :true, as: :merge_trains_skip_train_allowed, if: ->(project, _) { project.feature_available?(:merge_pipelines) } expose :only_allow_merge_if_all_status_checks_passed, if: ->(project, _) { project.feature_available?(:external_status_checks) } expose :allow_pipeline_trigger_approve_deployment, documentation: { type: 'boolean' }, if: ->(project, _) { project.feature_available?(:protected_environments) } expose :prevent_merge_without_jira_issue, if: ->(project, _) { project.feature_available?(:jira_issue_association_enforcement) } diff --git a/ee/spec/features/merge_request/user_merges_immediately_spec.rb b/ee/spec/features/merge_request/user_merges_immediately_spec.rb index 5ab58b5a42529c..be40796f30098b 100644 --- a/ee/spec/features/merge_request/user_merges_immediately_spec.rb +++ b/ee/spec/features/merge_request/user_merges_immediately_spec.rb @@ -50,42 +50,9 @@ def merge_from_warning_dialog( end end - context 'when the merge request is on the merge train and the merge_trains_skip_train feature flag is disabled' do + context 'when the merge request is on the merge train' do before do stub_licensed_features(merge_pipelines: true, merge_trains: true) - stub_feature_flags(merge_trains_skip_train: false) - stub_ci_pipeline_yaml_file(YAML.dump(ci_yaml)) - - sign_in(user) - visit project_merge_request_path(project, merge_request) - wait_for_requests - end - - it 'shows a warning dialog and does nothing if the user selects "Cancel"' do - Sidekiq::Testing.fake! do - open_warning_dialog - - find(':focus').send_keys :enter - - expect(merge_button).to have_content('Merge') - end - end - - it 'shows a warning dialog and merges immediately after the user confirms' do - Sidekiq::Testing.fake! do - open_warning_dialog - - click_button 'Merge immediately' - - expect(find_by_testid('merging-state')).to have_content('Merging!') - end - end - end - - context 'when the merge request is on the merge train and the merge_trains_skip_train feature flag is enabled' do - before do - stub_licensed_features(merge_pipelines: true, merge_trains: true) - stub_feature_flags(merge_trains_skip_train: true) stub_ci_pipeline_yaml_file(YAML.dump(ci_yaml)) sign_in(user) diff --git a/ee/spec/features/projects/settings/merge_requests/merge_trains/enable_merge_trains_skip_train_allowed_spec.rb b/ee/spec/features/projects/settings/merge_requests/merge_trains/enable_merge_trains_skip_train_allowed_spec.rb index f716c40aaebe33..a05eec77e864a3 100644 --- a/ee/spec/features/projects/settings/merge_requests/merge_trains/enable_merge_trains_skip_train_allowed_spec.rb +++ b/ee/spec/features/projects/settings/merge_requests/merge_trains/enable_merge_trains_skip_train_allowed_spec.rb @@ -36,14 +36,4 @@ expect(project.ci_cd_settings.merge_trains_skip_train_allowed).to eq(true) end end - - context 'when the feature flag is disabled' do - before do - stub_feature_flags(merge_trains_skip_train: false) - end - - it 'does not show the checkbox' do - expect(page).not_to have_checked_field('#project_merge_trains_skip_train_allowed') - end - end end diff --git a/ee/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js b/ee/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js index 66d4b64b3bcddf..5c7dce941e24c4 100644 --- a/ee/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js +++ b/ee/spec/frontend/vue_merge_request_widget/components/states/mr_widget_ready_to_merge_spec.js @@ -60,7 +60,6 @@ describe('ReadyToMerge', () => { mrUpdates = {}, mountFn = shallowMountExtended, data = {}, - mergeTrainsSkipTrainFF = false, // eslint-disable-next-line max-params ) => { wrapper = mountFn(ReadyToMerge, { @@ -88,11 +87,6 @@ describe('ReadyToMerge', () => { GlDisclosureDropdown, GlDisclosureDropdownItem, }, - provide: { - glFeatures: { - mergeTrainsSkipTrain: mergeTrainsSkipTrainFF, - }, - }, }); }; @@ -166,7 +160,7 @@ describe('ReadyToMerge', () => { ); }); - it('should display the new merge dropdown options for merge trains when the skip trains feature flag is enabled', () => { + it('should display the merge dropdown options for merge trains', () => { createComponent( { availableAutoMergeStrategies: [MT_MERGE_STRATEGY], @@ -175,8 +169,6 @@ describe('ReadyToMerge', () => { mergeTrainsSkipAllowed: true, }, shallowMountExtended, - {}, - true, ); expect(findMergeTrainMergeNowRestartTrainButton().exists()).toBe(true); @@ -263,7 +255,7 @@ describe('ReadyToMerge', () => { expect(mr.transitionStateMachine).toHaveBeenCalled(); }); - it('starts to merge a merge request when restarting a merge train with the new confirmation dialog', async () => { + it('starts to merge a merge request when restarting a merge train with the confirmation dialog', async () => { createComponent( { availableAutoMergeStrategies: [MT_MERGE_STRATEGY], @@ -275,8 +267,6 @@ describe('ReadyToMerge', () => { mergeTrainsSkipAllowed: true, }, shallowMountExtended, - {}, - true, ); findMergeTrainRestartTrainConfirmationDialog().vm.$emit('show'); @@ -293,27 +283,16 @@ describe('ReadyToMerge', () => { expect(mr.transitionStateMachine).toHaveBeenCalledWith({ transition: 'start-merge' }); }); - it('does not contain the new confirmation dialog for merging merge trains immediately when the mergeTrainSkipTrain feature flag is disabled', () => { - createComponent({ - availableAutoMergeStrategies: [MT_MERGE_STRATEGY], - mergeTrainsSkipAllowed: true, - }); - - expect(findMergeTrainRestartTrainConfirmationDialog().exists()).toBe(false); - }); - - it('contains the new confirmation dialog for merging merge trains immediately when the mergeTrainSkipTrain feature flag is enabled', () => { + it('contains the confirmation dialog for merging merge trains immediately', () => { createComponent( { availableAutoMergeStrategies: [MT_MERGE_STRATEGY], mergeTrainsSkipAllowed: true }, shallowMountExtended, - {}, - true, ); expect(findMergeTrainRestartTrainConfirmationDialog().exists()).toBe(true); }); - it('should not ask for confirmation in non-merge train scenarios with the new confirmation dialog', async () => { + it('should not ask for confirmation in non-merge train scenarios with the confirmation dialog', async () => { createComponent( { headPipeline: { id: 'gid://gitlab/Pipeline/1', path: 'path/to/pipeline', active: true }, @@ -321,8 +300,6 @@ describe('ReadyToMerge', () => { mergeTrainsSkipAllowed: true, }, shallowMountExtended, - {}, - true, ); await clickMergeImmediately(); diff --git a/ee/spec/services/merge_requests/merge_service_spec.rb b/ee/spec/services/merge_requests/merge_service_spec.rb index 114e6fec324967..ef029e6aba4467 100644 --- a/ee/spec/services/merge_requests/merge_service_spec.rb +++ b/ee/spec/services/merge_requests/merge_service_spec.rb @@ -205,18 +205,6 @@ expect(train.sha_exists_in_history?(merge_request.merge_commit_sha)).to be_falsy end end - - context 'when the merge_train_skip_trains feature flag is disabled' do - before do - stub_feature_flags(merge_trains_skip_train: false) - end - - it 'does not create any new Car record or add to the train revision history' do - expect { subject }.not_to change { MergeTrains::Car.count } - expect(merge_request).to be_merged - expect(train.sha_exists_in_history?(merge_request.merge_commit_sha)).to be_falsy - end - end end end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index c81cd117d19716..3b573b3b34df40 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1749,7 +1749,6 @@ merge_pipelines_enabled merge_trains_enabled auto_rollback_enabled - merge_trains_skip_train_allowed restrict_pipeline_cancellation_role ] end -- GitLab