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-refProduction — percentage rollout (wait ≥15 min between steps, watch dashboards):
/chatops gitlab run feature set merge_trains_use_train_ref_for_standard_merges <percentage> --actorsOr 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 trueBefore global rollout
Confirm the relevant gotchas before going to 100% — see enabling a feature for GitLab.com:
- Docs + version history updated
- Breaking changes announced, if any
- Change management issue opened, if required
- External API consumers handled with a fail-open mechanism, if applicable
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 --productionRollback
/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