diff --git a/packages/py-flask-restx/package.py b/packages/py-flask-restx/package.py
index f6bcc0609695bd345fc2a02b688b9ae0f49f0dc8..171f1039e58691e4844c10a2a8eca24c8120fe3d 100644
--- a/packages/py-flask-restx/package.py
+++ b/packages/py-flask-restx/package.py
@@ -12,10 +12,11 @@ class PyFlaskRestx(PythonPackage):
     """
 
     homepage = "https://pypi.org/project/flask-restx"
-    pypi = 'flask-restx/flask-restx-1.0.5.tar.gz'
+    pypi = 'flask-restx/flask-restx-1.3.0.tar.gz'
 
     maintainers = ['paulapopa', 'ldomide']
 
+    version('1.3.0', '4f3d3fa7b6191fcc715b18c201a12cd875176f92ba4acc61626ccfd571ee1728')
     version('1.0.5', 'e23dc4ff24869c92faa719b7a58be1203ed741275ff32c9f03d0ab56ed01546c')
 
     # python_requires
diff --git a/packages/py-formencode/package.py b/packages/py-formencode/package.py
index 5557e1f68f96079f454b24b53c1abd81bb2dd6ae..f78e0e63f1772c1a50117283b3035eacc3530bf4 100644
--- a/packages/py-formencode/package.py
+++ b/packages/py-formencode/package.py
@@ -12,10 +12,11 @@ class PyFormencode(PythonPackage):
     """
 
     homepage = "https://pypi.org/project/FormEncode"
-    pypi = 'FormEncode/FormEncode-2.0.1.tar.gz'
+    pypi = 'FormEncode/FormEncode-2.1.0.tar.gz'
 
     maintainers = ['paulapopa', 'ldomide']
 
+    version('2.1.0', 'eb74d223078a28cf015fa88966c6e34f2d18d75127318d65c144bed9afc4263f')
     version('2.0.1', '8f2974112c2557839d5bae8b76490104c03830785d923abbdef148bf3f710035')
     version('2.0.0', 'f2eb92297417eb64e4aa8e368783a5ac1311e385d4f3ff3a181090608ea83711')
 
diff --git a/packages/py-lems/package.py b/packages/py-lems/package.py
index 12ec0d3c9ebf11630298dd128ed4c6a5b0eeb373..456c8676e5c866e3422a520dfe1919b7f2fc5751 100644
--- a/packages/py-lems/package.py
+++ b/packages/py-lems/package.py
@@ -12,10 +12,11 @@ class PyLems(PythonPackage):
     """
 
     homepage = "https://pypi.org/project/PyLEMS/"
-    pypi = 'PyLEMS/PyLEMS-0.6.0.tar.gz'
+    pypi = 'PyLEMS/PyLEMS-0.6.7.tar.gz'
 
     maintainers = ['paulapopa', 'ldomide']
 
+    version('0.6.7', 'b82b66dbe51206b6c3db915651aadfeb6e8eeb5a95d3114ca8b97725f2fafce6')
     version('0.6.0', '809cb1186be18fc0390f9656677847d3a2666cfae816ed82897cc91dfdfa8a1c')
 
     # python_requires
diff --git a/packages/py-pyaescrypt/package.py b/packages/py-pyaescrypt/package.py
index a50fdc18684935112c4e958a344993c77e8e741b..d0b38eb1a08622b0058f40f8ae0c3164bd5a2d2c 100644
--- a/packages/py-pyaescrypt/package.py
+++ b/packages/py-pyaescrypt/package.py
@@ -12,10 +12,11 @@ class PyPyaescrypt(PythonPackage):
     """
 
     homepage = "https://pypi.org/project/pyAesCrypt"
-    pypi = 'pyAesCrypt/pyAesCrypt-6.0.0.tar.gz'
+    pypi = 'pyAesCrypt/pyAesCrypt-6.1.1.tar.gz'
 
     maintainers = ['paulapopa', 'ldomide']
 
+    version('6.1.1', '6bf8f97c03ec0e42008da911ac25e523f11f160f684d5f2bc9579ce501be9eae')
     version('6.0.0', 'a26731960fb24b80bd3c77dbff781cab20e77715906699837f73c9fcb2f44a57')
 
     # python_requires
