Add to VOTLHA release process documentation.
overview/release_process.rst
----------------------------
o Document repo:ci-management as a core release dependency.
o Downstream repos cannot be tested until ci-management is branched.
howto/release/repositories/voltha-docs/
howto/release/repositories/voltha-lib-go/
--------------------------------------------------
o Create skeletons for release documentation.
howto/release/repositories/ci-management/misc.rst
-------------------------------------------------
o Document releasing ci-management.
o bttb.sh script used for {tag-branch,branch-tag}ing.
o Embed rst anchors so the doc can be :ref:erenced as a dependency.
Change-Id: I1920b160d99916f8147a89f2f74562f6c595c969
diff --git a/VERSION b/VERSION
index 562510f..6d8424a 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.12.23
+2.12.24
diff --git a/howto/release/repositories/ci-management/misc.rst b/howto/release/repositories/ci-management/misc.rst
new file mode 100644
index 0000000..59b6247
--- /dev/null
+++ b/howto/release/repositories/ci-management/misc.rst
@@ -0,0 +1,62 @@
+Misc Todo Items
+===============
+
+- Baseline build
+
+ - Update copyright notices :ref:`Release Task Copyright`
+
+- Pre-branch build
+ - make help
+ - make lint
+
+- Build
+
+ - make help
+ - make sterile
+ - make lint
+ - make build
+ - make test
+
+## Post editing on the release branch:
+
+- Update VERSION file to contain X.Y.{1+Z}
+- Update .gitreview, defaultbranch=votlha-X.Y
+
+- `bbsim-tests.groovy <https://gerrit.opencord.org/plugins/gitiles/ci-management/+/refs/heads/master/jjb/pipeline/voltha/bbsim-tests.groovy#35>`_
+
+.. code:: groovy
+
+ // -----------------------------------------------------------------------
+ // Intent: Return branch name for the script. A hardcoded value is used
+ // as a guarantee release jobs are running in an expected sandbox.
+ // -----------------------------------------------------------------------
+ String branchName()
+ {
+ String br = 'master' // <<----** Change to release branch
+
+ // "${branch}" is assigned by jenkins
+ if (br != branch)
+ {
+ String err = [
+ 'ERROR: Detected invalid branch',
+ "(expected=[${br}] != found=[${branch}])"
+ ].join(' ')
+ throw new Exception(err) // groovylint-disable-line ThrowException
+ }
+ return (br)
+ }
+
+## TODO
+
+- Tools bbsim and voltctl are versioned for release.
+- Track down which test scripts contain hardcoded versions for checkout.
+
+ - Command use is all over the place and not all are being frozen.
+ - Abstract this into makefile targets (~voltctl) or a central script
+ that simply returns version string for a package. A standalone entity
+ will simplify maintenance and can be generated/autoamtically frozen
+ on a branch at release time.
+
+- Consider tool versioning in general. Planning for tool upgrades helps
+ minimize unplanned breakage.
+
diff --git a/howto/release/repositories/ci-management/release.rst b/howto/release/repositories/ci-management/release.rst
new file mode 100644
index 0000000..f90440e
--- /dev/null
+++ b/howto/release/repositories/ci-management/release.rst
@@ -0,0 +1,82 @@
+.. _Release Repository ci-management:
+
+Repository: ci-management
+=========================
+
+- `repo:ci-management <https://gerrit.opencord.org/plugins/gitiles/ci-management>`_
+- First repsitory to release.
+- One of only three repositories to branch-then-tag.
+- Dependency for releasing all other repositories, test suites are
+ launched from release branch=votha-X.Y.
+
+Release: {Tag,Branch}ing script
+-------------------------------
+`repo:voltha-release <https://gerrit.opencord.org/plugins/gitiles/voltha-release>`_ :: `bttb.sh <https://gerrit.opencord.org/plugins/gitiles/voltha-release/+/refs/heads/master/bttb.sh>`_ (branch-tag/or/tag-branch)
+
+The bttb.sh script will perform several tasks to release a repository.
+
+- Clone a named sandbox.
+- Identify release activity by repository name: tag-branch or branch-tag.
+
+## Identify release activity by repository (TagBranch-or-BranchTag)
+
+.. code :: python
+
+ # Identify by repository name then tag-branch or branch-tag:
+ if repo in ['ci-management', 'voltha-helm-charts', 'voltha-system-tests']:
+ create_branch voltha-X.Y
+ create_tag attached to branch=voltha-X.Y
+ else:
+ create_tag 2.12.0 OR v2.12.0
+ create_branch voltha-2.12 attached to tag=2.12.0
+
+ % git push {tags,branches}
+
+## Create a release dev branch for edits
+
+.. code-block:: shell-session
+ :caption: Identify release activity by repository
+
+ % git clone -b dev-joey voltha-2.12 (or origin/voltha-2.12)
+
+ # Edit VERSION file: X.Y.{1+Z}
+ % echo 'X.Y.{1+Z}' > VERSION
+
+ # Edit .gitreview: defaultbranch=voltha-X.Y
+ % grep -v 'defaultbranch' .gitreview > .gitreview.tmp
+ % echo "defaultbranch=voltha-2.12" >> .gitreview.tmp
+ % mv -f .gitreview.tmp .gitreview
+
+## Command usage: bttb.sh
+
+.. code-block:: shell-session
+ :caption: Release tagging and branching
+
+ % git clone ssh://gerrit.opencord.org:29418/voltha-release
+ % cd voltha-release
+
+ % ./bttb.sh --help
+
+ declare -a args=()
+
+ args+=('--clean') # Remove existing checkouts
+ args+=('--edit') # Edit VERISON, commit message, etc
+
+ args+=('--[no-]gerrit') # View repo branch & tags early
+ args+=('--sandbox' './sandbox') # git clone target directory
+
+ args+=('--repo' 'ci-management')
+ args+=('--version' '2.12') # votlha-2.12 release
+
+ args+=('--jira' 'VOL-5020') # Jira ticket: release the repository
+ args+=('--jira' 'VOL-5021') # addendum
+ args+=('--jira' 'VOL-5022')
+
+ # Generate branch={master,voltha-2.12} commit messages
+ args+=('--commit-message-dir' "${PWD}/sandbox/messages")
+
+ % ./bttb.sh "${args[@]}" 2>&1 | tee ci-management.log
+
+See Also
+--------
+https://docs.voltha.org/master/release_notes/release_process.html
diff --git a/howto/release/repositories/voltha-docs/dependencies.rst b/howto/release/repositories/voltha-docs/dependencies.rst
new file mode 100644
index 0000000..e3b0fa6
--- /dev/null
+++ b/howto/release/repositories/voltha-docs/dependencies.rst
@@ -0,0 +1,3 @@
+Release Dependencies
+====================
+
diff --git a/howto/release/repositories/voltha-docs/index.rst b/howto/release/repositories/voltha-docs/index.rst
new file mode 100644
index 0000000..2a7f02b
--- /dev/null
+++ b/howto/release/repositories/voltha-docs/index.rst
@@ -0,0 +1,9 @@
+Repository: voltha-lib-go
+=========================
+
+.. toctree::
+ :maxdepth: 1
+
+ dependencies
+ misc
+ release
diff --git a/howto/release/repositories/voltha-docs/misc.rst b/howto/release/repositories/voltha-docs/misc.rst
new file mode 100644
index 0000000..6f2c12e
--- /dev/null
+++ b/howto/release/repositories/voltha-docs/misc.rst
@@ -0,0 +1,13 @@
+Misc Todo Items
+===============
+
+- Baseline build
+
+ - Update copyright notices :ref:`Release Task Copyright`
+
+- Pre-branch build
+
+ - make help
+ - make lint # targets: lintcheck
+ - make reload
+ - make test # interactive viewing
diff --git a/howto/release/repositories/voltha-lib-go/dependencies.rst b/howto/release/repositories/voltha-lib-go/dependencies.rst
new file mode 100644
index 0000000..e1775f0
--- /dev/null
+++ b/howto/release/repositories/voltha-lib-go/dependencies.rst
@@ -0,0 +1,4 @@
+Release Dependencies
+====================
+
+- :ref:`_Release Repository ci-management`
diff --git a/howto/release/repositories/voltha-lib-go/deps.rst b/howto/release/repositories/voltha-lib-go/deps.rst
new file mode 100644
index 0000000..e1775f0
--- /dev/null
+++ b/howto/release/repositories/voltha-lib-go/deps.rst
@@ -0,0 +1,4 @@
+Release Dependencies
+====================
+
+- :ref:`_Release Repository ci-management`
diff --git a/howto/release/repositories/voltha-lib-go/index.rst b/howto/release/repositories/voltha-lib-go/index.rst
index 0702669..2a7f02b 100644
--- a/howto/release/repositories/voltha-lib-go/index.rst
+++ b/howto/release/repositories/voltha-lib-go/index.rst
@@ -4,3 +4,6 @@
.. toctree::
:maxdepth: 1
+ dependencies
+ misc
+ release
diff --git a/howto/release/repositories/voltha-lib-go/misc.rst b/howto/release/repositories/voltha-lib-go/misc.rst
index 9658441..7a106fe 100644
--- a/howto/release/repositories/voltha-lib-go/misc.rst
+++ b/howto/release/repositories/voltha-lib-go/misc.rst
@@ -7,6 +7,7 @@
- Golang syntax formatting :ref:`Release Task Golang Syntax`
- Pre-branch build
+
- Update module versions for voltha/onos components
- make mod-update
diff --git a/overview/release_process.rst b/overview/release_process.rst
index 5abf658..cfd6c22 100644
--- a/overview/release_process.rst
+++ b/overview/release_process.rst
@@ -2,9 +2,9 @@
======================
This document describes the technical steps of VOLTHA's release process.
-The document assumes you are creating a release named voltha-X.Y, where X is the major release versio
-and the y is the minor.
-See versioning in the :doc:`releases documentation </overview/releases>`
+The document assumes you are creating a release named voltha-X.Y, where X
+is the major release version and Y is the minor. See versioning in the
+:doc:`releases documentation </overview/releases>`
Code Freeze and pre-release testing
-----------------------------------
@@ -123,7 +123,7 @@
7. Start over with the next app
-.. note::
+ss.. note::
Given component inter dependencies, ONOS apps need to be released in order:
1. sadis
@@ -149,15 +149,27 @@
Creating the release
--------------------
-Once the components have been tested and the release is considered ready there are 3 more elements that need to be
-tagged:
+Once the components have been tested and the release is considered ready
+there are 4 more elements that need to be tagged:
- `VOLTHA Helm Charts <https://github.com/opencord/voltha-helm-charts>`_
- `VOLTHA System Tests <https://github.com/opencord/voltha-system-tests>`_
- `VOLTHA docs <https://github.com/opencord/voltha-docs>`_
+- `repo:ci-management <https://gerrit.opencord.org/plugins/gitiles/ci-management>`_
-These 3 repos are the only ones that receive a X.Y.Z tag. Other repos that contain individual
-components have their own versioning/release cadence, driven by SemVer.
+These 4 repos are the only ones that receive a X.Y.Z tag.
+Other repos that contain individual components have their own
+versioning/release cadence, driven by SemVer.
+
+repo:ci-management
+^^^^^^^^^^^^^^^^^^
+
+Jenkins pipelines for building & testing release jobs are retrieved from
+repository branch=voltha-X.Y. This repository is a dependency for all
+other VOLTHA repositories that invoke test suites.
+
+See Also: :ref:`_Release Repository ci-management`
+
Helm Charts
^^^^^^^^^^^