Joey Armstrong | 54fd779 | 2024-01-18 09:12:30 -0500 | [diff] [blame] | 1 | Release overview (WIP) |
| 2 | ====================== |
| 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 | |
| 15 | - Baseline builds contain bulk cosmetic changes which may include: |
| 16 | |
| 17 | - Copyright notice ending date change. |
| 18 | - Cosmetic comemnt changes in source. |
| 19 | - Syntax formatting (gofmt -s -e -w) |
| 20 | |
| 21 | - Baseline builds may also remove suffixes like -dev from the VERSION file. |
| 22 | |
| 23 | - Now tag-branch or branch-tag the repo (depending on repository) for release. |
| 24 | A few things will need to happen: |
| 25 | |
| 26 | - A few distinct sets of patches for each branch are created: |
| 27 | |
| 28 | - Update VERSION string so master and voltha-2.12 patches cannot collide. |
| 29 | |
| 30 | - branch=voltha-2.12 : VERSION = {max}.{min}+1.0 |
| 31 | - branch=master : VERSION = {max+1}.{min}.0 |
| 32 | |
| 33 | - Update release branch .gitreview file: |
| 34 | |
| 35 | - defaultbranch=voltha-2.12 |
| 36 | - This will rebase/merge against the release branch rather than master. |
| 37 | |
| 38 | - Update go.mod version strings to be appropriate for branch={voltha-2.12, master} |
| 39 | |
| 40 | NOTE |
| 41 | |
| 42 | :: |
| 43 | |
| 44 | One item that may be confusing. Baseline builds for release are independent |
| 45 | of tagging & branching so may be initiated in parallel. Generally release |
| 46 | tasks for a repository are performed in hierarchial order, release |
| 47 | repositories and obtain the final version string. Next continue onto |
| 48 | releasing repositories that depend on ones released earlier. |
| 49 | |
| 50 | For ex, the release sequence for repo:voltha-go would be |
| 51 | 1) Release repo:votlha-protos |
| 52 | 2) Release repo:votlha-lib-go # Depends on voltha-protos |
| 53 | 3) Release repo:votlha-go # Depends on both. |
| 54 | |
| 55 | Todo |
| 56 | ---- |
| 57 | |
| 58 | - Add document references to existing release pages. |
| 59 | - Link to repo dependencies in howto/release/repositories |