VOLTHA Components: ONOS Dependencies¶
ONOS components are maintained by a series of maven projects. Releasing individual components will require:
Build and release dependencies:
Three jenkins jobs
modify version in pom.xml for release (remove -SNAPSHOT) for release.
publish artifact to Maven Central.
modify version in pom.xml for release (append -SNAPSHOT) for development.
Four manual operations:
Review and approve pull request to create a pom.xml release version.
Stage Maven Central deployment on a Nexus server.
Release artifact to maven central.
Review and approve pull request to create a pom.xml non-release version.
Long idle window(s): some 10 hours or more.
First submit nop jobs to verify the packages can build and test cleanly. Bulk update copyright notice dates or modify comments within sources and submit. Once pakges build and test clenaly initiate a release job.
Search pom.xml for package version string¶
Version |
Published |
Description |
---|---|---|
5.11.0-SNAPSHOT |
No |
Development version string |
5.11.0 |
Yes |
Production version string |
Component: pom.xml¶
Verify package and package.api version string state¶
Prior to release suffix-SNAPSHOT will be visible.
aaa/pom.xml
aaa/api/pom.xml
aaa/app/pom.xml
<artifactId>sadis</artifactId>
<version>5.10.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<sadis.api.version>5.10.0-SNAPSHOT</sadis.api.version>
</properties>
Update dependent components, apis, …¶
component: aaa dependency: sadis
Dependent package version strings will be a released (non-SNAPSHOT) version.
<properties>
<sadis.api.version>5.10.0</sadis.api.version>
<aaa.api.version>2.8.0-SNAPSHOT</aaa.api.version>
</properties>
Update dependent components, apis, …¶
component: mcast dependency: sadis
Update Maven Plugins¶
Update copyright notice to be inclusive of the year last modified¶
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
~
~ Licensed under the Apache License, Version 2.0 (the "License");
-->
Dependency Hierarchy¶
Components are built and released in version hiearchy order.
sadis¶
Verify -SNAPSHOT version string is present.
Dependent components: none
Scan pom.xml for version dependencies:
<sadis.api.version>5.10.0-SNAPSHOT</sadis.api.version>
aaa¶
Verify -SNAPSHOT version string is present.
Dependent components: sadis
Modify pom.xml, update released version strings
<sadis.api.version>5.10.0</sadis.api.version>
dhcpl2relay¶
Verify -SNAPSHOT version string is present.
Dependent components: sadis
Modify pom.xml, update released version strings
<sadis.api.version>5.10.0</sadis.api.version>
igmpproxy¶
Verify -SNAPSHOT version string is present.
Dependent components: sadis
Modify pom.xml, update released version strings
<sadis.api.version>5.10.0</sadis.api.version>
kafka¶
Verify -SNAPSHOT version string is present.
Dependent components: aaa, bng, dhcpl2relay, igmp, mcast, olt, sadis
Modify pom.xml, update released version strings
<aaa.api.version>x.x.x</aaa.api.version>
<bng.api.version>x.x.x</bng.api.version>
<dhcpl2relay.api.version>x.x.x</dhcpl2relay.api.version>
<igmp.api.version>x.x.x</igmp.api.version>
<mcast.api.version>x.x.x</mcast.api.version>
<olt.api.version>x.x.x</olt.api.version>
<sadis.api.version>5.10.0</sadis.api.version>
mcast¶
Verify -SNAPSHOT version string is present.
Dependent components: sadis
Modify pom.xml, update released version strings
<sadis.api.version>5.10.0</sadis.api.version>
olt¶
Verify -SNAPSHOT version string is present.
Dependent components: sadis
Modify pom.xml, update released version strings
<sadis.api.version>5.10.0</sadis.api.version>
maclearner¶
pppoeagent¶
segmentrouting¶
Validate release(d) version information¶
Visit Maven Central.
Sanity check deployed pom.xml files contain correct
Package and api versions.
ONOS package version
Dependent package version.
Yes an automation script should be created for this task.
A jenkins job can be run post deployment to perform validation.
Input would be a config file containing expected versions.
For complete coverage the job could be run:
pre-release: validate incoming SNAPSHOT version(s).
post-release: verify deployed artifact and pom.xml versions.
post-validation: jenkins would increment expected versions.
TODO: Start by creating a config file populated with version strings.
Static text can be used to maintain docs.voltha.org/release_notes/
Config would also be used as input to voltha-release (hardcoded values).