diff --git a/packages/py-tvb-contrib/package.py b/packages/py-tvb-contrib/package.py
index 0be799bf76b9c0da6582bd08edde64dbb4c79e0b..9aabdbaad43482466c622e85b26fdaab0c90b736 100644
--- a/packages/py-tvb-contrib/package.py
+++ b/packages/py-tvb-contrib/package.py
@@ -12,15 +12,16 @@ class PyTvbContrib(PythonPackage):
     """
 
     homepage = "https://www.thevirtualbrain.org/"
-    pypi = 'tvb-contrib/tvb-contrib-2.8.2.tar.gz'
+    pypi = 'tvb-contrib/tvb-contrib-2.9.tar.gz'
 
     maintainers = ['dionperd', 'paulapopa', "ldomide"]
 
+    version('2.9', '64e5f17c46b67c1f92b3cdfb863c7d5e1d97d913b26521a9567735270bb9ad25')
     version('2.8.2', 'ff5990e979cf1f87046d7bed2c265f9dec50f9d817abaabdf5df7ec4482b5063')
     version('2.8.1', '0b9bc5f837913f1cba007d25ae94c9df51bf43bf19c9fb2af14a90cb6a1e1a66')
 
     # python_requires
-    depends_on('python@3.8:3.10', type=('build', 'run'))
+    depends_on('python@3.8:', type=('build', 'run'))
 
     # setup_requires
     depends_on('py-pip', type='build')
@@ -36,7 +37,7 @@ class PyTvbContrib(PythonPackage):
     depends_on('py-dill', type=('build', 'run'))
 
     # Test dependency
-    depends_on('py-pytest@:7.1', type='test')
+    depends_on('py-pytest', type='test')
     
     @run_after('install')
     @on_package_attributes(run_tests=True)
diff --git a/packages/py-tvb-framework/package.py b/packages/py-tvb-framework/package.py
index 9d051b601c247315f67d0163264a9afa23241d1e..764ba19ad68ea83d95ca1ef6dc30ac7ae7805d33 100644
--- a/packages/py-tvb-framework/package.py
+++ b/packages/py-tvb-framework/package.py
@@ -14,10 +14,11 @@ class PyTvbFramework(PythonPackage):
     """
 
     homepage = "https://www.thevirtualbrain.org/"
-    pypi = 'tvb-framework/tvb-framework-2.8.2.tar.gz'
+    pypi = 'tvb-framework/tvb-framework-2.9.tar.gz'
 
     maintainers = ['paulapopa', 'ldomide']
 
+    version('2.9', '44f102bcfd63a09c9c2af662a004415f2fc64847c0376218011b27fd2bb03848')
     version('2.8.2', '00f4bdfc9faccf2df1a95695e231d7d4890cbf5ca7eac0474d52b976a51d91d5')
     version('2.8.1.1', '5f858398708453b3ea48de11c4ca1f098fe732738431ed421cc435d9bfc4b6fb')
     version('2.7.3.1', 'e1de0df0b8f43a317962b066790a5d724e1e6ae98ee124ad8b977f92aa228877')
@@ -28,7 +29,7 @@ class PyTvbFramework(PythonPackage):
     version('2.3', '0f3386135cdbd80bfd7d31f2e056b015a27ff6d081492db16274deed581b0aac')
 
     # python_requires
-    depends_on('python@3.8:3.10', type=('build', 'run'))
+    depends_on('python@3.8:', type=('build', 'run'))
 
     # setup_requires
     depends_on('py-setuptools', type='build')
@@ -53,7 +54,7 @@ class PyTvbFramework(PythonPackage):
     depends_on('py-requests', type=('build', 'run'))
     depends_on('py-scikit-learn', type=('build', 'run'))
     depends_on('py-scipy', type=('build', 'run'))
-    # siibra
+    depends_on('py-siibra@1.0:', type=('build', 'run'))
     depends_on('py-simplejson', type=('build', 'run'))
     depends_on('py-six', type=('build', 'run'))
     depends_on('py-sqlalchemy', type=('build', 'run'))
@@ -63,9 +64,7 @@ class PyTvbFramework(PythonPackage):
     depends_on('py-tvb-storage', type=('build', 'run'))
     depends_on('py-werkzeug', type=('build', 'run'))
 
-    # pytest@7.2: does not depend on py-py, which is needed for py-pytest-benchmark@:3 (https://github.com/ionelmc/pytest-benchmark/issues/226)
-    # simplest way to address this is to add an upper limit for pytest for now
-    depends_on('py-pytest@:7.1', type='test')
+    depends_on('py-pytest', type='test')
     depends_on('py-pytest-benchmark', type='test')
     depends_on('py-pytest-mock', type='test')
     depends_on('py-beautifulsoup4', type='test')
@@ -76,3 +75,4 @@ class PyTvbFramework(PythonPackage):
         pytest = which('pytest')
         pytest('--ignore', 'tvb/tests/framework/adapters/creators/siibra_base_test.py',
                '--ignore', 'tvb/tests/framework/adapters/creators/siibra_creator_test.py')
