Roll out merge_trains_use_train_ref_for_standard_merges feature flag

Summary

Roll out the feature currently behind the merge_trains_use_train_ref_for_standard_merges feature flag.

  • DRI: @hfyngvason
  • Team Slack channel: #g_pipeline-execution

Note

Process and guidance live in the docs — this issue is just the commands and a place to track the rollout. "Rolling out" means incrementally enabling the flag on GitLab.com to validate stability — it is not the same as releasing the feature, which happens when the flag is removed. Feature flag controls · Feature flag lifecycle

Related merge request: !225131 (merged)

What could go wrong?

  • Standard merge commit merge trains could update the target branch to an unexpected SHA.
  • A merge train car could incorrectly reuse a train ref when it should create a new merge commit.
  • Post-merge pipelines could still be created redundantly, reducing the intended benefit.
  • Artifact reuse or downstream automation that assumes a new post-merge SHA could behave unexpectedly.

Rollout

Run all production /chatops in #production and cross-post the results to #g_pipeline-execution. Background: incremental rollout process, feature actors.

Non-production

/chatops gitlab run feature set merge_trains_use_train_ref_for_standard_merges 50 --actors --dev --pre --staging --staging-ref
/chatops gitlab run feature set merge_trains_use_train_ref_for_standard_merges true --dev --pre --staging --staging-ref

Production — percentage rollout (wait ≥15 min between steps, watch dashboards):

/chatops gitlab run feature set merge_trains_use_train_ref_for_standard_merges <percentage> --actors

Or target specific actors instead:

/chatops gitlab run feature set --project=gitlab-org/gitlab,gitlab-org/gitlab-foss merge_trains_use_train_ref_for_standard_merges true
/chatops gitlab run feature set --group=gitlab-org,gitlab-com merge_trains_use_train_ref_for_standard_merges true
/chatops gitlab run feature set --user=hfyngvason merge_trains_use_train_ref_for_standard_merges true

Before global rollout

Confirm the relevant gotchas before going to 100% — see enabling a feature for GitLab.com:

Cleanup

Remove the flag once deemed stable — see cleaning up. Track it here, or open a follow-up Feature Flag Cleanup issue. Remove the flag and its YAML definition from the codebase, then:

/chatops gitlab run release check https://gitlab.com/gitlab-org/gitlab/-/merge_requests/225131 19.1
/chatops gitlab run feature delete merge_trains_use_train_ref_for_standard_merges --dev --pre --staging --staging-ref --production

Rollback

/chatops gitlab run feature set merge_trains_use_train_ref_for_standard_merges false                                         # production
/chatops gitlab run feature set merge_trains_use_train_ref_for_standard_merges false --dev --pre --staging --staging-ref     # non-production
/chatops gitlab run feature delete merge_trains_use_train_ref_for_standard_merges --dev --pre --staging --staging-ref --production  # remove entirely
Edited by 🤖 GitLab Bot 🤖