blob: 51bc0ad8aa980828314ba0e5dada62d35949c8e1 [file] [log] [blame]
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -05001VOLTHA Components: ONOS Dependencies
2====================================
3
4ONOS components are maintained by a series of maven projects.
5Releasing individual components will require:
6
7- Build and release dependencies:
8
9 - Three jenkins jobs
10
Joey Armstrong4f93b762023-06-06 08:36:02 -040011 - modify version in pom.xml for release (remove -SNAPSHOT) for release.
12 - publish artifact to Maven Central.
13 - modify version in pom.xml for release (append -SNAPSHOT) for development.
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050014
Joey Armstrong4f93b762023-06-06 08:36:02 -040015 - Four manual operations:
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050016
17 - Review and approve pull request to create a pom.xml release version.
Joey Armstrong4f93b762023-06-06 08:36:02 -040018 - Stage Maven Central deployment on a Nexus server.
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050019 - Release artifact to maven central.
20 - Review and approve pull request to create a pom.xml non-release version.
21
Joey Armstrong4f93b762023-06-06 08:36:02 -040022 - Long idle window(s): some 10 hours or more.
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050023
24First submit nop jobs to verify the packages can build and test cleanly.
25Bulk update copyright notice dates or modify comments within sources and submit.
Joey Armstrong4f93b762023-06-06 08:36:02 -040026Once pakges build and test clenaly initiate a release job.
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050027
28Search pom.xml for package version string
29^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30
Joey Armstrong4f93b762023-06-06 08:36:02 -040031.. list-table:: Semantic Version Strings
32 :header-rows: 1
33 :widths: 20,5,50
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050034
Joey Armstrong4f93b762023-06-06 08:36:02 -040035 * - Version
36 - Published
37 - Description
38 * - 5.11.0-SNAPSHOT
39 - No
40 - Development version string
41 * - 5.11.0
42 - Yes
43 - Production version string
44
45Component: pom.xml
46------------------
47
48Verify package and package.api version string state
49^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
50
51Prior to release suffix-SNAPSHOT will be visible.
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050052
53.. code:: bash
54
55 aaa/pom.xml
56 aaa/api/pom.xml
57 aaa/app/pom.xml
58
59.. code:: XML
60
61 <artifactId>sadis</artifactId>
Joey Armstrong399f2762023-01-11 11:41:28 -050062 <version>5.10.0-SNAPSHOT</version>
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050063 <packaging>pom</packaging>
64
65 <properties>
Joey Armstrong399f2762023-01-11 11:41:28 -050066 <sadis.api.version>5.10.0-SNAPSHOT</sadis.api.version>
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050067 </properties>
68
69
Joey Armstrong4f93b762023-06-06 08:36:02 -040070Update dependent components, apis, ...
71^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050072
73component: aaa
Joey Armstrong4f93b762023-06-06 08:36:02 -040074dependency: sadis
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050075
76Dependent package version strings will be a released (non-SNAPSHOT) version.
77
78.. code:: XML
79
80 <properties>
Joey Armstrong399f2762023-01-11 11:41:28 -050081 <sadis.api.version>5.10.0</sadis.api.version>
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -050082 <aaa.api.version>2.8.0-SNAPSHOT</aaa.api.version>
83 </properties>
84
Joey Armstrongab04e262023-06-13 14:32:35 -040085Update dependent components, apis, ...
86^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Joey Armstrong4f93b762023-06-06 08:36:02 -040087
Joey Armstrongab04e262023-06-13 14:32:35 -040088component: mcast
89dependency: sadis
Joey Armstrong4f93b762023-06-06 08:36:02 -040090
Joey Armstrongab04e262023-06-13 14:32:35 -040091Update Maven Plugins
92^^^^^^^^^^^^^^^^^^^^
93:ref:`dependencies-update-maven-plugins`
Joey Armstrong4f93b762023-06-06 08:36:02 -040094
95Update copyright notice to be inclusive of the year last modified
96^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
97
98`Copyright notice syntax <https://github.com/joey-onf/copyright>`_
99
100.. code:: XML
101
102 <?xml version="1.0" encoding="UTF-8"?>
103 <!--
104 ~ Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
105 ~
106 ~ Licensed under the Apache License, Version 2.0 (the "License");
107 -->
108
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500109
110Dependency Hierarchy
111--------------------
112
113Components are built and released in version hiearchy order.
114
115sadis
116^^^^^
117
118- Verify -SNAPSHOT version string is present.
119- Dependent components: none
120- Scan pom.xml for version dependencies:
121
122.. code:: XML
123
Joey Armstrong399f2762023-01-11 11:41:28 -0500124 <sadis.api.version>5.10.0-SNAPSHOT</sadis.api.version>
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500125
126
127aaa
128^^^
129
130- Verify -SNAPSHOT version string is present.
131- Dependent components: sadis
132- Modify pom.xml, update released version strings
133
134.. code:: XML
135
Joey Armstrong399f2762023-01-11 11:41:28 -0500136 <sadis.api.version>5.10.0</sadis.api.version>
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500137
138
Joey Armstrong399f2762023-01-11 11:41:28 -0500139dhcpl2relay
140^^^^^^^^^^^
141
142- Verify -SNAPSHOT version string is present.
143- Dependent components: sadis
144- Modify pom.xml, update released version strings
145
146.. code:: XML
147
148 <sadis.api.version>5.10.0</sadis.api.version>
149
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500150igmpproxy
151^^^^^^^^^
152
153- Verify -SNAPSHOT version string is present.
Joey Armstrong399f2762023-01-11 11:41:28 -0500154- Dependent components: sadis
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500155- Modify pom.xml, update released version strings
156
157.. code:: XML
158
Joey Armstrong399f2762023-01-11 11:41:28 -0500159 <sadis.api.version>5.10.0</sadis.api.version>
160
161kafka
162^^^^^
163
164- Verify -SNAPSHOT version string is present.
165- Dependent components: aaa, bng, dhcpl2relay, igmp, mcast, olt, sadis
166- Modify pom.xml, update released version strings
167
168.. code:: XML
169
170 <aaa.api.version>x.x.x</aaa.api.version>
171 <bng.api.version>x.x.x</bng.api.version>
172 <dhcpl2relay.api.version>x.x.x</dhcpl2relay.api.version>
173 <igmp.api.version>x.x.x</igmp.api.version>
174 <mcast.api.version>x.x.x</mcast.api.version>
175 <olt.api.version>x.x.x</olt.api.version>
176 <sadis.api.version>5.10.0</sadis.api.version>
177
178mcast
179^^^^^
180
181- Verify -SNAPSHOT version string is present.
182- Dependent components: sadis
183- Modify pom.xml, update released version strings
184
185.. code:: XML
186
187 <sadis.api.version>5.10.0</sadis.api.version>
188
189olt
190^^^
191
192- Verify -SNAPSHOT version string is present.
193- Dependent components: sadis
194- Modify pom.xml, update released version strings
195
196.. code:: XML
197
198 <sadis.api.version>5.10.0</sadis.api.version>
Joey Armstrong56334fc2023-01-15 22:53:19 -0500199
200maclearner
201^^^^^^^^^^
202
203pppoeagent
204^^^^^^^^^^
205
206segmentrouting
207^^^^^^^^^^^^^^
Joey Armstrong4f93b762023-06-06 08:36:02 -0400208
209
210Validate release(d) version information
211---------------------------------------
212
213- Visit Maven Central.
214- Sanity check deployed pom.xml files contain correct
215
216 - Package and api versions.
217 - ONOS package version
218 - Dependent package version.
219
220- Yes an automation script should be created for this task.
221- A jenkins job can be run post deployment to perform validation.
222
223 - Input would be a config file containing expected versions.
224 - For complete coverage the job could be run:
225
226 - pre-release: validate incoming SNAPSHOT version(s).
227 - post-release: verify deployed artifact and pom.xml versions.
228 - post-validation: jenkins would increment expected versions.
229
230- TODO: Start by creating a config file populated with version strings.
231
232 - Static text can be used to maintain docs.voltha.org/release_notes/
233 - Config would also be used as input to voltha-release (hardcoded values).