diff --git a/Makefile b/Makefile
index ed53983..289559c 100644
--- a/Makefile
+++ b/Makefile
@@ -64,6 +64,9 @@
 # -----------------------------------------------------------------------
 # Create the virtualenv with all the tools installed
 # -----------------------------------------------------------------------
+.PHONY: venv
+venv: $(VENV_NAME)
+
 $(VENV_NAME):
 	@echo
 	@echo "============================="
diff --git a/VERSION b/VERSION
index 9fdd305..9005dd0 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.10.10
+2.10.11
diff --git a/conf.py b/conf.py
index 3523c3c..fbde864 100644
--- a/conf.py
+++ b/conf.py
@@ -292,6 +292,16 @@
         r'https://github.com/opencord/voltha-helm-charts/blob/master/README',
         r'https://github.com/atomix/atomix/releases/tag/atomix-3.1.9',
         r'https://github.com/atomix/atomix/releases/tag/atomix-3.1.8',
+        #
+        r'../release_notes/voltha_2.2.html',
+        r'../release_notes/voltha_2.3.html',
+        r'../release_notes/voltha_2.4.html',
+        r'../release_notes/voltha_2.5.html',
+        r'../release_notes/voltha_2.6.html',
+        r'../release_notes/voltha_2.7.html',
+        r'../release_notes/voltha_2.8.html',
+        r'../release_notes/voltha_2.9.html',
+        r'../release_notes/voltha_2.10.html',
     ]
 
 # -- Configure recommonmark to use AutoStructify -----------------------------
diff --git a/makefiles/help/include.mk b/makefiles/help/include.mk
index ccba3f4..4264c52 100644
--- a/makefiles/help/include.mk
+++ b/makefiles/help/include.mk
@@ -20,6 +20,10 @@
 help ::
 	@echo "Usage: $(MAKE) [options] [target] ..."
 	@echo
+	@echo '[Virtual Env]'
+	@echo '  venv           Create a python virtual environmen"
+	@echo "  $(VENV_NAME)"
+	@echo
 	@echo '[CLEAN]'
 	@echo '  clean          Remove generated targets'
 	@echo '  sterile        clean + remove virtual env interpreter install'
diff --git a/makefiles/patches/README.md b/makefiles/patches/README.md
new file mode 100644
index 0000000..995a23d
--- /dev/null
+++ b/makefiles/patches/README.md
@@ -0,0 +1,14 @@
+# Howto create a python 3.10+ patch
+
+1) Checkout voltha-docs
+2) cd voltha-docs
+3) make venv
+4) make patch-init
+5) modify the file to be patched beneath staging/${relative_path_to_patch}
+6) make patch-create PATCH_PATH=${relative_path_to_patch}
+    o This will create patches/${relative_path_to_patch}/patch
+7) Verify
+    o make sterile
+    o make venv
+
+# [EOF]
\ No newline at end of file
diff --git a/overview/releases.rst b/overview/releases.rst
index 42b30c3..8970f83 100644
--- a/overview/releases.rst
+++ b/overview/releases.rst
@@ -18,84 +18,108 @@
 --------
 
 .. list-table:: VOLTHA Releases
-   :widths: 25 25 25 30
+   :widths: 25 25 25 30 25
    :header-rows: 1
 
    * - Release
      - Release Date
      - End of Support date
      - Notes
+     -
    * - VOLTHA v1.0.0
      - Sep 12, 2017
      - Oct 6, 2017
      -
+     -
    * - VOLTHA v1.1.0
      - Oct 6, 2017
      - Nov 16, 2017
      -
+     -
    * - VOLTHA v1.1.1
      - Nov 16, 2017
      - Dec 21, 2017
      -
+     -
    * - VOLTHA v1.2.0
      - Dec 21, 2017
      - March 16, 2018
      -
+     -
    * - VOLTHA v1.2.1
      - March 16, 2018
      - April 30, 2018
      -
+     -
    * - VOLTHA v1.3
      - April 30, 2018
      - July 22, 2018
      -
+     -
    * - VOLTHA v1.4
      - July 22, 2018
      - October 02, 2018
      -
+     -
    * - VOLTHA v1.5
      - October 02, 2018
      - May 21, 2019
      -
+     -
    * - VOLTHA v2.0
      - May 21, 2019
      - July 30, 2019
      -
+     -
    * - VOLTHA v2.1
      - July 30, 2019
      - December 22, 2019
      -
-   * - `VOLTHA v2.2 <../release_notes/voltha_2.2.rst>`_
+     -
+   * - `VOLTHA v2.2 <../release_notes/voltha_2.2.html>`_
      - December 12, 2019
      - March 24, 2020
      -
-   * - `VOLTHA v2.3 <../release_notes/voltha_2.3.rst>`_
+     -
+   * - `VOLTHA v2.3 <../release_notes/voltha_2.3.html>`_
      - March 24, 2020
      - July 29, 2020
      -
-   * - `VOLTHA v2.4 <../release_notes/voltha_2.4.rst>`_
+     -
+   * - `VOLTHA v2.4 <../release_notes/voltha_2.4.html>`_
      - July 29, 2020
      - September 30, 2020
      -
