diff --git a/requirements.txt b/requirements.txt
index b112059b034688a897a0fcb4318effbaaf380929..5e4d359a2a07e2730713b91b211c106f5c00f585 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,15 +4,26 @@ jsonschema~=4.18.0
 fastapi~=0.100.0
 pydantic~=2.0.2
 ansible-runner==2.3.3
+uvicorn[standard]~=0.22.0
+httpx~=0.24.0
 
-uvicorn[standard]
-httpx
+ansible-core~=2.15.1
+ansible_merge_vars~=5.0.0
+GitPython~=3.1.31
+jinja2==3.1.1
+junos-eznc~=2.6.7
+jxmlease~=1.0.3
+ncclient~=0.6.13
+ruamel.yaml~=0.17.32
+xmltodict~=0.13.0
+dictdiffer~=0.9.0
+jmespath~=1.0.1
 
-pytest
-responses
+pytest~=7.4.0
+responses~=0.23.1
 sphinx
 sphinx-rtd-theme
-requests
+requests~=2.31.0
 docutils
 isort
 black
@@ -21,15 +32,3 @@ mypy
 ruff
 types-setuptools
 types-requests
-
-ansible-core~=2.15.1
-ansible_merge_vars
-GitPython
-jinja2==3.1.1
-junos-eznc
-jxmlease
-ncclient
-ruamel.yaml
-xmltodict~=0.13.0
-dictdiffer~=0.9.0
-jmespath~=1.0.1
diff --git a/setup.py b/setup.py
index 171fb13b6bdcc7a45725d0564502a22e78fa6115..708c3093c2c5805d10d00d7617fabb3ee79b3614 100644
--- a/setup.py
+++ b/setup.py
@@ -9,15 +9,15 @@ setup(
     url="https://gitlab.geant.org/goat/gap/lso",
     packages=find_packages(),
     install_requires=[
-        "jsonschema",
-        "fastapi",
-        "pydantic",
-        "ansible",
-        "requests",
-        "uvicorn",
-        "ncclient",
-        "xmltodict",
-        "netaddr",
+        "jsonschema~=4.18.0",
+        "fastapi~=0.100.0",
+        "pydantic~=2.0.2",
+        "ansible~=8.1.0",
+        "requests~=2.31.0",
+        "uvicorn~=0.22.0",
+        "ncclient~=0.6.13",
+        "xmltodict~=0.13.0",
+        "netaddr~=0.8.0",
         "jmespath~=1.0.0",
         "dictdiffer~=0.9.0",
         "ansible-runner~=2.3.3",