5 This page documents the current branch cutting tasks that are needed
6 to be performed at various milestones and which team has the necessary
7 permissions in order to perform the necessary task in Parentheses.
15 #. Export ${NEXT_RELEASE} and ${CURR_RELEASE} with new and current release names.
16 **(releng/builder committers)**
20 export NEXT_RELEASE="Nitrogen"
21 export CURR_RELEASE="Carbon"
23 #. Change JJB yaml files from `stream:carbon` branch pointer from `master -> stable/${CURR_RELEASE,,}`
24 and create new `stream: ${NEXT_RELEASE,,}` branch pointer to branch master. This
25 requires handling two different file formats interspersed with in autorelease projects.
26 **(releng/builder committers)**
41 - '{project-name}-verify-{stream}-{maven}-{jdks}'
45 - The above manual process of updating individual files is automated with the script.
46 **(releng/builder committers)**
50 cd builder/scripts/branch_cut
51 ./branch_cutter.sh -n $NEXT_RELEASE -c $CURR_RELEASE
53 #. Review and submit the changes to releng/builder project. **(releng/builder committers)**
58 #. Block submit permissions for registered users and elevate RE's committer rights on gerrit.
61 .. figure:: images/gerrit-update-committer-rights.png
65 Enable **Exclusive** checkbox for the submit button to override any existing permissions.
67 #. Enable create reference permissions on gerrit for RE's to submit .gitreview patches.
70 .. figure:: images/gerrit-update-create-reference.png
74 Enable Exclusive checkbox override any existing permissions.
76 #. Start the branch cut job or use the manual steps below for branch cutting autorelease. **(Release Engineering Team)**
77 #. Start the version bump job or use the manual steps below for version bump autorelease. **(Release Engineering Team)**
78 #. Merge all .gitreview patches submitted though the job or manually. **(Release Engineering Team)**
79 #. Remove create reference permissions set on gerrit for RE's. **(Helpdesk)**
80 #. Merge all version bump patches in the order of dependencies. **(Release Engineering Team)**
81 #. Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit. **(Helpdesk)**
82 #. Notify release list on branch cutting work completion. **(Release Engineering Team)**
85 Branch cut job (Autorelease)
86 ----------------------------
87 Branch cutting can be performed either through the job or manually.
89 #. Start the autorelease-branch-cut job
90 **(Release Engineering Team)**
92 Manual steps to branch cut (Autorelease)
93 ----------------------------------------
95 #. Setup releng/autorelease repository.
96 **(Release Engineering Team)**
101 git submodule foreach 'git review -s'
103 git submodule foreach 'git checkout master'
105 git submodule foreach 'git pull --rebase'
107 #. Enable create reference permissions on gerrit for RE's to submit .gitreview patches.
110 .. figure:: images/gerrit-update-create-reference.png
114 Enable Exclusive check-box override any existing permissions.
116 #. Create stable/${CURR_RELEASE} branches based on HEAD master.
117 **(Release Engineering Team)**
121 git checkout -b stable/${CURR_RELEASE,,} origin/master
122 git submodule foreach 'git checkout -b stable/${CURR_RELEASE,,} origin/master'
123 git push gerrit stable/${CURR_RELEASE,,}
124 git submodule foreach 'git push gerrit stable/${CURR_RELEASE,,}'
126 #. Contribute .gitreview updates to stable/${CURR_RELEASE,,}.
127 **(Release Engineering Team)**
131 git submodule foreach sed -i -e "s#defaultbranch=master#defaultbranch=stable/${CURR_RELEASE,,}#" .gitreview
132 git submodule foreach git commit -asm "Update .gitreview to stable/${CURR_RELEASE,,}"
133 git submodule foreach 'git review -t ${CURR_RELEASE,,}-branch-cut'
134 sed -i -e "s#defaultbranch=master#defaultbranch=stable/${CURR_RELEASE,,}#" .gitreview
136 git commit -s -v -m "Update .gitreview to stable/${CURR_RELEASE,,}"
137 git review -t ${CURR_RELEASE,,}-branch-cut
139 Version bump job (Autorelease)
140 ------------------------------
141 Version bump can performed either through the job or manually.
143 #. Start the autorelease-version-bump-${NEXT_RELEASE,,} job
144 **(Release Engineering Team)**
148 Enabled BRANCH_CUT and disable DRY_RUN to run the job for branch cut
149 work-flow. The version bump job can be run only on the master branch.
151 Manual steps to version bump (Autorelease)
152 ------------------------------------------
154 #. Version bump master by x.(y+1).z. **(Release Engineering Team)**
159 git submodule foreach 'git checkout master'
161 lftools version bump ${CURR_RELEASE}
163 #. Make sure the version bump changes does not modify anything under scripts or pom.xml.
164 **(Release Engineering Team)**
168 git checkout pom.xml scripts/
170 #. Push version bump master changes to gerrit. **(Release Engineering Team)**
174 git submodule foreach 'git commit -asm "Bump versions by x.(y+1).z for next dev cycle"'
175 git submodule foreach 'git review -t ${CURR_RELEASE,,}-branch-cut'