5 This page documents the current branch cutting tasks that are needed
6 to be performed at RC0 and which team has the necessary permissions
7 in order to perform the necessary task in Parentheses.
12 #. Export ``${NEXT_RELEASE}`` and ``${CURR_RELEASE}`` with new and current release names.
13 **(releng/builder committers)**
17 export CURR_RELEASE="Silicon"
18 export NEXT_RELEASE="Phosphorus"
20 #. Run the script ``cut-branch-jobs.py`` to generate next release jobs.
21 **(releng/builder committers)**
25 python scripts/cut-branch-jobs.py $CURR_RELEASE $NEXT_RELEASE jjb/
26 pre-commit run --all-files
28 .. note:: ``pre-commit`` is necessary to adjust the formatting of the generated YAML.
30 This script changes JJB yaml files to insert the next release configuration
31 by updating streams and branches where relevant. For example if ``master``
32 is currently Silicon, the result of this script will update config blocks
43 branch: stable/silicon
45 Insert project new blocks:
52 - '{project-name}-verify-{stream}-{maven}-{jdks}'
59 - '{project-name}-verify-{stream}-{maven}-{jdks}'
61 branch: stable/silicon
63 #. Review and submit the changes to releng/builder project. **(releng/builder committers)**
68 #. Block submit permissions for registered users and elevate RE's committer rights on gerrit.
71 .. figure:: images/gerrit-update-committer-rights.png
75 Enable **Exclusive** checkbox for the submit button to override any existing permissions.
77 #. Enable create reference permissions on gerrit for RE's to submit .gitreview patches.
80 .. figure:: images/gerrit-update-create-reference.png
84 Enable Exclusive checkbox override any existing permissions.
86 #. Start the branch cut job or use the manual steps below for branch cutting autorelease. **(Release Engineering Team)**
87 #. Start the version bump job or use the manual steps below for version bump autorelease. **(Release Engineering Team)**
88 #. Merge all .gitreview patches submitted though the job or manually. **(Release Engineering Team)**
89 #. Remove create reference permissions set on gerrit for RE's. **(Helpdesk)**
90 #. Merge all version bump patches in the order of dependencies. **(Release Engineering Team)**
91 #. Re-enable submit permissions for registered users and disable elevated RE committer rights on gerrit. **(Helpdesk)**
92 #. Notify release list on branch cutting work completion. **(Release Engineering Team)**
95 Branch cut job (Autorelease)
96 ----------------------------
97 Branch cutting can be performed either through the job or manually.
99 #. Start the autorelease-branch-cut job
100 **(Release Engineering Team)**
102 Manual steps to branch cut (Autorelease)
103 ----------------------------------------
105 #. Setup releng/autorelease repository.
106 **(Release Engineering Team)**
111 git submodule foreach 'git review -s'
113 git submodule foreach 'git checkout master'
115 git submodule foreach 'git pull --rebase'
117 #. Enable create reference permissions on gerrit for RE's to submit .gitreview patches.
120 .. figure:: images/gerrit-update-create-reference.png
124 Enable Exclusive check-box override any existing permissions.
126 #. Create stable/${CURR_RELEASE} branches based on HEAD master.
127 **(Release Engineering Team)**
131 git checkout -b stable/${CURR_RELEASE,,} origin/master
132 git submodule foreach 'git checkout -b stable/${CURR_RELEASE,,} origin/master'
133 git push gerrit stable/${CURR_RELEASE,,}
134 git submodule foreach 'git push gerrit stable/${CURR_RELEASE,,}'
136 #. Contribute .gitreview updates to stable/${CURR_RELEASE,,}.
137 **(Release Engineering Team)**
141 git submodule foreach sed -i -e "s#defaultbranch=master#defaultbranch=stable/${CURR_RELEASE,,}#" .gitreview
142 git submodule foreach git commit -asm "Update .gitreview to stable/${CURR_RELEASE,,}"
143 git submodule foreach 'git review -t ${CURR_RELEASE,,}-branch-cut'
144 sed -i -e "s#defaultbranch=master#defaultbranch=stable/${CURR_RELEASE,,}#" .gitreview
146 git commit -s -v -m "Update .gitreview to stable/${CURR_RELEASE,,}"
147 git review -t ${CURR_RELEASE,,}-branch-cut
149 Version bump job (Autorelease)
150 ------------------------------
151 Version bump can performed either through the job or manually.
153 #. Start the autorelease-version-bump-${NEXT_RELEASE,,} job
154 **(Release Engineering Team)**
158 Enabled BRANCH_CUT and disable DRY_RUN to run the job for branch cut
159 work-flow. The version bump job can be run only on the master branch.
161 Manual steps to version bump (Autorelease)
162 ------------------------------------------
164 #. Version bump master by x.(y+1).z. **(Release Engineering Team)**
169 git submodule foreach 'git checkout master'
171 lftools version bump ${CURR_RELEASE}
173 #. Make sure the version bump changes does not modify anything under scripts or pom.xml.
174 **(Release Engineering Team)**
178 git checkout pom.xml scripts/
180 #. Push version bump master changes to gerrit. **(Release Engineering Team)**
184 git submodule foreach 'git commit -asm "Bump versions by x.(y+1).z for next dev cycle"'
185 git submodule foreach 'git review -t ${CURR_RELEASE,,}-branch-cut'
187 #. Merge the patches in order according to the merge-order.log file found
188 in autorelease jobs. **(Release Engineering Team)**
192 The version bump patches can be merged more quickly by performing a local
193 build with ``mvn clean deploy -DskipTests`` to prime Nexus with the new
196 Documentation post branch tasks
197 -------------------------------
199 #. Git remove all files/directories from the ``docs/release-notes/*`` directory.
200 **(Release Engineering Team)**
205 git rm -rf docs/release-notes/<project file and/or folder>
206 git commit -sm "Reset release notes for next dev cycle"