diff --git a/Makefile b/Makefile
index cf6ca33..8481788 100644
--- a/Makefile
+++ b/Makefile
@@ -510,7 +510,7 @@
 ## -----------------------------------------------------------------------
 ## Intent: Parameterized test target
 ## -----------------------------------------------------------------------
-voltha-bbsim-test: venv-activate-patched
+voltha-bbsim-test: venv-activate-script
 	$(call run-robot-test,tests/bbsim)
 
 rwcore-restart-single-kind: ROBOT_MISC_ARGS += -X -i functionalANDrwcore-restart $(ROBOT_DEBUG_LOG_OPT)
@@ -653,11 +653,11 @@
 onos-ha-test: ROBOT_CONFIG_FILE := $(ROBOT_SANITY_SINGLE_PON_FILE)
 onos-ha-test: voltha-test
 
-voltha-test: ROBOT_MISC_ARGS += -e notready --noncritical non-critical
+voltha-test: ROBOT_MISC_ARGS += -e notready
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-voltha-test: venv-activate-patched
+voltha-test: venv-activate-script
 	$(call run-robot-test,tests/functional)
 
 bbsim-dmi-hw-management-test: ROBOT_MISC_ARGS +=  -e notreadyDMI -i functionalDMI -e bbsimUnimplementedDMI
@@ -672,7 +672,7 @@
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-voltha-dmi-test: venv-activate-patched
+voltha-dmi-test: venv-activate-script
 	$(call run-robot-test,tests/dmi-interface)
 
 # target to invoke single ONU pm data scenarios in ATT workflow
@@ -712,7 +712,7 @@
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-voltha-pm-data-test: venv-activate-patched
+voltha-pm-data-test: venv-activate-script
 # ROBOT_PM_CONFIG_FILE= is differnet
 #	$(call run-robot-test,tests/pm-data)
 
@@ -847,7 +847,7 @@
 onu-mib-audit-test-multiolt-kind-tt: ROBOT_CONFIG_FILE := $(ROBOT_SANITY_TT_MULTIPLE_OLT_FILE)
 onu-mib-audit-test-multiolt-kind-tt: voltha-onu-mib-audit-tests
 
-voltha-onu-mib-audit-tests: ROBOT_MISC_ARGS += -i functional -e notready  --noncritical non-critical
+voltha-onu-mib-audit-tests: ROBOT_MISC_ARGS += -i functional -e notready
 voltha-onu-mib-audit-tests: ROBOT_MISC_ARGS += $(ROBOT_DEBUG_LOG_OPT)
 voltha-onu-mib-audit-tests: ROBOT_FILE := Voltha_ONUMibAudit.robot
 voltha-onu-mib-audit-tests: openonu-go-adapter-tests
@@ -856,7 +856,7 @@
 memory-leak-test-single-pon-multi-onu-dt: ROBOT_CONFIG_FILE := $(ROBOT_SANITY_DT_SINGLE_PON_MULTI_ONU_FILE)
 memory-leak-test-single-pon-multi-onu-dt: voltha-memory-leak-tests
 
-voltha-memory-leak-tests: ROBOT_MISC_ARGS += -i functionalMemoryLeak -e notready  --noncritical non-critical
+voltha-memory-leak-tests: ROBOT_MISC_ARGS += -i functionalMemoryLeak -e notready
 voltha-memory-leak-tests: ROBOT_MISC_ARGS += $(ROBOT_DEBUG_LOG_OPT)
 voltha-memory-leak-tests: ROBOT_FILE := VOLTHA_Memory_Leak_Tests.robot
 voltha-memory-leak-tests: voltha-memory-leak-test
@@ -881,57 +881,57 @@
 onu-robustness-test-multi-uni-kind-tt: ROBOT_MISC_ARGS += -v unitag_sub:True -i functionalMultiUni
 onu-robustness-test-multi-uni-kind-tt: voltha-onu-robustness-tests
 