-   * - `VOLTHA v2.5 <../release_notes/voltha_2.5.rst>`_
+     -
+   * - `VOLTHA v2.5 <../release_notes/voltha_2.5.html>`_
      - September 30, 2020
      - December 18, 2020
      -
-   * - `VOLTHA v2.6 <../release_notes/voltha_2.6.rst>`_
+     -
+   * - `VOLTHA v2.6 <../release_notes/voltha_2.6.html>`_
      - December 18, 2020
      - March 30, 2021
      -
-   * - `VOLTHA v2.7 <../release_notes/voltha_2.7.rst>`_
+     -
+   * - `VOLTHA v2.7 <../release_notes/voltha_2.7.html>`_
      - March 30, 2021
      - July 11, 2021
      -
-   * - `VOLTHA 2.8 <../release_notes/voltha_2.8.rst>`_
+     -
+   * - `VOLTHA 2.8 <../release_notes/voltha_2.8.html>`_
      - July 11, 2021
      - December 30, 2022
      - Long Term Support Release
-   * - `VOLTHA 2.9 <../release_notes/voltha_2.9.rst>`_
+     -
+   * - `VOLTHA 2.9 <../release_notes/voltha_2.9.html>`_
      - December 17, 2021
      - June 30, 2022
      -
+     -
+   * - `VOLTHA 2.10 <../release_notes/voltha_2.10.html>`_
+     - June 30, 2022
+     - December 30, 2022
+     -
+     -
 
 
diff --git a/patches/lib/python3.10/site-packages/sphinxcontrib/openapi/utils.py/patch b/patches/lib/python3.10/site-packages/sphinxcontrib/openapi/utils.py/patch
new file mode 100644
index 0000000..3fda183
--- /dev/null
+++ b/patches/lib/python3.10/site-packages/sphinxcontrib/openapi/utils.py/patch
@@ -0,0 +1,29 @@
+--- staging/lib/python3.10/site-packages/sphinxcontrib/openapi/utils.py	2022-12-02 18:47:40.050490678 -0500
++++ venv_docs/lib/python3.10/site-packages/sphinxcontrib/openapi/utils.py	2022-12-02 18:45:53.023832002 -0500
+@@ -10,12 +10,7 @@
+ 
+ from __future__ import unicode_literals
+ 
+-try:
+-    import collections.abc
+-    from collections.abc import Mapping
+-except ImportError: # fall through
+-    import collections
+-    from collections import Mapping
++import collections
+ 
+ import jsonschema
+ try:
+@@ -40,10 +35,10 @@
+     resolver = jsonschema.RefResolver(uri, spec)
+ 
+     def _do_resolve(node):
+-        if isinstance(node, Mapping) and '$ref' in node:
++        if isinstance(node, collections.Mapping) and '$ref' in node:
+             with resolver.resolving(node['$ref']) as resolved:
+                 return resolved
+-        elif isinstance(node, Mapping):
++        elif isinstance(node, collections.Mapping):
+             for k, v in node.items():
+                 node[k] = _do_resolve(v)
+         elif isinstance(node, (list, tuple)):
diff --git a/patches/python_310_migration.sh b/patches/python_310_migration.sh
index e02a75c..12d7ca8 100755
--- a/patches/python_310_migration.sh
+++ b/patches/python_310_migration.sh
@@ -21,18 +21,10 @@
 src="staging"
 pat="patches"
 
-## Update logic to: find . -name 'patch')
 declare -a fyls=()
-fyls+=('lib/python3.10/site-packages/robot/utils/normalizing.py')
-fyls+=('lib/python3.10/site-packages/robot/utils/robottypes3.py')
-fyls+=('lib/python3.10/site-packages/sphinx/util/typing.py')
-
-echo
-echo "==========================================================================="
-echo "CMD: $0"
-echo "PWD: $(/bin/pwd)"
-echo "ARGV: $*"
-echo "==========================================================================="
+pushd "$pat" >/dev/null
+fyls+=( $(find . -name 'patch' -print) )
+popd         >/dev/null
 
 if [ $# -eq 0 ]; then set -- apply; fi
 
@@ -54,14 +46,16 @@
 	    pushd "$dst" >/dev/null || { echo "pushd $dst failed"; exit 1; }
 	    for fyl in "${fyls[@]}";
 	    do
+		path="${fyl%/*}"
+
 		# Conditional install, jenkins may not support interpreter yet.
-		if [ ! -e "$fyl" ]; then
-		    echo "[SKIP] $fyl"
+		if [ ! -e "$path" ]; then
+		    echo "[SKIP] $path"
 		    continue
 		fi
 		
-		echo "[APPLY] $fyl"
-		patch -R -p1 < "../$pat/$fyl/patch"
+		echo "[APPLY] $path"
+		patch -R -p1 < "../$pat/${path}/patch"
 	    done
 	    popd >/dev/null || { echo "popd $dst failed"; exit 1; }
 	    ;;
@@ -88,6 +82,8 @@
 	    exit 1
 	    ;;
     esac
+
+    echo
 done
 
 # [EOF]
