VOL-4865 - Fix broken links on the release notes page.

overview/releases.rst
---------------------
   o Refresh gerrit patch 33439 -- some changes already merged in.
   o Change refernece rst files to html to view the generated document.
   o Exclusions already added in config.py for the sphinx chicken-n-egg problem.

Added a new python 3.10+ patch so linkcheck could run to completion.

Add more config exclusions.

Change-Id: I586718b70afabbd78aeff3072fd301413f3e55c3
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]