-voltha-onu-robustness-tests: ROBOT_MISC_ARGS += -e notready  --noncritical non-critical
+voltha-onu-robustness-tests: ROBOT_MISC_ARGS += -e notready
 voltha-onu-robustness-tests: ROBOT_MISC_ARGS += $(ROBOT_DEBUG_LOG_OPT)
 voltha-onu-robustness-tests: ROBOT_FILE := Voltha_ONUErrorTests.robot
 voltha-onu-robustness-tests: openonu-go-adapter-tests
 
-software-upgrade-test: venv-activate-patched
+software-upgrade-test: venv-activate-script
 	$(activate) \
 	  && cd tests/software-upgrades \
 	  && robot -V $(ROBOT_CONFIG_FILE) $(ROBOT_MISC_ARGS) $(ROBOT_FILE)
 
-voltha-dt-test: ROBOT_MISC_ARGS += -e notready  --noncritical non-critical
+voltha-dt-test: ROBOT_MISC_ARGS += -e notready
 
 ## CHECK
-voltha-dt-test: venv-activate-patched
+voltha-dt-test: venv-activate-script
 	$(activate) \
 	  && cd tests/dt-workflow \
 	  && robot -V $(ROBOT_CONFIG_FILE) $(ROBOT_MISC_ARGS) $(ROBOT_FILE)
 
-voltha-tt-test: ROBOT_MISC_ARGS += -e notready  --noncritical non-critical
+voltha-tt-test: ROBOT_MISC_ARGS += -e notready
 
 ## CHECK
-voltha-tt-test: venv-activate-patched
+voltha-tt-test: venv-activate-script
 	$(activate) \
 	  && cd tests/tt-workflow \
 	  && robot -V $(ROBOT_CONFIG_FILE) $(ROBOT_MISC_ARGS) $(ROBOT_FILE)
 
-voltha-tim-test: ROBOT_MISC_ARGS += -e notready  --noncritical non-critical
+voltha-tim-test: ROBOT_MISC_ARGS += -e notready
 
 ## Check
-voltha-tim-test: venv-activate-patched
+voltha-tim-test: venv-activate-script
 	$(activate) \
 	  && cd tests/tim-workflow \
 	  && robot -V $(ROBOT_CONFIG_FILE) $(ROBOT_MISC_ARGS) $(ROBOT_FILE)
 
 ## CHECK
-voltha-scale-test: venv-activate-patched
+voltha-scale-test: venv-activate-script
 	$(activate) \
 	  && cd tests/scale \
 	  && robot $(ROBOT_MISC_ARGS) Voltha_Scale_Tests.robot
 
 ## CHECK
-openonu-go-adapter-tests: venv-activate-patched
+openonu-go-adapter-tests: venv-activate-script
 	$(activate) \
 	  && cd tests/openonu-go-adapter \
 	  && robot -V $(ROBOT_CONFIG_FILE) $(ROBOT_MISC_ARGS) $(ROBOT_FILE)
 
-voltha-bbf-adapter-test: ROBOT_MISC_ARGS += -e notready  --noncritical non-critical
-voltha-bbf-adapter-test: venv-activate-patched
+voltha-bbf-adapter-test: ROBOT_MISC_ARGS += -e notready
+voltha-bbf-adapter-test: venv-activate-script
 	$(call run-robot-test,tests/bbf-adapter)
 
-voltha-memory-leak-test: venv-activate-patched
+voltha-memory-leak-test: venv-activate-script
 	$(call run-robot-test,tests/memory-leak)
 
 ##----------------##
@@ -943,7 +943,7 @@
 # tidy target will be more useful once issue with removing leading comments
 # is resolved: https://github.com/robotframework/robotframework/issues/3263
 # -----------------------------------------------------------------------
-tidy-robot: venv-activate-patched
+tidy-robot: venv-activate-script
 	$(activate) && python -m robot.tidy --inplace $(ROBOT_FILES)
 
 ## Variables for gendocs
@@ -965,7 +965,7 @@
 # -----------------------------------------------------------------------
 .PHONY: gendocs lint test
 # In future explore use of --docformat REST - integration w/Sphinx?
