When releasing CCSDK artifact versions, there are some special considerations to bear in mind:
- There is a known issue in the Sonatype Nexus staging feature such that it only indexes the FIRST version of a zip or tarball that is created - not the most recent. For example, suppose that the current version is 0.2.3-SNAPSHOT, and thus the version built if you do a "release" build (either due to daily builds or due to posting the comment "please release") is 0.2.3. If you request version 0.2.3 of an installation zip stored in staging, it will not get you the NEWEST 0.2.3, but rather will get the OLDEST 0.2.3. Because of this issue, you always want to roll versions right before you create a release version, not immediately AFTER as you normally would expect.
- The CCSDK parent poms contain properties that specify the current version of each CCSDK sli repository. Unfortunately, this means that if any CCSDK repository has to be released, the CCSDK parent pom and all 4 CCSDK sli repositories need to be released - meaning their versions also have to be rolled.
The following is the procedure that must be followed to release new versions of CCSDK artifacts:
- Roll to next snapshot version of parent poms, and update properties containing current version to use next snapshot version.
- Roll ccsdk/sli repos (sli/core, sli/adaptors, sli/northbound, sli/plugins, distribution) to next snapshot and update to use new snapshot version of parent pom.
Note: be sure to do the repos in the order listed. core must be done first; then adaptors,northbound and plugins ; and lastly distribution. - Create new CCSDK docker containers
- Rerun CSIT to make sure it still passes
- Update parent poms to update properties containing version to the next version
Note: at this point, builds of sli/adaptors, sli/northbound, sli/plugins and distribution will break, because we have not yet released sli/core. - Create staging version of ccsdk/parent by posting comment "please release" to commit for previous step.
- Mail helpdesk@onap.org to create a ticket requesting to release new CCSDK parent poms. In ticket, be sure to include link to the Jenkins release build triggered by previous step.
NOTE: do NOT continue to next step until Linux Foundation has released parent poms. - Update ccsdk/sli repos to use released version of parent pom.
- Create new staging versions of ccsdk sli repos (core, adaptors, northbound, plugins)
- Create new CCSDK docker containers
- Rerun CSIT to make sure it still passes
- Mail helpdesk@onap.org to create a ticket requesting to release CCSDK sli repos (core, adaptors, northbound, plugins). In ticket, be sure to reference Jenkins release builds trigger by step 10