Difference between revisions of "Archived-Hc2vpp/BranchCutting"

From fd.io
Jump to: navigation, search
(Hc2vpp branch cutting manual - initial version based on 1.17.07)
 
 
(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/1707):
+
add a new ‘stream’ for your new YYMM (example: for stable/1901):
 
<pre>
 
<pre>
- '1707':
+
- '1901':
             branch: 'stable/1707’'
+
             branch: 'stable/1901’'
             repo-stream-part: 'stable.1707'
+
             repo-stream-part: 'stable.1901'
 
</pre>
 
</pre>
(example: https://gerrit.fd.io/r/#/c/7447/).
+
(example: https://gerrit.fd.io/r/#/c/16919/).
  
 
== Cut branch ==
 
== Cut branch ==
  
Create a new branch stable/YYMM (example: stable/1707) in the gerrit web UI against the point on master you wish to be cutting the branch (usually HEAD at the time your cutting).
+
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/1707) prepare a commit which updates the .gitreview to reflect the correct 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/7454/2/.gitreview
+
Example: https://gerrit.fd.io/r/#/c/17047/
  
Update the maven versions of hc2vpp artifacts to x.YY.MM-RC1 (example: 1.17.07-RC1).
+
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/7458/
+
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.1707.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
 
* 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.1707.ubuntu.xenial.main/io/fd/hc2vpp/honeycomb/
+
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.17.07-SNAPSHOT)
+
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/7461
+
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 honeycomb artifacts to next version snapshots (example: 1.17.10-SNAPSHOT).
+
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/7462/
+
Example: https://gerrit.fd.io/r/#/c/17056/
  
Also create new project version in jira and update release notes.
+
=== 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/7463
+
Example: https://gerrit.fd.io/r/#/c/17067/
  
Then bump jvpp version.
+
=== 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>
  
Example: https://gerrit.fd.io/r/#/c/7464
+
# 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

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

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.1901.ubuntu.xenial.main/io/fd/hc2vpp/honeycomb/

  • 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:

  1. Update release notes (1901 example: https://gerrit.fd.io/r/#/c/17282/).
  2. Set JVPP version to release version(1901 example: https://gerrit.fd.io/r/#/c/17284/).
  3. 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).
  4. Verify there are no issues with the artifacts in the stable repo.
  5. Ask helpdesk@fd.io to copy artifacts from stable repos to release repos.
  6. Lay tag:
git tag v1.19.01 -m "Hc2vpp v1.19.01"
git push origin v1.19.01
  1. 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).