-gendocs: venv-activate-patched
+gendocs: venv-activate-script
 
 	$(call banner-enter)
 
@@ -998,7 +998,7 @@
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
 clean-all sterile :: clean
-	$(RM) -r venv-activate-patched
+	$(RM) -r venv-activate-script
 
 # -----------------------------------------------------------------------
 # -----------------------------------------------------------------------
diff --git a/makefiles/include.mk b/makefiles/include.mk
index 4df4c4c..b93ba1d 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -42,7 +42,6 @@
 include $(ONF_MAKEDIR)/commands/include.mk   # Tools and local installers
 
 include $(ONF_MAKEDIR)/virtualenv.mk#        # lint-{jjb,python} depends on venv
-include $(ONF_MAKEDIR)/patches/include.mk#   # Patch when python 3.10+ in use
 include $(ONF_MAKEDIR)/lint/include.mk
 
 include $(ONF_MAKEDIR)/gerrit/include.mk
diff --git a/makefiles/lint/robot/install.mk b/makefiles/lint/robot/install.mk
index b1f871c..d6cc842 100644
--- a/makefiles/lint/robot/install.mk
+++ b/makefiles/lint/robot/install.mk
@@ -28,7 +28,7 @@
 ## Intent: Install rflint python virtualenv package
 ## -----------------------------------------------------------------------
 $(lint-robot-cmd) : lint-robot-install
-lint-robot-install: venv-activate-patched
+lint-robot-install:
     # Verify package mentioned in requirements.txt
     # grep 'robotframework-lint' requirements.txt
 	$(activate) && pip freeze | grep 'robotframework-lint'
@@ -42,4 +42,3 @@
 	@echo
 
 # [EOF]
-
diff --git a/makefiles/patches/README.md b/makefiles/patches/README.md
deleted file mode 100644
index 56455c1..0000000
--- a/makefiles/patches/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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
-
-# Howto apply python 3.10+ patches
-
-See repo:voltha-docs for a working example.
-
-1) Modify Makefile
-2) Add target
-
-# [EOF]
\ No newline at end of file
diff --git a/makefiles/patches/help.mk b/makefiles/patches/help.mk
deleted file mode 100644
index d43e119..0000000
--- a/makefiles/patches/help.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# -*- makefile -*-
-# -----------------------------------------------------------------------
-# Copyright 2017-2024 Open Networking Foundation (ONF) and the ONF Contributors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# -----------------------------------------------------------------------
-
-ifdef VERBOSE
-  help :: help-patches
-else
-  help ::
-	@echo
-	@echo "[PATCHES] - helper on the road to python 3.10+ based testing"
-	@echo '  see also: help-patches'
-endif
-
-help-patches:
-	@echo
-	@echo "[PATCHES] - helper on the road to python 3.10+ based testing"
-	@echo "  patch-apply          Apply patches to the virtualenv directory"
-	@echo "  patch-create"
-	@echo "  patch-gather         Gather a list of potential patch sources"
-	@echo "  patch-init           Clone the virtualenv directory for patch creation."
-
-
-
-
-help-trailer ::
-	@echo "[SEE ALSO] patches-help"
-
-help-verbose ::
-	$(HIDE)$(MAKE) --no-print-directory help VERBOSE=1
-
-# [EOF]
diff --git a/makefiles/patches/include.mk b/makefiles/patches/include.mk
deleted file mode 100644
index 7aa581a..0000000
--- a/makefiles/patches/include.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- makefile -*-
-# -----------------------------------------------------------------------
-# Copyright 2022-2024 Open Networking Foundation (ONF) and the ONF Contributors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# -----------------------------------------------------------------------
-
-include $(ONF_MAKEDIR)/patches/help.mk
-
-patch-gather-args += --exclude=Makefile
-patch-gather-args += --exclude-dir=vault
-patch-gather-args += --exclude-dir=makefiles
-patch-gather-args += --exclude-dir=staging
-patch-gather-args += --exclude-dir=patches
-
-# patch-gather-args += -e 'from collections import'
-patch-gather-args += '-e' 'from collections import Mapping'
-patch-gather-args += '-e' 'from collections import MutableMapping'
-
-# Defined by [Mm]akefile or makefiles/virtualenv.mk
-venv-name   ?= $(error $(MAKE) venv-name= is required)
-
-PATCH_PATH  ?= $(error $(MAKE) PATCH_PATH= is required)
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-gather:
-	grep -r $(patch-gather-args)
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-diff:
-	$(HIDE)diff -qr staging $(venv-name) \
-	    | awk '{print "# diff -Naur "$$2" "$$4}' \
-	    | tee $@.log
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-create:
-	mkdir -p patches/$(PATCH_PATH)
-	diff -Naur staging/$(PATCH_PATH) $(venv-name)/$(PATCH_PATH) | tee patches/$(PATCH_PATH)/patch
-	exit 1
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-patch-init:
-	find "$(venv-name)" -name '__pycache__' -type d -print0 \
-	    | xargs -I'{}' --null --no-run-if-empty $(RM) -r {}
-	mkdir -p staging
-	rsync -rv --checksum "$(venv-name)/." "staging/."
-	@echo "Modify files beneath staging/ to create a patch source"
-
-# [SEE ALSO]
-# ---------------------------------------------------------------------------
-# https://bobbyhadz.com/blog/python-importerror-cannot-import-name-mapping-from-collections
-# ---------------------------------------------------------------------------
-# [EOF]
diff --git a/makefiles/virtualenv.mk b/makefiles/virtualenv.mk
index 8beef54..6b781e3 100644
--- a/makefiles/virtualenv.mk
+++ b/makefiles/virtualenv.mk
@@ -43,6 +43,7 @@
 ##    o place on the right side of colon as a target dependency
 ##    o When the script does not exist install the virtual env and display.
 ## ----------------------------------------------------------------------
