Difference between revisions of "VPP/CommitterTasks/PullThrottleBranch"
(update message example links) |
(Add my reflections on making the RC1 branch) |
||
Line 8: | Line 8: | ||
== Pulling a VPP Throttle Branch == | == Pulling a VPP Throttle Branch == | ||
− | 3. | + | '''NOTE''': Steps 3 and 4 can be done any time prior to RC1 branch day. At the very least, discuss the requirements with the individuals ahead of time to set the correct expectations. |
− | + | 3. Request LF Admin (via fd.io helpdesk) create Nexus repositories | |
− | + | Have LF admin staff create in nexus new repositories of the form "<code>fd.io.${branchpart}.${distropart}</code>" where ''branchpart'' is of the form ''stable.YYMM'' (example ''stable.1804'') and the ''distropart'' is one of the supported distributions. | |
+ | |||
+ | At time of writing, we currently support the <code>ubuntu.xenial.main</code>, <code>centos7</code> and <code>opensuse</code> distributions. | ||
+ | |||
+ | For example: | ||
+ | |||
+ | <nowiki> | ||
+ | Hello fd.io helpdesk! | ||
+ | |||
+ | Could you create the Nexus repositories required for the VPP 18.04 release, please? | ||
+ | |||
+ | Per https://wiki.fd.io/view/VPP/CommitterTasks/PullThrottleBranch these should be named: | ||
+ | |||
+ | fd.io.stable.1804.ubuntu.xenial.main | ||
+ | fd.io.stable.1804.centos7 | ||
+ | fd.io.stable.1804.opensuse | ||
+ | |||
+ | Note that the Centos repository should be setup as a Yum repository, to enable the task that generates the index files. | ||
+ | |||
+ | Thanks, | ||
+ | <name></nowiki> | ||
+ | |||
+ | '''NOTE''': In the message to the helpdesk we indicate that the Centos repository is also a Yum repository and needs the indexing task setup. If this is not done then the Centos merge job will fail with a message in the console output that Yum could not retrieve that index. | ||
4. Request Ed Warnicke create the package cloud repos. | 4. Request Ed Warnicke create the package cloud repos. | ||
Line 18: | Line 40: | ||
Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release. | Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release. | ||
− | NOTE: If these do not exist or the permissions for them are wrong, then the merge jobs will fail after uploading build artifacts to nexus.fd.io | + | '''NOTE''': If these do not exist or the permissions for them are wrong, then the merge jobs will fail after uploading build artifacts to nexus.fd.io |
− | 5. '''Jenkins''': In ci-management | + | 5. '''Jenkins''': In the ci-management Git repo, edit <code>jjb/vpp/vpp.yaml</code>: |
:a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49 | :a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49 | ||
− | ::add a new | + | ::add a new 'stream' for your new ''YYMM''. Example for ''stable/1801'': |
- '1801': | - '1801': | ||
branch: 'stable/1801’' | branch: 'stable/1801’' | ||
Line 29: | Line 51: | ||
:b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87 | :b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87 | ||
− | ::likewise add a new stream here. | + | ::likewise add a new stream here. Exactly the same idea as the previous step. |
:c. '''Example:''' https://gerrit.fd.io/r/9934/ | :c. '''Example:''' https://gerrit.fd.io/r/9934/ | ||
− | 6. Create a new branch stable/YYMM (example: stable/1801) in the | + | 6. Create a new branch ''stable/YYMM'' (example: ''stable/1801'') in the Gerrit web UI against the point on master you wish to be cutting the branch (usually <code>HEAD</code> at the time you’re cutting). |
:a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches | :a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches | ||
− | 7. On stable/YYMM (example: stable/1801) prepare a commit which updates the .gitreview to reflect the correct branch | + | 7. On ''stable/YYMM'' (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch |
:a. Examples: | :a. Examples: | ||
Line 43: | Line 65: | ||
::https://gerrit.fd.io/r/#/c/9937/ | ::https://gerrit.fd.io/r/#/c/9937/ | ||
− | :b. Merge patch | + | :b. Merge patch onto the new stable branch |
+ | |||
+ | '''NOTE''': Verify that this patch is in fact on the new stable branch, and not on master! | ||
− | 8. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] (v18.01-rc1) on stable/1801 at the point of the patch you just merged. | + | 8. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] (<code>v18.01-rc1</code>) on ''stable/1801'' at the point of the patch you just merged. |
9. Verify that the nexus repos have packages with the correct version and are working | 9. Verify that the nexus repos have packages with the correct version and are working | ||
Line 65: | Line 89: | ||
:e. Update the [[VPP/Installing_VPP_binaries_from_packages | Installing VPP Binaries from Packages]] Wiki page with instructions for the new branch, and test that you can install packages | :e. Update the [[VPP/Installing_VPP_binaries_from_packages | Installing VPP Binaries from Packages]] Wiki page with instructions for the new branch, and test that you can install packages | ||
− | 10. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] for the next release RC0 (e.g. | + | 10. [https://wiki.fd.io/view/VPP/Pushing_and_Testing_a_Tag Lay down a tag] for the next release RC0 (e.g. <code>1804-rc0</code>) on master. |
− | 11. Update the package version used by | + | 11. Update the package version used by Java generation on master with the next release version in <code>vpp/src/configure.ac</code> |
:a. Example: https://gerrit.fd.io/r/#/c/8578/ | :a. Example: https://gerrit.fd.io/r/#/c/8578/ | ||
:b. Merge the patch. | :b. Merge the patch. |
Revision as of 14:44, 5 April 2018
VPP RC1 Milestone Tasklist
1. At least a week prior to the RC1 date, email a reminder to vpp-dev@lists.fd.io about VPP RC1 Milestone. See an example email or another example email.
2. Resend reminder a day or two prior to the RC1 date.
Pulling a VPP Throttle Branch
NOTE: Steps 3 and 4 can be done any time prior to RC1 branch day. At the very least, discuss the requirements with the individuals ahead of time to set the correct expectations.
3. Request LF Admin (via fd.io helpdesk) create Nexus repositories
Have LF admin staff create in nexus new repositories of the form "fd.io.${branchpart}.${distropart}
" where branchpart is of the form stable.YYMM (example stable.1804) and the distropart is one of the supported distributions.
At time of writing, we currently support the ubuntu.xenial.main
, centos7
and opensuse
distributions.
For example:
Hello fd.io helpdesk! Could you create the Nexus repositories required for the VPP 18.04 release, please? Per https://wiki.fd.io/view/VPP/CommitterTasks/PullThrottleBranch these should be named: fd.io.stable.1804.ubuntu.xenial.main fd.io.stable.1804.centos7 fd.io.stable.1804.opensuse Note that the Centos repository should be setup as a Yum repository, to enable the task that generates the index files. Thanks, <name>
NOTE: In the message to the helpdesk we indicate that the Centos repository is also a Yum repository and needs the indexing task setup. If this is not done then the Centos merge job will fail with a message in the console output that Yum could not retrieve that index.
4. Request Ed Warnicke create the package cloud repos.
Send and email to Ed Warnicke (eaw@cisco.com and/or hagbard@gmail.com) reminding him to create the package cloud repositories for the new release.
NOTE: If these do not exist or the permissions for them are wrong, then the merge jobs will fail after uploading build artifacts to nexus.fd.io
5. Jenkins: In the ci-management Git repo, edit jjb/vpp/vpp.yaml
:
- a. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n49
- add a new 'stream' for your new YYMM. Example for stable/1801:
- '1801': branch: 'stable/1801’' repo-stream-part: 'stable.1801'
- b. https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n87
- likewise add a new stream here. Exactly the same idea as the previous step.
- c. Example: https://gerrit.fd.io/r/9934/
6. Create a new branch stable/YYMM (example: stable/1801) in the Gerrit web UI against the point on master you wish to be cutting the branch (usually HEAD
at the time you’re cutting).
7. On stable/YYMM (example: stable/1801) prepare a commit which updates the .gitreview
to reflect the correct branch
- b. Merge patch onto the new stable branch
NOTE: Verify that this patch is in fact on the new stable branch, and not on master!
8. Lay down a tag (v18.01-rc1
) on stable/1801 at the point of the patch you just merged.
9. Verify that the nexus repos have packages with the correct version and are working
- a. Remerge the patch from step 7
- b. When the remerge from step 7 is complete, verify that the correct package versions have been uploaded onto the nexus server
https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.centos7/
https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.ubuntu.xenial.main/
- c. Examples
- d. Verify that package like artifacts are present in all the above git repos by looking for:
- Non-zero sized ‘Package’ in the apt repos (xenial)
- A repodata/ subdir in the yum repo (centos7)
- e. Update the Installing VPP Binaries from Packages Wiki page with instructions for the new branch, and test that you can install packages
10. Lay down a tag for the next release RC0 (e.g. 1804-rc0
) on master.
11. Update the package version used by Java generation on master with the next release version in vpp/src/configure.ac
- a. Example: https://gerrit.fd.io/r/#/c/8578/
- b. Merge the patch.
12. Verify that the nexus repos have packages with the correct version and are working
- a. Remerge the last merged patch on master
- b. When the remerge of the last patch on master is complete, go look for package with the correct versions at:
- c. Verify that package like artifacts are present in all the above git repos by looking for:
- Non-zero sized ‘Package’ in the apt repos (xenial)
- A repodata/ subdir in the yum repo (for centos7)
- d. Follow instructions on VPP/Installing_VPP_binaries_from_packages and verify that packages with the new versions are installed