blob: 95041e78595855367b3e6635af3b93551ccc9d03 [file] [log] [blame]
Joey Armstrong86cffed2024-06-17 14:22:42 -04001Release overview
2================
Joey Armstrong54fd7792024-01-18 09:12:30 -05003
4For a VOLTHA release several actions and patches are applied to each repository.
5Release also happens in a hierarchial manner due to dependencies.
6
7- Version string differs between branch=master and branch=voltha-2.12.
8- For ex repo:voltha-protos currently has:
9
10 - master=5.5.0
11 - voltha-2.12=5.4.11
12
13- For release create an initial baseline build to verify no pre-existing corruption or test failures are present.
14
Joey Armstrong86cffed2024-06-17 14:22:42 -040015 - Baseline builds contain no logic changes, only bulk cosmetic changes which may include:
Joey Armstrong54fd7792024-01-18 09:12:30 -050016
17 - Copyright notice ending date change.
Joey Armstrong86cffed2024-06-17 14:22:42 -040018
19 - Bulk edit scripts: `gather-and-update.sh <https://github.com/joey-onf/copyright/blob/origin/master/gather-and-update.sh>`_, `morph.pl <https://github.com/joey-onf/copyright/blob/origin/master/morph.pl>`_.
20
21 - Cosmetic comment changes in source.
Joey Armstrong54fd7792024-01-18 09:12:30 -050022 - Syntax formatting (gofmt -s -e -w)
23
24 - Baseline builds may also remove suffixes like -dev from the VERSION file.
25
26- Now tag-branch or branch-tag the repo (depending on repository) for release.
27 A few things will need to happen:
28
29 - A few distinct sets of patches for each branch are created:
30
31 - Update VERSION string so master and voltha-2.12 patches cannot collide.
32
33 - branch=voltha-2.12 : VERSION = {max}.{min}+1.0
34 - branch=master : VERSION = {max+1}.{min}.0
35
36 - Update release branch .gitreview file:
37
38 - defaultbranch=voltha-2.12
39 - This will rebase/merge against the release branch rather than master.
40
41 - Update go.mod version strings to be appropriate for branch={voltha-2.12, master}
42
Joey Armstrong86cffed2024-06-17 14:22:42 -040043- Extra credit
44
45 - Run the `pre-commit hook script <https://pre-commit.com/>`_ and cleanup any linting problems reported.
46
Joey Armstrong54fd7792024-01-18 09:12:30 -050047NOTE
48
49::
50
51 One item that may be confusing. Baseline builds for release are independent
52 of tagging & branching so may be initiated in parallel. Generally release
53 tasks for a repository are performed in hierarchial order, release
54 repositories and obtain the final version string. Next continue onto
55 releasing repositories that depend on ones released earlier.
56
57 For ex, the release sequence for repo:voltha-go would be
58 1) Release repo:votlha-protos
59 2) Release repo:votlha-lib-go # Depends on voltha-protos
60 3) Release repo:votlha-go # Depends on both.
61
62Todo
63----
64
65- Add document references to existing release pages.
66- Link to repo dependencies in howto/release/repositories
Joey Armstrong86cffed2024-06-17 14:22:42 -040067
68See Also
69--------
70
71- https://docs.voltha.org/master/release_notes/template.html?highlight=howto
72- `Release Notes <https://docs.voltha.org/master/release_notes/index.html>`_: `template <https://docs.voltha.org/master/release_notes/template.html>`