+venv-activate-script: $(venv-activate-script)
 $(venv-activate-script):
 	@echo
 	@echo "============================="
@@ -61,18 +62,6 @@
 ## Intent: Explicit named installer target w/o dependencies.
 ##         Makefile targets should depend on venv-activate-script.
 ## -----------------------------------------------------------------------
-venv-activate-patched := $(venv-activate-script).patched
-venv-activate-patched : $(venv-activate-patched)
-$(venv-activate-patched) : $(venv-activate-script)
-	$(call banner-enter,Target $@)
-	$(onf-mk-top)/../patches/python_310_migration.sh --venv "$(venv-name)" 'apply'
-	touch $@
-	$(call banner-leave,Target $@)
-
-## -----------------------------------------------------------------------
-## Intent: Explicit named installer target w/o dependencies.
-##         Makefile targets should depend on venv-activate-script.
-## -----------------------------------------------------------------------
 venv: $(venv-activate-script)
 
 ## -----------------------------------------------------------------------
diff --git a/patches/README.md b/patches/README.md
deleted file mode 100644
index f3302b9..0000000
--- a/patches/README.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Migration support for python 3.10+
-
-## Intent
-
-Applications of patches will enable local use of newer python versions
-available with a recent OS install or package manager installation.
-Makefile targets will fail out of the box w/o modifying collection imports.
-
-Create new patches as needed to help testing along.
-Eventually this hierarchy can be dismantled once the latest interpreter
-is generally in use.
-
-## patches/
-
-This directory contains patch files that can be directly applied to sources
-in the python virtualenv directory.  Patches are created to support use of
-three python version variants for the robot ramework:
-    python 2x       (deprecated)
-    python >= 3.10  (collections.abc required)
-    python < 3.10   (collections.abc optional)
-
-
-# .venv/
-
-Makefile will first create a python virtualenv directory to selectively
-use packages.  After setup patches are applied to venv (as a transition)
-to fully enable support for local interpreter use for newer OS installs.
-
-
-# staging/
-
-The staging directory is used for comparison with the .venv directory
-to generate patches.  Populate the directory with a copy of a cleanly
-patched virtual interpreter then modify files benath/ staging to generate
-a patch from.
-
-% make sterile
-% make .venv
-% mkdir staging
-% rsync -rv --checksum .venv/. staging/.
-[NOTE] Make python 3.10+ migration edits beneath staging as needed
-% make patch-gather
-% make sterile
-% make lint
-
-
-# makefile targets
-
-make patch-gather:
-   * gather a list of potential sources to edit.
-
-make patch-apply:
-   * Gather a list of patch files.
-   * Apply each in turn to sources in the virtualenv directory.
-
-
-# Verify installation
-   * make lint -or- make test
-
-# [EOF]
\ No newline at end of file
diff --git a/patches/lib/python3.10/site-packages/robot/utils/normalizing.py/patch b/patches/lib/python3.10/site-packages/robot/utils/normalizing.py/patch
deleted file mode 100644
index ae8619a..0000000
--- a/patches/lib/python3.10/site-packages/robot/utils/normalizing.py/patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- vault/lib/python3.10/site-packages/robot/utils/normalizing.py	2022-11-26 06:59:47.438751606 -0500
-+++ .venv/lib/python3.10/site-packages/robot/utils/normalizing.py	2022-11-26 06:57:29.960476182 -0500
-@@ -13,10 +13,7 @@
- #  See the License for the specific language governing permissions and
- #  limitations under the License.
- 
--try: # python >= 3.10
--    from collections.abc import MutableMapping
--except ImportError: # python 2x
--    from collections import MutableMapping
-+from collections import MutableMapping
- 
- from .platform import IRONPYTHON, PY_VERSION, PY3
- from .robottypes import is_dict_like, is_unicode
diff --git a/patches/lib/python3.10/site-packages/robot/utils/robottypes3.py/patch b/patches/lib/python3.10/site-packages/robot/utils/robottypes3.py/patch
deleted file mode 100644
index d1aa540..0000000
--- a/patches/lib/python3.10/site-packages/robot/utils/robottypes3.py/patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- vault/lib/python3.10/site-packages/robot/utils/robottypes3.py	2022-11-26 07:00:17.126386733 -0500
-+++ .venv/lib/python3.10/site-packages/robot/utils/robottypes3.py	2022-11-26 06:57:29.956476232 -0500
-@@ -13,12 +13,7 @@
- #  See the License for the specific language governing permissions and
- #  limitations under the License.
- 
--try: # python >= 3.10
--    from collections.abc import Mapping
--    from collections     import UserString
--except ImportError: # python 2x
--    from collections import Mapping, UserString
--
-+from collections import Mapping, UserString
- from io import IOBase
- 
- from .platform import RERAISED_EXCEPTIONS
diff --git a/patches/python_310_migration.sh b/patches/python_310_migration.sh
deleted file mode 100755
index b522caa..0000000
--- a/patches/python_310_migration.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------
-# Copyright 2022-2024 Open Networking Foundation (ONF) and the ONF Contributors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# -----------------------------------------------------------------------
-
-##-------------------##
-##---]  GLOBALS  [---##
-##-------------------##
-set -euo pipefail
-
-## -----------------------------------------------------------------------
-## Intent: Display script documentation.
-## -----------------------------------------------------------------------
-function show_help()
-{
-    cat <<EOH
-Usage: $0
-  apply    Patch virtualenv python modules by version (3.10+).
-  backup   Create a tarball for work-in-progress.
-  gather   Display a list of potential source files to patch.
-
-  --venv   Installed venv directory to patch (override default)
-  --help   This message
-
-See Also
-  patches/README.md       Howto create a patch file.
-
-EOH
-    exit 0
-}
-
-##----------------##
-##---]  MAIN  [---##
-##----------------##
-declare dst='.venv'  # "vst_venv"
-declare src="staging"
-declare pat="patches"
-
-## -----------------------
-## Slurp available patches
-## -----------------------
-pushd "$pat" >/dev/null
-readarray -t fyls < <(find . -name 'patch' -print)
-popd         >/dev/null
-
-if [ $# -eq 0 ]; then set -- apply; fi
-
-while [ $# -gt 0 ]; do
-    opt="$1"; shift
-    case "$opt" in
-
-	-*help) show_help ;;
-	-*venv) dst="$1"; shift ;;
-
-	apply)
-	    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 "$path" ]; then
-		    echo "[SKIP] $path"
-		    continue
-		fi
-		
-		echo "[APPLY] $path"
-		patch -R -p1 < "../$pat/${path}/patch"
-	    done
-	    popd >/dev/null || { echo "popd $dst failed"; exit 1; }
-	    ;;
-
-	backup)
-	    mkdir ~/backups
-	    pushd "$src" || { echo "pushd $dst failed"; exit 1; }
-	    tar czvf ~/backups/vault."$(date '+%Y%m%d%H%M%S')" "${fyls[@]}"
-	    popd || { echo "popd $dst failed"; exit 1; }
-	    ;;
-
-	gather)
-	    for fyl in "${fyls[@]}";
-	    do
-		patchDir="$pat/$fyl"
-		mkdir -p "$patchDir"
-		diff -Naur "$src/$fyl" "$dst/$fyl" | tee "$pat/$fyl/patch"
-	    done
-	    find "$pat" -print
-	    ;;
-
-	help) show_help ;;
-
-	*)
-	    echo "ERROR: Unknown action [$opt]"
-	    exit 1
-	    ;;
-    esac
-
-    echo
-done
-
-# [EOF]
diff --git a/requirements.txt b/requirements.txt
index 1f0dfaf..c56e497 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
 # -*- makefile -*-;
 # -----------------------------------------------------------------------
