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
+