Difference between revisions of "VPP/CommitterTasks/PullThrottleBranch"
(→Pulling a VPP Throttle Branch) |
|||
Line 6: | Line 6: | ||
2. To be done before RC1: | 2. To be done before RC1: | ||
− | + | :a. Follow-up that ci-management change below is merged | |
− | + | :b. Verify that packagecloud.io repository fdio/YYMM (as corresponding to the branch stable/YYMM that is being created) exists and follow up with Ed Warnicke to ensure it is created and has "lf-fdio" added as a collaborator. | |
− | + | :c. Prepare "first commit of rc0 of next release" commit on master branch so it is ready for merge + tagging at the time of the RC1. | |
− | + | ||
3. Resend reminder about (1) a day or two prior to the RC1 date. | 3. Resend reminder about (1) a day or two prior to the RC1 date. | ||
Line 43: | Line 42: | ||
:e. '''Example:''' https://gerrit.fd.io/r/#/c/18982/ | :e. '''Example:''' https://gerrit.fd.io/r/#/c/18982/ | ||
− | |||
− | |||
− | + | 6. On master branch, edit vpp/RELEASE.md and add a placeholder for the next release and merge the patch on master and edit vpp/doxygen/test_framework_doc.md and add a new link to the next release's test framework documentation. This will be the commit that the next release -rc0 tag is placed on. | |
:Examples: | :Examples: | ||
::https://gerrit.fd.io/r/#/c/18803/1/RELEASE.md | ::https://gerrit.fd.io/r/#/c/18803/1/RELEASE.md | ||
::https://gerrit.fd.io/r/#/c/19292/1/doxygen/test_framework_doc.md | ::https://gerrit.fd.io/r/#/c/19292/1/doxygen/test_framework_doc.md | ||
− | + | 7. [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, using the hash of the above commit as an explicit argument for tagging. | |
− | 9. On ''stable/YYMM'' (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch | + | :a. Verify that the tag shows up by looking for it at https://git.fd.io/vpp/log/ - it usually takes a few minutes. |
+ | :b. Remerge the last merged patch on master - you can see the "to be" version in the build logs for the merge jobs. | ||
+ | :c. When the remerge of the last patch on master is complete, go look for package with the correct versions at packagecloud.io/fdio/master | ||
+ | :d. Follow instructions on [[VPP/Installing_VPP_binaries_from_packages]] and verify that packages with the new versions are installed on packagecloud.io | ||
+ | |||
+ | There may be existing patches from others waiting to be merged on master - then instead of a remerge of the patch from step (6), if that patch is being merged, it can be used for sanity check instead of patch from step (6). | ||
+ | |||
+ | 8. Create a new branch ''stable/YYMM'' (example: ''stable/1801'') in the Gerrit web UI and specify the hash of the commit JUST BEFORE the one you merged in step 6. | ||
+ | |||
+ | :a. https://gerrit.fd.io/r/#/admin/projects/vpp,branches | ||
+ | |||
+ | 9. On the new ''stable/YYMM'' branch (example: ''stable/1801'') prepare a commit which updates the <code>.gitreview</code> to reflect the correct branch. (You will need a "git pull" in your local repo to see the ref for the newly created branch). | ||
:a. Examples: | :a. Examples: | ||
Line 68: | Line 76: | ||
'''NOTE:''' If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits. | '''NOTE:''' If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits. | ||
− | 11. Verify that the | + | 11. Verify that the packagecloud.io repos have packages with the correct version and are working |
− | :a. Remerge the patch from step | + | :a. Remerge the patch from step 9 after you push the tag (you can verify the to-be version of artifacts in the beginning of the VPP build log messages) |
− | :b. When the remerge from step | + | :b. When the remerge from step 9 is complete, verify that the correct package versions have been uploaded onto the packagecloud.io/fdio/XXYY repository - if the job succeeded, the packages typically will be there. You can verify by visiting the packagecloud.io web interface and checking there. |
− | + | ||
− | + | ||
− | :c. | + | :c. Verify that the packages for the supported OSes are installable from the packagecloud.io/fdio/XXYY repo |
− | + | ||
− | + | ||
− | :d | + | :d. 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 from packagecloud.io |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | 12. Send the all-clear message. [https://lists.fd.io/g/vpp-dev/message/7811 Example]. | |
− | + | 13. If the Jira steps from [[VPP/CommitterTasks/ApiFreeze#Jira_versions]] didn't happen yet, do them now. | |
Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved. | Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved. |
Revision as of 21:07, 16 December 2020
VPP RC1 pre-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. To be done before RC1:
- a. Follow-up that ci-management change below is merged
- b. Verify that packagecloud.io repository fdio/YYMM (as corresponding to the branch stable/YYMM that is being created) exists and follow up with Ed Warnicke to ensure it is created and has "lf-fdio" added as a collaborator.
- c. Prepare "first commit of rc0 of next release" commit on master branch so it is ready for merge + tagging at the time of the RC1.
3. Resend reminder about (1) 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. nexus - no longer needed.
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, and have lf-fdio as a collaborator. Since 21.01RC1 the verify/merge jobs do not require the packages to be present in the deb repos.
5. Jenkins: (can be done and merged some days before the date of pulling the branch) - 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/
- d. Similarly, edit
jjb/vpp/docs.yaml
- add a new 'stream' for your new YYMM. Example for stable/1904:
- '1904': branch: 'stable/1904’' repo-stream-part: 'stable.1904'
- e. Example: https://gerrit.fd.io/r/#/c/18982/
6. On master branch, edit vpp/RELEASE.md and add a placeholder for the next release and merge the patch on master and edit vpp/doxygen/test_framework_doc.md and add a new link to the next release's test framework documentation. This will be the commit that the next release -rc0 tag is placed on.
- Examples:
7. Lay down a tag for the next release RC0 (e.g. 1804-rc0
) on master, using the hash of the above commit as an explicit argument for tagging.
- a. Verify that the tag shows up by looking for it at https://git.fd.io/vpp/log/ - it usually takes a few minutes.
- b. Remerge the last merged patch on master - you can see the "to be" version in the build logs for the merge jobs.
- c. When the remerge of the last patch on master is complete, go look for package with the correct versions at packagecloud.io/fdio/master
- d. Follow instructions on VPP/Installing_VPP_binaries_from_packages and verify that packages with the new versions are installed on packagecloud.io
There may be existing patches from others waiting to be merged on master - then instead of a remerge of the patch from step (6), if that patch is being merged, it can be used for sanity check instead of patch from step (6).
8. Create a new branch stable/YYMM (example: stable/1801) in the Gerrit web UI and specify the hash of the commit JUST BEFORE the one you merged in step 6.
9. On the new stable/YYMM branch (example: stable/1801) prepare a commit which updates the .gitreview
to reflect the correct branch. (You will need a "git pull" in your local repo to see the ref for the newly created 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!
10. Lay down a tag (v18.01-rc1
) on stable/1801 at the point of the patch you just merged.
NOTE: If the verification steps in 11 & 12 don't happen by the end of the day, it is best to send an email re-opening master to commits.
11. Verify that the packagecloud.io repos have packages with the correct version and are working
- a. Remerge the patch from step 9 after you push the tag (you can verify the to-be version of artifacts in the beginning of the VPP build log messages)
- b. When the remerge from step 9 is complete, verify that the correct package versions have been uploaded onto the packagecloud.io/fdio/XXYY repository - if the job succeeded, the packages typically will be there. You can verify by visiting the packagecloud.io web interface and checking there.
- c. Verify that the packages for the supported OSes are installable from the packagecloud.io/fdio/XXYY repo
- d. Update the Installing VPP Binaries from Packages Wiki page with instructions for the new branch, and test that you can install packages from packagecloud.io
12. Send the all-clear message. Example.
13. If the Jira steps from VPP/CommitterTasks/ApiFreeze#Jira_versions didn't happen yet, do them now.
Amend as necessary with any caveats; for example the 1804 RC1 milestone opened master and stable on different days while minor issues were resolved.