JVPP/BranchCutting
Contents
Jenkins
In jjb/jvpp/jvpp.yaml add a new ‘stream’ for your new YYMM (example: for stable/1904):
- '1904': branch: 'stable/1904’' repo-stream-part: 'stable.1904'
(example: https://gerrit.fd.io/r/#/c/18959/).
Cut branch
Create a new branch stable/YYMM (example: stable/1904) 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/jvpp,branches
Prepare initial commit for stable/YYMM branch
On stable/YYMM (example: stable/1904) prepare a commit which updates the .gitreview to reflect the correct branch.
Example: https://gerrit.fd.io/r/#/c/18957/
Tag initial commit on stable branch (example for stable/1904):
git tag 19.04-rc1 -m "JVPP version 19.04 (RC1)"
verify tag:
git show 19.04-rc1
Push the tag to remote repository:
git push origin 19.04-rc1
Verify tag remotely (https://gerrit.fd.io/r/#/admin/projects/jvpp,tags)
Update release notes for the stable branch
Update release notes in documentation based on Jira tickets.
Example: https://gerrit.fd.io/r/#/c/18965/
Verify correct artifact versions
After merge job for initial patch and release notes patch are finished, check if
- RPMs with the correct versions were deployed at:
https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.centos7/io/fd/jvpp/vpp-api-java/
Example: https://nexus.fd.io/content/repositories/fd.io.stable.1904.centos7/io/fd/jvpp/vpp-api-java/
- DEBs (xenial/bionic) with the correct versions were deployed at
https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/ https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/
Example: https://nexus.fd.io/content/repositories/fd.io.stable.1904.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/ https://nexus.fd.io/content/repositories/fd.io.stable.1904.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/
- JARs with the correct versions were deployed at:
after brach cut: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/[path to artifact]/
after release in: https://nexus.fd.io/content/repositories/fd.io.release/io/fd/jvpp/[path to artifact]/
Example: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/jvpp-core/19.04-SNAPSHOT/
Verify packages on Package cloud
https://packagecloud.io/app/fdio/YYMM/search?q=vpp-api-java
Example: https://packagecloud.io/app/fdio/1904/search?q=vpp-api-java
Update master branch
Create new project version in jira:
On Master branch prepare initial commit for next release (example 1908)
- cherry pick release notes changes from last stable release - update release notes documentation, add placeholder for next stable version.
Example: https://gerrit.fd.io/r/#/c/18958/
Tag master branch with new tag for next release cycle
Tag initial commit on master branch (example for 1908):
git tag 19.08-rc0 -m "JVPP version 19.08 (RC0)"
verify tag:
git show 19.08-rc0
Push the tag to remote repository:
git push origin 19.08-rc0
Verify correct artifact versions
After merge job for initial patch is finished, check if
- RPMs with the correct versions were deployed at:
https://nexus.fd.io/content/repositories/fd.io.master.centos7/io/fd/jvpp/vpp-api-java/
- DEBs (xenial/bionic) with the correct versions were deployed at
https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/ https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/
- JARs with the correct versions were deployed at:
after brach cut: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/[path to artifact]/
Example: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/jvpp-core/19.08-SNAPSHOT/
Verify packages on Package cloud
https://packagecloud.io/app/fdio/master/search?q=vpp-api-java
JVPP release procedure
Prepare release notes patch
Prepare patch with updated release notes based on JVPP Jira issues planned for this release.(example 1904 release notes - https://wiki.fd.io/view/JVPP/Release_Plans/Release_Plan_19.04)
Example: https://gerrit.fd.io/r/#/c/18965/
After merge is done verify artifacts.
Tag stable branch with release tag
Tag release notes patch on stable branch (example for 1904):
git tag 19.04 -m "JVPP version 19.04"
verify tag:
git show 19.04
Push the tag to remote repository:
git push origin 19.04
Once tagged start new build. Add comment "remerge" to release notes patch. Verify the build, artifacts and packages.