...
- Cherrypick & release as below (More details below)
- Update image version numbers on release wikipages, e.g. in:
- Check version numbers used in documentation
- RTD, WIKI, ReadMe’s,
- E.g. https://wiki.lf-o-ran-sc.atlassian.orgnet/wiki/display/RICNR/Release+F+-+Run+in+Docker
- Update versions in tests
- Update in helm charts & dockerfile(s)
...
- Checkout Release branch (e.g. f-release)
- Update version number in pom.xml or container-tag.yaml in Release Branch
- ... otherwise previous released version will be partly overwritten – and release will fail (see below)
- ... only if version numbers were not updated in after the last release)
- For example, Information Coordinator Service
- (Java) Pom: pom.xml
- (Golang or Python - No POM file) container-tag.yaml
- https://gerrit.o-ran-sc.org/r/c/sim/a1-interface/+/8933/2/near-rt-ric-simulator/container-tag.yamlFor example, A1 Simulator
- (Java) Pom: pom.xml
- Cherrypick changes as needed - either one at a time or as a squashed commit (see below)
- Do in reverse order – oldest -> newest
- .. then commit & review & merge the change to the branch
- Create Staging release
- Last cherrypick above once complete should create, a new Staging image (& maven artifacts if maven releases are used) using version numbers in pom.xml or container-tag.yaml
- (If no cherry pick, or no update in 30 days last commit on branch should be re-merged – will create snapshot)
- (Note, it seems GO projects do not need a staging image. But may need a recent snapshot build. Skip this step)
- Some repos do NOT have a staging image automatically created.
- See https://wiki.lf-o-ran-sc.orgatlassian.net/wiki/display/ORAN/O-RAN+Developer%27s+Guide+to+CI+Resources+and+Processes+at+the+LF#ORANDeveloper'sGuidetoCIResourcesandProcessesattheLF-TriggeringJenkinsjobsfromGerrit
- To manually trigger staging use comment “stage-release” on the relevant gerrit review to create a staging image. (Note this job also strips “–SNAPSHOT” from the image name if –SNAPSHOT is used)
- Useful link to view if tagged staging image is created/correct: https://nexus3.o-ran-sc.org/#browse/browse:docker.staging:v2%2Fo-ran-sc
- Release Staged Image (from Release branch)
- Find commit ID for last commit (e.g. git log –all)
- Edit & commit container file in /.releases folder
- See https://wiki.lf-o-ran-sc.atlassian.orgnet/wiki/display/ORAN/O-RAN+Developer%27s+Guide+to+CI+Resources+and+Processes+at+the+LF#ORANDeveloper'sGuidetoCIResourcesandProcessesattheLF-ReleasingaDockerartifact
- For Example: A1 Policy Management Service: https://gerrit.o-ran-sc.org/r/c/nonrtric/plt/a1policymanagementservice/+/8953
- ... make sure to update BOTH of the version numbers to the latest version
- ... similar process in ONAP https://wiki.onap.org/pages/viewpage.action?pageId=68545910
- Documentation of this step: https://github.com/lfit/releng-global-jjb/blob/master/docs/jjb/lf-release-jobs.rst && https://wiki.lf-o-ran-sc.orgatlassian.net/wiki/display/ORAN/O-RAN+Developer%27s+Guide+to+CI+Resources+and+Processes+at+the+LF#ORANDeveloper'sGuidetoCIResourcesandProcessesattheLF-ReleasingaDockerartifact
- Review will not pass ‘verify’ step if the referenced snapshot/staging image cannot be found
- Merge the commit, which will trigger the release operation
- On merge, image will appear in ‘releases’ docker repo,
- This job literally copies the referenced version from the source image store/repo (docker-staging) into the target image store/repo (docker-releases)
- This job also performs git tag (<version number>) added to the referenced commit above.
- Note, this can only be done ONCE for each release version – re-runs of this operation will not upload a new image with the same version number. Messed-up release images cannot be removed. If you make a mistake at this stage you must start again with a new version number.
- Useful link to view if tagged released image is correct: https://nexus3.o-ran-sc.org/#browse/browse:docker.release:v2%2Fo-ran-sc
- Release Staged Maven artifacts – if enabled
- Find Jenkins staging job id for the commit to release (e.g. the last cherrypick above)
- For example, for Information coordinator Service the appropriate job is nonrtric-plt-informationcoordinatorservice-maven-stage-f-release defined in ci-management repo …
- The job ID will be visible in the comments/log of the appropriate commit that generated the staged version (e.g. the last cherrypick above, or the commit with 'stage-release' triggering comment)
- Edit & commit maven file in the in /.releases folder
- For example e.g. for Information coordinator Service
- Documentation of this step: https://github.com/lfit/releng-global-jjb/blob/master/docs/jjb/lf-release-jobs.rst && https://wiki.lf-o-ran-sc.orgatlassian.net/wiki/display/ORAN/O-RAN+Developer%27s+Guide+to+CI+Resources+and+Processes+at+the+LF#ORANDeveloper'sGuidetoCIResourcesandProcessesattheLF-ReleasingaJava/mavenartifact
- On merge, maven artifact will appear in ‘releases’ maven repo
- Useful site to browse the maven repo to check maven artifact version is present: https://nexus.o-ran-sc.org/content/repositories/releases/org/o-ran-sc/
- Find Jenkins staging job id for the commit to release (e.g. the last cherrypick above)
- Update Release Notes in Release Branch AND master branch – add commit ID of the release commit
- For example, for Information coordinator Service:
- Uptick version number AGAIN in pom.xml or container-tag.yaml in Release Branch (See step 2 above)
- For example, Information Coordinator Service
- For example, A1 Simulator
- (Golang or Python - No POM file) container-tag.yaml
- Now find & fix all documentation, tests, script file, helm charts etc referring to the old version number! :-O
...