VOLTHA Components: ONOS

A few different processes exist for releasing the VOLTHA project and componets. Some are released through github using branches/tags/downloads. Others are released as packages on maven central.

A jenkins job exists for releasing ONOS app

  • Maven central based release

  • Release process requires some manual steps.

  • Jenkins Release Job

    • MVN Plugin Upgrade

    • 5.11.0 (deploy)

    • 5.12.0-SNAPSHOT (dev)

    • Initiate a build with parameters for the target component.

      • Use repository name not name of the app itself.

      • Specify appVersion and apiVersion stored in the pom.xml file.

        • Files modified by jenkins: pom.xml, app/pom.xml, api/pom.xml

Job paramters

Field

Value

appRepo

sadis

appName

sadis

apiVersion

5.11.0 (pom.xml: 5.11.0-SNAPSHOT)

nextApiVersion

5.12.0

version

5.11.0

nextVersion

5.12.0

branch

master (?)

Jenkins Jobs

  • Jenkins jobs from release matrix: v2.12

    • Job will modify pom.xml and create pull requests based on version strings.

    • NOTE: Two pull requests are created to modify pom.xml

      • One for release (x.y.z)

      • The second to revert to non-release version (x.(y+1).z-SNAPSHOT)

      • Approve and merge the release version while performing the release.

      • Once published approve the 2nd version change to re-attach the -SNAPSHOT suffix.

    • Version x.y.z-SNAPSHOT is the default non-release version.

    • Jenkins job will morph x.y.z-SNAPSHOT into x.y.z for the release.

    • A gerrit pull request will be created under the release requestor(s) name.

  • Artifact staging on sonatype, published to maven central:

    • Visit https://oss.sonatype.org

    • Login with ONF credentials

      • In the Artifact Search box

        • Search for org.opencord

        • Find the package of interest (pkg, app, api)

        • Click ‘Show All Versions’

        • Verify the released version exists

      • Click on “Staging repositories” (in the left side navigation)

      • In the top right search for last part of the app name (eg: olt)

      • Enable checkbox for the versioned package (status: closed).

      • Click release (top left bar, small button)

      • Wait until artifacts are published

  • Release all other apps/components (dependency hierarch):

    • Iterate over individual components in order of increasing dependency volume.

      • For ex olt depends on sadis

      • Begin by releasing sadis first

      • Once publishing has completed then olt can be released.

    • Verify expected dependent version has been released.

    • Modify pom.xml, update dep version(s) from x.z.y-SNAPSHOT to x.y.z

    • Commit and submit.