Joey Armstrong | 86cffed | 2024-06-17 14:22:42 -0400 | [diff] [blame] | 1 | Release overview |
| 2 | ================ |
Joey Armstrong | 54fd779 | 2024-01-18 09:12:30 -0500 | [diff] [blame] | 3 | |
| 4 | For a VOLTHA release several actions and patches are applied to each repository. |
| 5 | Release 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 Armstrong | 86cffed | 2024-06-17 14:22:42 -0400 | [diff] [blame] | 15 | - Baseline builds contain no logic changes, only bulk cosmetic changes which may include: |
Joey Armstrong | 54fd779 | 2024-01-18 09:12:30 -0500 | [diff] [blame] | 16 | |
| 17 | - Copyright notice ending date change. |
Joey Armstrong | 86cffed | 2024-06-17 14:22:42 -0400 | [diff] [blame] | 18 | |
| 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 Armstrong | 54fd779 | 2024-01-18 09:12:30 -0500 | [diff] [blame] | 22 | - 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 Armstrong | 86cffed | 2024-06-17 14:22:42 -0400 | [diff] [blame] | 43 | - Extra credit |
| 44 | |
| 45 | - Run the `pre-commit hook script <https://pre-commit.com/>`_ and cleanup any linting problems reported. |
| 46 | |
Joey Armstrong | 54fd779 | 2024-01-18 09:12:30 -0500 | [diff] [blame] | 47 | NOTE |
| 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 | |
| 62 | Todo |
| 63 | ---- |
| 64 | |
| 65 | - Add document references to existing release pages. |
| 66 | - Link to repo dependencies in howto/release/repositories |
Joey Armstrong | 86cffed | 2024-06-17 14:22:42 -0400 | [diff] [blame] | 67 | |
| 68 | See 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>` |