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
Verify the tag remotely https://gerrit.fd.io/r/#/admin/projects/jvpp,tags. Once tagged successfully, start new build. Add comment "remerge" to release notes patch. Verify the build, artifacts and packages.
Ask helpdesk to publish artifacts and packages to release repos
Publish RPM and DEB packages
Nexus packages example for 1904:
Centos:
- from: https://nexus.fd.io/content/repositories/fd.io.stable.1904.centos7/io/fd/jvpp/vpp-api-java/19.04-release.x86_64/
- to: https://nexus.fd.io/content/repositories/fd.io.centos7/io/fd/jvpp/vpp-api-java/19.04-release.x86_64/
Ubuntu Bionic:
- from: https://nexus.fd.io/content/repositories/fd.io.stable.1904.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/19.04-release/
- to: https://nexus.fd.io/content/repositories/fd.io.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/19.04-release_amd64/
Ubuntu Xenial:
- from: https://nexus.fd.io/content/repositories/fd.io.stable.1904.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/19.04-release/
- to: https://nexus.fd.io/content/repositories/fd.io.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/19.04-release_amd64/
Package cloud example for 1904:
Centos:
Ubuntu Bionic:
Ubuntu Xenial:
Destination:
Publish JAR artifacts for maven release repo: