Difference between revisions of "Archived-Hc2vpp/BranchCutting"
(Hc2vpp branch cutting manual - initial version based on 1.17.07) |
Dwallacelf (Talk | contribs) m (Dwallacelf moved page Hc2vpp/BranchCutting to Archived-Hc2vpp/BranchCutting) |
||
(23 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
In jjb/hc2vpp/hc2vpp-csit.yaml and jjb/hc2vpp/hc2vpp.yaml | In jjb/hc2vpp/hc2vpp-csit.yaml and jjb/hc2vpp/hc2vpp.yaml | ||
− | add a new ‘stream’ for your new YYMM (example: for stable/ | + | add a new ‘stream’ for your new YYMM (example: for stable/1901): |
<pre> | <pre> | ||
− | - ' | + | - '1901': |
− | branch: 'stable/ | + | branch: 'stable/1901’' |
− | repo-stream-part: 'stable. | + | repo-stream-part: 'stable.1901' |
</pre> | </pre> | ||
− | (example: https://gerrit.fd.io/r/#/c/ | + | (example: https://gerrit.fd.io/r/#/c/16919/). |
== Cut branch == | == Cut branch == | ||
− | Create a new branch stable/YYMM (example: stable/ | + | Create a new branch stable/YYMM (example: stable/1901) in the gerrit web UI against the point on master you wish to be cutting the branch (usually HEAD at the time your cutting). |
https://gerrit.fd.io/r/#/admin/projects/hc2vpp,branches | https://gerrit.fd.io/r/#/admin/projects/hc2vpp,branches | ||
Line 19: | Line 19: | ||
== Update stable/YYMM branch == | == Update stable/YYMM branch == | ||
− | On stable/YYMM (example: stable/ | + | On stable/YYMM (example: stable/1901) prepare a commit which updates the .gitreview to reflect the correct branch. |
− | Example: https://gerrit.fd.io/r/#/c/ | + | Example: https://gerrit.fd.io/r/#/c/17047/ |
− | Update the maven versions of hc2vpp artifacts to x.YY.MM-RC1 (example: 1. | + | Also update <project-branch> in the release notes |
+ | |||
+ | Example: https://gerrit.fd.io/r/#/c/17048/ | ||
+ | |||
+ | and RPM/DEB release to RC1~$BUILD_NUMBER. | ||
+ | |||
+ | Example: https://gerrit.fd.io/r/#/c/17050/ | ||
+ | |||
+ | Update the maven versions of hc2vpp artifacts to x.YY.MM-RC1 (example: 1.19.01-RC1). | ||
Remember to also update versions in package scripts (files: prepare.sh, release, rpmbuild.sh and honeycomb.spec). | Remember to also update versions in package scripts (files: prepare.sh, release, rpmbuild.sh and honeycomb.spec). | ||
+ | And don't forget to update csit-test-branch (rls1901 in example). | ||
− | Example: https://gerrit.fd.io/r/#/c/ | + | Example: https://gerrit.fd.io/r/#/c/17052/ |
=== Verify correct artifact versions === | === Verify correct artifact versions === | ||
Line 37: | Line 46: | ||
https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.centos7/io/fd/hc2vpp/honeycomb/ | https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.centos7/io/fd/hc2vpp/honeycomb/ | ||
− | Example: https://nexus.fd.io/content/repositories/fd.io.stable. | + | Example: https://nexus.fd.io/content/repositories/fd.io.stable.1901.centos7/io/fd/hc2vpp/honeycomb/ |
* DEBs with the correct versions were deployed at | * DEBs with the correct versions were deployed at | ||
Line 43: | Line 52: | ||
https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.ubuntu.xenial.main/io/fd/hc2vpp/honeycomb/ | https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.ubuntu.xenial.main/io/fd/hc2vpp/honeycomb/ | ||
− | Example: https://nexus.fd.io/content/repositories/fd.io.stable. | + | Example: https://nexus.fd.io/content/repositories/fd.io.stable.1901.ubuntu.xenial.main/io/fd/hc2vpp/honeycomb/ |
* JARs with the correct versions were deployed at: | * JARs with the correct versions were deployed at: | ||
Line 50: | Line 59: | ||
Example: https://nexus.fd.io/content/repositories/fd.io.release/io/fd/hc2vpp/common/hc2vpp-parent/ | Example: https://nexus.fd.io/content/repositories/fd.io.release/io/fd/hc2vpp/common/hc2vpp-parent/ | ||
+ | |||
+ | === Lay RC1 tag === | ||
+ | Tag the RC1 bump commit: | ||
+ | |||
+ | <pre> | ||
+ | git tag v1.19.01-RC1 -m "Hc2vpp v1.19.01-RC1" | ||
+ | </pre> | ||
+ | |||
+ | Verify the tag locally: | ||
+ | |||
+ | <pre> | ||
+ | git show v1.19.01-RC1 | ||
+ | </pre> | ||
+ | |||
+ | Push the tag to remote repository: | ||
+ | |||
+ | <pre> | ||
+ | git push origin v1.19.01-RC1 | ||
+ | </pre> | ||
+ | |||
+ | Verify tag was pushed: | ||
+ | https://gerrit.fd.io/r/#/admin/projects/hc2vpp,tags | ||
=== Set version back to SNAPSHOT === | === Set version back to SNAPSHOT === | ||
− | Set maven versions of hc2vpp artifacts back to x.YY.MM-SNAPSHOT (example: 1. | + | Set maven versions of hc2vpp artifacts back to x.YY.MM-SNAPSHOT (example: 1.19.01-SNAPSHOT) |
for new development cycle. | for new development cycle. | ||
− | Example: https://gerrit.fd.io/r/#/c/ | + | Example (revert of RC1 bump): https://gerrit.fd.io/r/#/c/17066/ |
Make sure previous step was finished successfully before submitting the patch. | Make sure previous step was finished successfully before submitting the patch. | ||
Line 62: | Line 93: | ||
== Update master branch == | == Update master branch == | ||
− | On master branch, bump versions of | + | On master branch, bump versions of hc2vpp artifacts to next version snapshots (example: 1.19.04-SNAPSHOT). |
Remember to also update versions in package scripts (files: prepare.sh, rpmbuild.sh and version). | Remember to also update versions in package scripts (files: prepare.sh, rpmbuild.sh and version). | ||
− | Example: https://gerrit.fd.io/r/#/c/ | + | Example: https://gerrit.fd.io/r/#/c/17056/ |
− | + | === Create new project version in jira [https://jira.fd.io/projects/HC2VPP?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased Hc2vpp releases] and update release notes === | |
− | Example: https://gerrit.fd.io/r/#/c/ | + | Example: https://gerrit.fd.io/r/#/c/17067/ |
− | + | === Bump jvpp version === | |
+ | |||
+ | Example: https://gerrit.fd.io/r/17068 | ||
+ | |||
+ | == Hc2vpp release procedure == | ||
+ | |||
+ | Release procedure is similar to the steps for releasing RC1: | ||
+ | # Update release notes (1901 example: https://gerrit.fd.io/r/#/c/17282/). | ||
+ | # Set JVPP version to release version(1901 example: https://gerrit.fd.io/r/#/c/17284/). | ||
+ | # Release hc2vpp (1901 example: https://gerrit.fd.io/r/#/c/17289/: poms + packaging/rpm/hc2vpp_version, packaging/rpm/release, vpp-version and jvpp-version files). Make sure vpp_dependencies files DOES NOT specify single VPP version (would make hc2vpp point releeases required for every vpp point release). | ||
+ | # Verify there are no issues with the artifacts in the stable repo. | ||
+ | # Ask helpdesk@fd.io to copy artifacts from stable repos to release repos. | ||
+ | # Lay tag: | ||
+ | <pre> | ||
+ | git tag v1.19.01 -m "Hc2vpp v1.19.01" | ||
+ | git push origin v1.19.01 | ||
+ | </pre> | ||
− | + | # Bump hc2vpp version to .1 SNAPSHOT (1.19.01.1 example: https://gerrit.fd.io/r/#/c/17298/: poms + packaging/deb/common/prepare.sh, packaging/rpm/hc2vpp_version, packaging/rpm/release, packaging/rpm/version, vpp-version and jvpp-version files). |
Latest revision as of 20:04, 17 August 2023
Contents
Jenkins
In jjb/hc2vpp/hc2vpp-csit.yaml and jjb/hc2vpp/hc2vpp.yaml add a new ‘stream’ for your new YYMM (example: for stable/1901):
- '1901': branch: 'stable/1901’' repo-stream-part: 'stable.1901'
(example: https://gerrit.fd.io/r/#/c/16919/).
Cut branch
Create a new branch stable/YYMM (example: stable/1901) in the gerrit web UI against the point on master you wish to be cutting the branch (usually HEAD at the time your cutting).
https://gerrit.fd.io/r/#/admin/projects/hc2vpp,branches
Update stable/YYMM branch
On stable/YYMM (example: stable/1901) prepare a commit which updates the .gitreview to reflect the correct branch.
Example: https://gerrit.fd.io/r/#/c/17047/
Also update <project-branch> in the release notes
Example: https://gerrit.fd.io/r/#/c/17048/
and RPM/DEB release to RC1~$BUILD_NUMBER.
Example: https://gerrit.fd.io/r/#/c/17050/
Update the maven versions of hc2vpp artifacts to x.YY.MM-RC1 (example: 1.19.01-RC1).
Remember to also update versions in package scripts (files: prepare.sh, release, rpmbuild.sh and honeycomb.spec). And don't forget to update csit-test-branch (rls1901 in example).
Example: https://gerrit.fd.io/r/#/c/17052/
Verify correct artifact versions
After integration job for version bump patch is finished, check if
- RPMs with the correct versions were deployed at:
https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.centos7/io/fd/hc2vpp/honeycomb/
Example: https://nexus.fd.io/content/repositories/fd.io.stable.1901.centos7/io/fd/hc2vpp/honeycomb/
- DEBs with the correct versions were deployed at
- JARs with the correct versions were deployed at:
https://nexus.fd.io/content/repositories/fd.io.release/io/fd/hc2vpp/[path to artifact]/
Example: https://nexus.fd.io/content/repositories/fd.io.release/io/fd/hc2vpp/common/hc2vpp-parent/
Lay RC1 tag
Tag the RC1 bump commit:
git tag v1.19.01-RC1 -m "Hc2vpp v1.19.01-RC1"
Verify the tag locally:
git show v1.19.01-RC1
Push the tag to remote repository:
git push origin v1.19.01-RC1
Verify tag was pushed: https://gerrit.fd.io/r/#/admin/projects/hc2vpp,tags
Set version back to SNAPSHOT
Set maven versions of hc2vpp artifacts back to x.YY.MM-SNAPSHOT (example: 1.19.01-SNAPSHOT) for new development cycle.
Example (revert of RC1 bump): https://gerrit.fd.io/r/#/c/17066/
Make sure previous step was finished successfully before submitting the patch.
Update master branch
On master branch, bump versions of hc2vpp artifacts to next version snapshots (example: 1.19.04-SNAPSHOT).
Remember to also update versions in package scripts (files: prepare.sh, rpmbuild.sh and version).
Example: https://gerrit.fd.io/r/#/c/17056/
Create new project version in jira Hc2vpp releases and update release notes
Example: https://gerrit.fd.io/r/#/c/17067/
Bump jvpp version
Example: https://gerrit.fd.io/r/17068
Hc2vpp release procedure
Release procedure is similar to the steps for releasing RC1:
- Update release notes (1901 example: https://gerrit.fd.io/r/#/c/17282/).
- Set JVPP version to release version(1901 example: https://gerrit.fd.io/r/#/c/17284/).
- Release hc2vpp (1901 example: https://gerrit.fd.io/r/#/c/17289/: poms + packaging/rpm/hc2vpp_version, packaging/rpm/release, vpp-version and jvpp-version files). Make sure vpp_dependencies files DOES NOT specify single VPP version (would make hc2vpp point releeases required for every vpp point release).
- Verify there are no issues with the artifacts in the stable repo.
- Ask helpdesk@fd.io to copy artifacts from stable repos to release repos.
- Lay tag:
git tag v1.19.01 -m "Hc2vpp v1.19.01" git push origin v1.19.01
- Bump hc2vpp version to .1 SNAPSHOT (1.19.01.1 example: https://gerrit.fd.io/r/#/c/17298/: poms + packaging/deb/common/prepare.sh, packaging/rpm/hc2vpp_version, packaging/rpm/release, packaging/rpm/version, vpp-version and jvpp-version files).