More release docs for voltha-lib-go

Change-Id: Ia4ccad89877b654a6cbc91d0b032f0cadb17e60d
diff --git a/howto/release/index.rst b/howto/release/index.rst
index c177e17..a75a588 100644
--- a/howto/release/index.rst
+++ b/howto/release/index.rst
@@ -1,5 +1,5 @@
-Release
-=======
+Release Topics
+==============
 
 .. toctree::
    :maxdepth: 1
diff --git a/howto/release/repositories/index.rst b/howto/release/repositories/index.rst
index 60f9081..e35cd9d 100644
--- a/howto/release/repositories/index.rst
+++ b/howto/release/repositories/index.rst
@@ -1,5 +1,5 @@
-Release
-=======
+Release: Repositories
+=====================
 
 .. toctree::
    :maxdepth: 1
diff --git a/howto/release/repositories/voltha-lib-go/index.rst b/howto/release/repositories/voltha-lib-go/index.rst
new file mode 100644
index 0000000..7634c91
--- /dev/null
+++ b/howto/release/repositories/voltha-lib-go/index.rst
@@ -0,0 +1,7 @@
+Repository: voltha-lib-go
+=========================
+
+.. toctree::
+   :maxdepth: 1
+
+   release
diff --git a/howto/release/repositories/voltha-lib-go/release.rst b/howto/release/repositories/voltha-lib-go/release.rst
new file mode 100644
index 0000000..3f6aeea
--- /dev/null
+++ b/howto/release/repositories/voltha-lib-go/release.rst
@@ -0,0 +1,83 @@
+Repository: voltha-lib-go
+=========================
+
+- Tag and branch repositories (order is important)
+- Update .gitreview, set defaultbranch=voltha-2.12-beta for commits
+- Update VERSION file to prevent future conflicts.
+
+
+Release branching and tagging
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Releasing repository voltha-lib-go requires tag-then-release branching,
+first create a versioned tag 2.12.0-beta then create branch voltha-2.12-beta
+from the release tag.
+
+Repository tag names differ based on repository, golang repositories
+use tags with the prefix vee v1.2.3, v2.45.0
+
+.. code-block:: shell-session
+   :caption: First create a release tag
+
+   # Determine repository tagname convention (with/with-out vee)
+   git clone "ssh://gerrit.opencord.org:29418/${repo_name}.git"
+   git tag --list-tags
+
+   # ---------------------------
+   # Step 1 create a release tag
+   # ---------------------------
+   local branch_name='voltha-2.12-beta'
+   local tag_name='v2.12.0-beta'
+
+   git tag -a "$tag_name" -m "${branch_name} release"
+   git push origin "$tag_name"
+
+.. code-block:: shell-session
+   :caption: Create a release branch attached to the release tag
+
+   # ------------------------------------------------------------
+   # Step 2 - create a release branch attached to the release tag
+   # ------------------------------------------------------------
+   local branch_name='voltha-2.12-beta'
+   local tag_name='v2.12.0-beta'
+   local repo_name='voltha-lib-go'
+
+   git clone "ssh://gerrit.opencord.org:29418/${repo_name}.git"
+   git fetch --all --tags
+
+   git checkout -b "$branch_name" "tags/tag_name"
+   git push origin "$branch_name" "tags/$tag_name"
+
+See Also
+--------
+https://docs.voltha.org/master/release_notes/release_process.html
+
+
+.gitreview
+----------
+
+.. code-block:: shell-session
+   :caption: Create a release branch attached to the release tag
+
+   grep -v 'defaultbranch' .gitreview > .gitreview.tmp
+   echo "defaultbranch=voltha-2.12-beta" >> .gitreview.tmp
+   mv -f .gitreview.tmp .gitreview
+
+
+VERSION File
+^^^^^^^^^^^^
+
+Minor release version number must be incremented to prevent future conflicts
+with the patch branch.
+
+- branch=main VERSION=1.2.3
+
+  - Update VERSION to contain 1.2.4 or 1.3.0
+  - commit and merge
+
+- tag=2.12.0-beta, branch=voltha-2.12-beta
+
+  - Update VERSION file/patch branch to contain 1.2.3.1
+  - Update defaultbranch= in .gitreview
+  - commit and merge
+