This document describes branching task regarding file updates in 10gen/mongo
repository that should be done on a new branch after a branch cut.
To save time during the branch cut these branching changes could be done beforehand, but not too early to avoid extra file conflicts, and then rebased on a new vX.Y
branch.
Create a working branch from master
or from a new vX.Y
branch if it already exists:
git checkout master
git pull
git checkout -b vX.Y-branching-task
IMPORTANT! All of these changes should be a separate commit, but they should be pushed together in the same commit-queue task.
The reason they should be pushed as separate commits is in the case of needing to revert one aspect of this entire task.
copy.bara.sky
and copy.bara.staging.sky
- Update "master" branch references with a new branch name
-
etc/evergreen_nightly.yml
will be used as YAML configuration for a newmongodb-mongo-vX.Y
evergreen project-
Copy over commit-queue aliases and patch aliases from
etc/evergreen.yml
-
Update "include" section - comment out or uncomment file includes as instructions in the comments suggest.
This will move some build variants from
etc/evergreen.yml
to continue running on a new branch project. More information about build variants after branching is here.
-
-
burn_in_tags
configuration- Remove build variant names from "burn_in_tag_include_build_variants" expansion that are not included in
etc/evergreen_nightly.yml
- Remove build variant names from "burn_in_tag_include_build_variants" expansion that are not included in
-
Remove all-feature-flags configuration from build variants
-
Build variant names:
enterprise-windows-all-feature-flags-required
enterprise-windows-all-feature-flags-non-essential
rhel8-debug-aubsan-lite-all-feature-flags-required
-
Actions:
- Remove
all-feature-flags
from their names and display names - Remove
--runAllFeatureFlagTests
fromtest_flags
expansion - Replace
!.incompatible_all_feature_flags
tag selectors with!.requires_all_feature_flags
- Remove
-
-
Promote build variants from "suggested" to "required"
-
Build variant names:
enterprise-amazon-linux2-arm64
-
Actions:
- Replace "*" with "!" in their display names
- Replace "suggested" variant tag with "required"
-
-
etc/system_perf.yml
will be used as YAML configuration for a newsys-perf-X.Y
evergreen project- Ensure that DSI and Genny have been updated with new branches
- Remove
evergreen/system_perf/master/master_variants.yml
from "include" section - Update
evergreen/system_perf/master/variants.yml
toevergreen/system_perf/X.Y/variants.yml
in the "include" section - Update
evergreen/system_perf/master/genny_tasks.yml
toevergreen/system_perf/X.Y/genny_tasks.yml
in the "include" section - Update the evergreen project variable
compile_project
in the new sys-perf-X.X evergreen project to point to the new mongodb-mongo-X branch
-
buildscripts/generate_version_expansions.py
- Update suffixes from "latest" to "vX.Y-latest", where
vX.Y
is a new branch name
- Update suffixes from "latest" to "vX.Y-latest", where
In case working branch was created from master
branch, rebase it on a new vX.Y
branch and fix file conflicts if any.
Schedule required patch on a new mongodb-mongo-vX.Y
project:
evergreen patch -p mongodb-mongo-vX.Y -a required
If patch results reveal that some steps are missing or outdated in this file, make sure to update the branching documentation on a "master" branch accordingly.
All the commits should be pushed together in the same commit-queue task:
evergreen commit-queue merge -p mongodb-mongo-vX.Y