+
diff --git a/packages/py-tvb-library/package.py b/packages/py-tvb-library/package.py
index ea9407bbd82114679eec3615c72c9e042328364c..68786c670f759185e7b1687da8f886fc618d6cd8 100644
--- a/packages/py-tvb-library/package.py
+++ b/packages/py-tvb-library/package.py
@@ -14,10 +14,11 @@ class PyTvbLibrary(PythonPackage):
     """
 
     homepage = "https://www.thevirtualbrain.org/"
-    pypi = 'tvb-library/tvb-library-2.8.2.tar.gz'
+    pypi = 'tvb-library/tvb-library-2.9.tar.gz'
 
     maintainers = ['paulapopa', 'ldomide']
 
+    version('2.9', '0a65fa3d803ef8da3d69a0f27a13e40b79876ee6d5b627c34d0c9fc5c12697e6')
     version('2.8.2', '4222dadbecce53b29e2141801b1ca8eb99c4595ace6c7d0469f7e0a41d3f384a')
     version('2.8.1', 'be130b10e7e176d503709afd211ae728f45d4e8b4a6082c6f6fcfbc1be990d0c')
     version('2.8', '49624cc8ca0673f8590227a9246ea2ffa855ef7a4242235ce85263ff6f3db7c8')
@@ -31,7 +32,7 @@ class PyTvbLibrary(PythonPackage):
     version('2.3', '0595f2eca95e5ed4c7a1c88425914cc71d0ea7a9f4ec575b6a315ca2408ea801')
 
     # python_requires
-    depends_on('python@3.8:3.10', type=('build', 'run'))
+    depends_on('python@3.8:', type=('build', 'run'))
 
     # setup_requires
     depends_on('py-setuptools', type='build')
@@ -55,9 +56,7 @@ class PyTvbLibrary(PythonPackage):
     depends_on('py-tvb-data', type=('run', 'test'))
     depends_on('py-tvb-gdist', type=('run', 'test'))
 
-    # pytest@7.2: does not depend on py-py, which is needed for py-pytest-benchmark@:3 (https://github.com/ionelmc/pytest-benchmark/issues/226)
-    # simplest way to address this is to add an upper limit for pytest for now
-    depends_on('py-pytest@:7.1', type='test')
+    depends_on('py-pytest', type='test')
     depends_on('py-h5py', type='test')
     depends_on('py-pytest-benchmark', type='test')
     depends_on('py-pytest-xdist', type='test')
diff --git a/packages/py-tvb-storage/package.py b/packages/py-tvb-storage/package.py
index dbf0660a76936f25a26d45e587157ba05871fd78..d25e769018a1022597ea93dde6d4ad9d31a166e5 100644
--- a/packages/py-tvb-storage/package.py
+++ b/packages/py-tvb-storage/package.py
@@ -14,10 +14,11 @@ class PyTvbStorage(PythonPackage):
     """
 
     homepage = "https://www.thevirtualbrain.org/"
-    pypi = 'tvb-storage/tvb-storage-2.8.1.tar.gz'
+    pypi = 'tvb-storage/tvb-storage-2.9.tar.gz'
 
     maintainers = ['paulapopa', 'ldomide']
 
+    version('2.9', 'b64ac69a1ffee3ed18664d60012511d0d37c2205c1c2ee1030b442d23fbfbe52')
     version('2.8.1', '4bbfd65ab1e150cf28a8206bcf5e30a8a092293b108b1bbb3365e6675f6d8837')
     version('2.7.3', '7f8b4d60313003e3c2b5b2f370f0a3a33ea5b22fde8b3f428eee7f2874673e4f')
     version('2.7.2', '501443ceb9f6374922a024b07ef09138f826fd0deaa69883c63dd0dff34fb16c')
@@ -27,7 +28,7 @@ class PyTvbStorage(PythonPackage):
     version('2.3', 'e10bb40a486771703ba2776555ea5a453e619b07f10e4dea0d347043dee8f54b')
 
     # python_requires
-    depends_on('python@3.8:3.10', type=('build', 'run'))
+    depends_on('python@3.8:', type=('build', 'run'))
 
     # setup_requires
     depends_on('py-setuptools', type='build')
diff --git a/spack.yaml b/spack.yaml
index 5644d3f7c2b6a099207912818e3957b1eb08f6a0..4dc8dedc779746b435a5cc76acb79d1e1096ef50 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -46,13 +46,13 @@ spack:
     - py-siibra@1.0a9
     - py-snudda@2.0.1
     - py-spynnaker@7.0.0
-    - py-tvb-contrib@2.8.2
+    - py-tvb-contrib@2.9
     - py-tvb-data@2.8
-    - py-tvb-framework@2.8.2
+    - py-tvb-framework@2.9
     - py-tvb-gdist@2.2
-    - py-tvb-library@2.8.2
+    - py-tvb-library@2.9
     - py-tvb-multiscale@2.1.0.ebrains
-    - py-tvb-storage@2.8.1
+    - py-tvb-storage@2.9
     - py-viziphant@0.4.0
     - pynn-brainscales@8.0-a4
     - r-rgsl@0.1.1