blob: 5d54fb435dd9b4aa37f36608bb6516dbdf43f8ec [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 Armstrong4f93b762023-06-06 08:36:02 -040085Update Maven plugin versions for security, bugs, logs, etc
86^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
87.. code:: XML
88
89 <!-- SpotBugs Static Analysis -->
90 <plugin>
91 <groupId>com.github.spotbugs</groupId>
92 <artifactId>spotbugs-maven-plugin</artifactId>
93 <version>4.7.3.4</version>
94 </plugin>
95
96 <plugin>
97 <groupId>com.h3xstream.findsecbugs</groupId>
98 <artifactId>findsecbugs-plugin</artifactId>
99 <version>1.12.0</version>
100 </plugin>
101
102Update copyright notice to be inclusive of the year last modified
103^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
104
105`Copyright notice syntax <https://github.com/joey-onf/copyright>`_
106
107.. code:: XML
108
109 <?xml version="1.0" encoding="UTF-8"?>
110 <!--
111 ~ Copyright 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
112 ~
113 ~ Licensed under the Apache License, Version 2.0 (the "License");
114 -->
115
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500116
117Dependency Hierarchy
118--------------------
119
120Components are built and released in version hiearchy order.
121
122sadis
123^^^^^
124
125- Verify -SNAPSHOT version string is present.
126- Dependent components: none
127- Scan pom.xml for version dependencies:
128
129.. code:: XML
130
Joey Armstrong399f2762023-01-11 11:41:28 -0500131 <sadis.api.version>5.10.0-SNAPSHOT</sadis.api.version>
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500132
133
134aaa
135^^^
136
137- Verify -SNAPSHOT version string is present.
138- Dependent components: sadis
139- Modify pom.xml, update released version strings
140
141.. code:: XML
142
Joey Armstrong399f2762023-01-11 11:41:28 -0500143 <sadis.api.version>5.10.0</sadis.api.version>
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500144
145
Joey Armstrong399f2762023-01-11 11:41:28 -0500146dhcpl2relay
147^^^^^^^^^^^
148
149- Verify -SNAPSHOT version string is present.
150- Dependent components: sadis
151- Modify pom.xml, update released version strings
152
153.. code:: XML
154
155 <sadis.api.version>5.10.0</sadis.api.version>
156
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500157igmpproxy
158^^^^^^^^^
159
160- Verify -SNAPSHOT version string is present.
Joey Armstrong399f2762023-01-11 11:41:28 -0500161- Dependent components: sadis
Joey Armstrongbd6cc3d2023-01-09 19:52:12 -0500162- Modify pom.xml, update released version strings
163
164.. code:: XML
165
Joey Armstrong399f2762023-01-11 11:41:28 -0500166 <sadis.api.version>5.10.0</sadis.api.version>
167
168kafka
169^^^^^
170
171- Verify -SNAPSHOT version string is present.
172- Dependent components: aaa, bng, dhcpl2relay, igmp, mcast, olt, sadis
173- Modify pom.xml, update released version strings
174
175.. code:: XML
176
177 <aaa.api.version>x.x.x</aaa.api.version>
178 <bng.api.version>x.x.x</bng.api.version>
179 <dhcpl2relay.api.version>x.x.x</dhcpl2relay.api.version>
180 <igmp.api.version>x.x.x</igmp.api.version>
181 <mcast.api.version>x.x.x</mcast.api.version>
182 <olt.api.version>x.x.x</olt.api.version>
183 <sadis.api.version>5.10.0</sadis.api.version>
184
185mcast
186^^^^^
187
188- Verify -SNAPSHOT version string is present.
189- Dependent components: sadis
190- Modify pom.xml, update released version strings
191
192.. code:: XML
193
194 <sadis.api.version>5.10.0</sadis.api.version>
195
196olt
197^^^
198
199- Verify -SNAPSHOT version string is present.
200- Dependent components: sadis
201- Modify pom.xml, update released version strings
202
203.. code:: XML
204
205 <sadis.api.version>5.10.0</sadis.api.version>
Joey Armstrong56334fc2023-01-15 22:53:19 -0500206
207maclearner
208^^^^^^^^^^
209
210pppoeagent
211^^^^^^^^^^
212
213segmentrouting
214^^^^^^^^^^^^^^
Joey Armstrong4f93b762023-06-06 08:36:02 -0400215
216
217Validate release(d) version information
218---------------------------------------
219
220- Visit Maven Central.
221- Sanity check deployed pom.xml files contain correct
222
223 - Package and api versions.
224 - ONOS package version
225 - Dependent package version.
226
227- Yes an automation script should be created for this task.
228- A jenkins job can be run post deployment to perform validation.
229
230 - Input would be a config file containing expected versions.
231 - For complete coverage the job could be run:
232
233 - pre-release: validate incoming SNAPSHOT version(s).
234 - post-release: verify deployed artifact and pom.xml versions.
235 - post-validation: jenkins would increment expected versions.
236
237- TODO: Start by creating a config file populated with version strings.
238
239 - Static text can be used to maintain docs.voltha.org/release_notes/
240 - Config would also be used as input to voltha-release (hardcoded values).