-# Copyright 2019-2024 Open Networking Foundation Contributors
+# Copyright 2019-2025 Open Networking Foundation Contributors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,53 +14,37 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # -----------------------------------------------------------------------
-# SPDX-FileCopyrightText: 2019-2024 Open Networking Foundation Contributors
+# SPDX-FileCopyrightText: 2019-2025 Open Networking Foundation Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 
 virtualenv
 
-flake8==3.8.2
-pexpect==4.8.0
-pylint==2.5.2
-yamllint==1.23.0
+flake8==7.2.0
+pexpect==4.9.0
+pre-commit==4.2.0
+pylint==3.3.6
+yamllint==1.37.0
 
 # -----------------------------------------------------------------------
 # https://pypi.org/project/robotframework/#history
 # -----------------------------------------------------------------------
-robotframework==3.1.2                    # 2019-05-24
-# robotframework==6.1.1                    # 2019-05-24
+robotframework==7.2.2
+robotframework-importresource==0.2.0
 robotframework-kafkalibrary==0.0.3
-robotframework-lint==1.0
-robotframework-requests==0.7.0
+robotframework-lint==1.1
+robotframework-requests==0.9.7
+robotframework-robocop==6.0.3
 robotframework-sshlibrary==3.8.0
-
-# replace when we can use upstream (needs python 3.6)
-git+https://github.com/zdw/robotframework-importresource@b81b87aabaee0594e966687b41e3674b866f28ee
+robotframework-tidy==4.16.0
 cord-robot==2.1.10
 
-# -----------------------------------------------------------------------
-# https://pypi.org/project/robotframework-tidy/#history
-# robotframework-tidy 2.0 depends on robotframework>=4.0
-# -----------------------------------------------------------------------
-# robotframework-tidy==2.0
-
-# -----------------------------------------------------------------------
-# https://pypi.org/project/robotframework-robocop/#history
-# -----------------------------------------------------------------------
-# robotframework-robocop
-
-matplotlib==3.3.4
-requests==2.24.0
+matplotlib==3.10.1
+requests==2.32.3
+grpcio<=1.39.0  # Required for voltha-protos
 grpc-robot>=2.9.3
 kafka-robot>=2.3.2
-voltha-protos>=4.2.0
+voltha-protos>=5.6.2
 protobuf>=3.15.7,<3.20.0
 protobuf3-to-dict>=0.1.5
 device-management-interface>=1.2.1
-
-pre-commit
-
-# https://github.com/robotframework/robotframework/tree/v6.1.1#readme
-
-# [EOF]
