Page MenuHomeDevCentral

Improve Python requirements for Operations repository
Open, HighPublic

Description

We removed the Salt requirement because with OneDir, it became problematic in regard of dependencies management.

Comparing rOPS requirements.txt with what's installed on my environment, I see lot of dependencies missing.

When installing Salt (pip install salt), lot of Salt dependencies were missing like looseversion, tornado, msgpack.

Can we find a solution to create a virtual environment ready to use?

1aiohttp==3.9.5
2aiosignal==1.3.1
3attrs==23.2.0
4autocommand==2.2.2
5autopep8==2.3.1
6backports.tarfile==1.2.0
7black==24.4.2
8build==1.2.1
9certifi==2024.6.2
10cffi==1.16.0
11cfgv==3.4.0
12charset-normalizer==3.3.2
13cheroot==10.0.1
14CherryPy==18.10.0
15click==8.1.7
16contextvars==2.4
17cryptography==42.0.8
18distlib==0.3.8
19distro==1.9.0
20docutils==0.21.2
21filelock==3.15.4
22flake8==7.1.0
23frozenlist==1.4.1
24hvac==2.3.0
25identify==2.5.36
26idna==3.7
27immutables==0.20
28importlib_metadata==8.0.0
29inflect==7.3.0
30installer==0.7.0
31jaraco.classes==3.4.0
32jaraco.collections==5.0.1
33jaraco.context==5.3.0
34jaraco.functools==4.0.1
35jaraco.text==3.12.1
36Jinja2==3.1.4
37jmespath==1.0.1
38jsondiff==2.0.0
39keyring==25.5.0
40looseversion==1.3.0
41markdown-it-py==3.0.0
42MarkupSafe==2.1.5
43mccabe==0.7.0
44mdurl==0.1.2
45mock==5.1.0
46more-itertools==10.3.0
47msgpack==1.0.8
48multidict==6.0.5
49mypy-extensions==1.0.0
50nh3==0.2.19
51nodeenv==1.9.1
52packaging==24.1
53pathspec==0.12.1
54pika==1.3.2
55pkginfo==1.10.0
56platformdirs==4.2.2
57portend==3.2.0
58pre-commit-hooks @ file:///usr/home/dereckson/.cache/pre-commit/repo_w_lx7ge
59psutil==6.0.0
60pycodestyle==2.12.0
61pycparser==2.22
62pycryptodomex==3.20.0
63pyflakes==3.2.0
64Pygments==2.18.0
65pyOpenSSL==24.1.0
66pyproject_hooks==1.1.0
67python-dateutil==2.9.0.post0
68python-gnupg==0.5.2
69PyYAML==6.0.1
70pyzmq==26.0.3
71readme_renderer==44.0
72requests==2.32.3
73requests-toolbelt==1.0.0
74rfc3986==2.0.0
75rich==13.9.4
76ruamel.yaml==0.18.6
77ruamel.yaml.clib @ file:///opt/python/py311/ruamel.yaml.clib-0.2.8-cp311-cp311-freebsd_14_0_release_p3_amd64.whl#sha256=5de76d05393cb2013c928658f1931c0062cac4266351740d8ad7fdc725f2d5f6
78salt==3006.8
79semver==3.0.2
80setproctitle==1.3.3
81six==1.16.0
82tempora==5.6.0
83timelib==0.3.0
84tornado==6.4.1
85twine==5.1.1
86typeguard==4.3.0
87typing_extensions==4.12.2
88unittest-data-provider==1.0.1
89urllib3==2.2.2
90virtualenv==20.26.3
91yarl==1.9.4
92zc.lockfile==3.0.post1
93zipp==3.19.2

Event Timeline

dereckson triaged this task as Normal priority.Wed, Feb 25, 17:28
dereckson raised the priority of this task from Normal to High.
dereckson created this task.

If Salt dependencies are the issue, a possibility is to define requirements from https://github.com/saltstack/salt/tree/master/requirements

Salt dependencies are reasonable enough to add to requirements.txt:

distro>=1.9.0,<2
looseversion>=1.3.0,<2
msgpack>=1.1.2,<2
tornado>=6.5.4,<7

Another problem is 3006.8 is OK, 3006.23 triggers a strange issue: AttributeError: cannot access submodule 'cmdmod' of module 'salt.modules' (most likely due to a circular import) -> dichotomy search is needed here.

Finally, jsondiff is also required by scripts/bats/test_edit_acme_dns_accounts.sh.