[VOL-5009] - Update release notes

config.mk
makefiles/*
-----------
  o Refresh library makefiles from https://github.com/opencord/onf-make.
  o More lint targets added with exclusions in config.mk

makefiles/virtualenv.mk
patches/lib/python3.10/site-packages/robot/utils/normalizing.py/patch
patches/lib/python3.10/site-packages/robot/utils/robottypes3.py/patch
patches/python_310_migration.sh
---------------------------------------------------------------------
  o Continue normalizing virtualenv install directory.
  o Update patches to modify .venv VS vst_venv [, vdoc_venv, vfoo_venv, vbar_venv, ...)
  o virtualenv.mk now defines named targets for patching-up-to 3.10 installs.

release_notes/voltha_2.12.rst
-----------------------------
  o Update version string info.
  o Onos component table condensed and populated with versioned urls.
  o voltha components table is a WIP.

howto/release/repositories/
---------------------------
  o Begin capturing repo-specific activities for release.
  o Silly having to figure this out each release cycle.
  o Automation and release helper scripts can be found here:
    - https://github.com/joey-onf/voltha-release

sphinx_conf/exclude_patterns.py
-------------------------------
  o Roach squashing exercise, external repos pulled in as git-submodules.
  o New repository files appear as problems when running 'make reload'
  o Exclude files to squelch messages.

Change-Id: I7adf7b84498511f5cde1e43ad304f9e33283241e
diff --git a/makefiles/lint/python/find_utils.mk b/makefiles/lint/python/find_utils.mk
new file mode 100644
index 0000000..7ab4c4f
--- /dev/null
+++ b/makefiles/lint/python/find_utils.mk
@@ -0,0 +1,32 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Intent:
+#   o Construct a find command able to gather python files with filtering.
+#   o Used by library makefiles flake8.mk and pylint.mk for iteration.
+# -----------------------------------------------------------------------
+
+## -----------------------------------------------------------------------
+## Intent: Construct a string for invoking find \( excl-pattern \) -prune
+# -----------------------------------------------------------------------
+gen-python-find-excl = \
+  $(strip \
+	-name '__ignored__' \
+	$(foreach dir,$($(1)),-o -name $(dir)) \
+  )
+
+## -----------------------------------------------------------------------
+## Intent: Construct a find command to gather a list of python files
+##         with exclusions.
+## -----------------------------------------------------------------------
+## Usage:
+#	$(activate) & $(call gen-python-find-cmd) | $(args-n1) pylint
+## -----------------------------------------------------------------------
+gen-python-find-cmd = \
+  $(strip \
+    find . \
+      \( $(call gen-python-find-excl,onf-excl-dirs) \) -prune \
+      -o -name '*.py' \
+      -print0 \
+  )
+
+# [EOF]
diff --git a/makefiles/lint/python/flake8.mk b/makefiles/lint/python/flake8.mk
index bb474a9..cf1bc2b 100644
--- a/makefiles/lint/python/flake8.mk
+++ b/makefiles/lint/python/flake8.mk
@@ -32,18 +32,26 @@
 ## -----------------------------------------------------------------------
 ifndef NO-LINT-FLAKE8
   lint-flake8-mode := $(if $(have-python-files),modified,all)
-  lint : lint-flake8-$(lint-flake8-mode)
+  lint        : lint-flake8
+  lint-flake8 : lint-flake8-$(lint-flake8-mode)
 endif# NO-LINT-FLAKE8
 
 ## -----------------------------------------------------------------------
 ## Intent: exhaustive flake8 syntax checking
 ## -----------------------------------------------------------------------
+# Construct: find . \( -name '__ignored__' -o -name dir -o name dir \)
+# flake8-find-filter := $(null)
+# flake8-find-filter += -name '__ignored__'#    # for alignment
+# flake8-find-filter += $(foreach dir,$(onf-excl-dirs),-o -name $(dir)))
+
 lint-flake8-all: $(venv-activate-script)
 	$(HIDE)$(MAKE) --no-print-directory lint-flake8-install
 
-	$(activate)\
- && find . \( -name '$(venv-name)' \) -prune -o -name '*.py' -print0 \
-	| $(xargs-n1) flake8 --max-line-length=99 --count
+	$(activate) && $(call gen-python-find-cmd) \
+	    | $(xargs-n1) flake8 --max-line-length=99 --count
+
+#  && find . \( $(flake8-find-filter) \) -prune -o -name '*.py' -print0 \
+# 	| $(xargs-n1) flake8 --max-line-length=99 --count
 
 ## -----------------------------------------------------------------------
 ## Intent: check deps for format and python3 cleanliness
@@ -78,6 +86,7 @@
 	@echo '  $(MAKE) lint-pylint PYTHON_FILES=...'
 	@echo '  lint-flake8-modified  flake8 checking: only modified'
 	@echo '  lint-flake8-all       flake8 checking: exhaustive'
+	@echo '  lint-flake8-install   Install the flake8 command'
   endif
 
 $(if $(DEBUG),$(warning LEAVE))
diff --git a/makefiles/lint/python/include.mk b/makefiles/lint/python/include.mk
index 69811a5..ce7d7af 100644
--- a/makefiles/lint/python/include.mk
+++ b/makefiles/lint/python/include.mk
@@ -15,13 +15,17 @@
 # limitations under the License.
 # -----------------------------------------------------------------------
 
+$(if $(DEBUG),$(warning ENTER))
+
 ##-------------------##
 ##---]  GLOBALS  [---##
 ##-------------------##
 $(if $(UNSTABLE),$(eval lint-python-all := true))
 
-include $(MAKEDIR)/lint/python/flake8.mk
-include $(MAKEDIR)/lint/python/pylint.mk
-# include $(MAKEDIR)/lint/python/tox.mk
+include $(ONF_MAKEDIR)/lint/python/find_utils.mk
+include $(ONF_MAKEDIR)/lint/python/flake8.mk
+include $(ONF_MAKEDIR)/lint/python/pylint.mk
+
+$(if $(DEBUG),$(warning LEAVE))
 
 # [EOF]
diff --git a/makefiles/lint/python/pylint.mk b/makefiles/lint/python/pylint.mk
index 9dc1c7c..87ffb43 100644
--- a/makefiles/lint/python/pylint.mk
+++ b/makefiles/lint/python/pylint.mk
@@ -34,21 +34,26 @@
 ## -----------------------------------------------------------------------
 ifndef NO-LINT-PYLINT
   lint-pylint-mode := $(if $(have-python-files),modified,all)
-  lint : lint-pylint-$(lint-pylint-mode)
+  lint        : lint-pylint
+  lint-pylint : lint-pylint-$(lint-pylint-mode)
 endif# NO-LINT-PYLINT
 
 ## -----------------------------------------------------------------------
 ## Intent: exhaustive pylint syntax checking
 ## -----------------------------------------------------------------------
-pylint-find-args := $(null)
-pylint-find-args += -name '$(venv-name)'
-pylint-find-args += -o -name 'patches'
+
+# Construct: find . \( -name '__ignored__' -o -name dir -o name dir \)
+# pylint-find-filter := $(null)
+# pylint-find-filter += -name '__ignored__'#   # for alignment
+# pylint-find-filter += $(foreach dir,$(onf-excl-dirs),-o -name $(dir)))
+
+# pylint-find-filter := $(call gen-python-find-excl,onf-excl-dirs)
+# $(error pylint-find-filter := $(pylint-find-filter))
 lint-pylint-all: $(venv-activate-script)
 	$(MAKE) --no-print-directory lint-pylint-install
 
-	$(activate)\
- && find . \( $(pylint-find-args) \) -prune -o -name '*.py' -print0 \
-	| $(xargs-n1) pylint
+	$(activate) && $(call gen-python-find-cmd) | $(xargs-n1) pylint
+#	    | $(xargs-n1-clean) yamllint --strict
 
 ## -----------------------------------------------------------------------
 ## Intent: check deps for format and python3 cleanliness
@@ -82,6 +87,7 @@
 	@echo '  $(MAKE) lint-pylint PYTHON_FILES=...'
 	@echo '  lint-pylint-modified  pylint checking: only modified'
 	@echo '  lint-pylint-all       pylint checking: exhaustive'
+	@echo '  lint-pylint-install   Install the pylint command'
   endif
 
 $(if $(DEBUG),$(warning LEAVE))