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
 ^^^^^^^^^^^