Skip to content

Commit 285cf83

Browse files
committed
Migrate Salt packaging metadata to pyproject.toml
This change moves core metadata to the [project] table in pyproject.toml, cleans up requirement files for PEP 517 compatibility, ensures dependencies are dynamically discovered from .txt files, and updates static requirement files via pre-commit hooks.
1 parent b6c65a6 commit 285cf83

78 files changed

Lines changed: 820 additions & 2080 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.pre-commit-config.yaml

Lines changed: 279 additions & 74 deletions
Large diffs are not rendered by default.

pyproject.toml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,39 @@
1+
[project]
2+
name = "salt"
3+
description = "Portable, distributed, remote execution and configuration management system"
4+
readme = "README.rst"
5+
requires-python = ">=3.8"
6+
license = {text = "Apache Software License 2.0"}
7+
authors = [
8+
{name = "Thomas S Hatch", email = "thatch45@gmail.com"},
9+
]
10+
classifiers = [
11+
"Programming Language :: Python",
12+
"Programming Language :: Cython",
13+
"Programming Language :: Python :: 3",
14+
"Programming Language :: Python :: 3 :: Only",
15+
"Programming Language :: Python :: 3.8",
16+
"Programming Language :: Python :: 3.9",
17+
"Programming Language :: Python :: 3.10",
18+
"Development Status :: 5 - Production/Stable",
19+
"Environment :: Console",
20+
"Intended Audience :: Developers",
21+
"Intended Audience :: Information Technology",
22+
"Intended Audience :: System Administrators",
23+
"License :: OSI Approved :: Apache Software License",
24+
"Operating System :: POSIX :: Linux",
25+
"Topic :: System :: Clustering",
26+
"Topic :: System :: Distributed Computing",
27+
]
28+
dynamic = ["version", "dependencies", "optional-dependencies", "scripts", "entry-points"]
29+
30+
[tool.setuptools.dynamic]
31+
dependencies = {file = ["requirements/base.txt", "requirements/zeromq.txt"]}
32+
optional-dependencies = {crypto = {file = ["requirements/crypto.txt"]}}
33+
34+
[project.urls]
35+
Homepage = "https://saltproject.io"
36+
137
[tool.black]
238
exclude= """
339
/(

requirements/base.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
--constraint=constraints.txt
2-
31
# Dependencies are listed alphabetically by package name.
42
# Multiple entries for the same package (with different version constraints) are grouped together.
53

6-
aiohttp>=3.10.2
4+
aiohttp>=3.13.3
75
certifi>=2024.7.4
86
cffi>=2.0.0
97
# cheroot 8.5.2 fails to build with modern setuptools due to setuptools_scm_git_archive dependency
108
cheroot>=10.0.1
11-
cherrypy>=17.4.1
9+
cherrypy>=18.6.1
1210
# We need contextvars for salt-ssh
1311
contextvars
1412
croniter>=0.3.0,!=0.3.22; sys_platform != 'win32'
@@ -47,6 +45,7 @@ rpm-vercmp; sys_platform == 'linux'
4745
setproctitle>=1.2.3
4846
timelib>=0.2.5; python_version < '3.11'
4947
timelib>=0.3.0; python_version >= '3.11'
48+
tornado>=6.5.4
5049
urllib3>=1.26.20,<2.0.0; python_version < '3.10'
5150
urllib3>=2.6.3; python_version >= '3.10'
5251
virtualenv

requirements/darwin.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
# Darwin source distribution requirements
22
# Don't add any requirements here, add them in requirements/base.txt
33
# If they are macOS specific, place "; sys_platform == 'darwin'" in front of the requirement.
4-
5-
-r zeromq.txt

requirements/static/ci/py3.10/changelog.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile requirements/static/ci/changelog.in --python-platform=linux --python-version=3.10 --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -o=requirements/static/ci/py3.10/changelog.txt
2+
# uv pip compile requirements/static/ci/changelog.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -o=requirements/static/ci/py3.10/changelog.txt
33
click==8.1.3
44
# via
55
# click-default-group

requirements/static/ci/py3.10/cloud.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile requirements/base.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/cloud.in requirements/static/pkg/linux.in --python-platform=linux --python-version=3.10 --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -c=requirements/static/pkg/py3.10/linux.txt -o=requirements/static/ci/py3.10/cloud.txt
2+
# uv pip compile requirements/base.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/cloud.in requirements/static/pkg/linux.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -c=requirements/static/pkg/py3.10/linux.txt -o=requirements/static/ci/py3.10/cloud.txt
33
aiohappyeyeballs==2.6.1
44
# via
55
# -c requirements/static/ci/py3.10/linux.txt
@@ -447,11 +447,6 @@ pycparser==2.21
447447
# -r requirements/base.txt
448448
# -r requirements/static/pkg/linux.in
449449
# cffi
450-
pycryptodomex==3.19.1
451-
# via
452-
# -c requirements/static/ci/py3.10/linux.txt
453-
# -c requirements/static/pkg/py3.10/linux.txt
454-
# -r requirements/crypto.txt
455450
pyfakefs==5.3.1
456451
# via
457452
# -c requirements/static/ci/py3.10/linux.txt
@@ -708,6 +703,11 @@ tomli==2.2.1
708703
# via
709704
# -c requirements/static/ci/py3.10/linux.txt
710705
# pytest
706+
tornado==6.5.4
707+
# via
708+
# -c requirements/static/ci/py3.10/linux.txt
709+
# -c requirements/static/pkg/py3.10/linux.txt
710+
# -r requirements/base.txt
711711
transitions==0.9.0
712712
# via
713713
# -c requirements/static/ci/py3.10/linux.txt

requirements/static/ci/py3.10/darwin.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile requirements/base.txt requirements/darwin.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/darwin.in --python-platform=macos --python-version=3.10 --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/pkg/py3.10/darwin.txt -o=requirements/static/ci/py3.10/darwin.txt
2+
# uv pip compile requirements/base.txt requirements/darwin.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/darwin.in --python-platform=macos --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/pkg/py3.10/darwin.txt -o=requirements/static/ci/py3.10/darwin.txt
33
aiohappyeyeballs==2.6.1
44
# via
55
# -c requirements/static/pkg/py3.10/darwin.txt
@@ -328,10 +328,6 @@ pycparser==2.21
328328
# -c requirements/static/pkg/py3.10/darwin.txt
329329
# -r requirements/base.txt
330330
# cffi
331-
pycryptodomex==3.19.1
332-
# via
333-
# -c requirements/static/pkg/py3.10/darwin.txt
334-
# -r requirements/crypto.txt
335331
pyfakefs==5.3.1
336332
# via -r requirements/pytest.txt
337333
pygit2==1.13.1
@@ -493,6 +489,10 @@ toml==0.10.2
493489
# via -r requirements/static/ci/common.in
494490
tomli==2.2.1
495491
# via pytest
492+
tornado==6.5.4
493+
# via
494+
# -c requirements/static/pkg/py3.10/darwin.txt
495+
# -r requirements/base.txt
496496
transitions==0.9.0
497497
# via junos-eznc
498498
trustme==1.1.0

requirements/static/ci/py3.10/docs.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile requirements/base.txt requirements/zeromq.txt requirements/static/ci/docs.in --python-platform=linux --python-version=3.10 --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -o=requirements/static/ci/py3.10/docs.txt
2+
# uv pip compile requirements/base.txt requirements/zeromq.txt requirements/static/ci/docs.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -o=requirements/static/ci/py3.10/docs.txt
33
aiohappyeyeballs==2.6.1
44
# via
55
# -c requirements/static/ci/py3.10/linux.txt
@@ -224,10 +224,6 @@ pycparser==2.21
224224
# -c requirements/static/ci/py3.10/linux.txt
225225
# -r requirements/base.txt
226226
# cffi
227-
pycryptodomex==3.19.1
228-
# via
229-
# -c requirements/static/ci/py3.10/linux.txt
230-
# -r requirements/crypto.txt
231227
pyenchant==3.2.2
232228
# via sphinxcontrib-spelling
233229
pygments==2.17.2
@@ -314,6 +310,10 @@ timelib==0.3.0
314310
# via
315311
# -c requirements/static/ci/py3.10/linux.txt
316312
# -r requirements/base.txt
313+
tornado==6.5.4
314+
# via
315+
# -c requirements/static/ci/py3.10/linux.txt
316+
# -r requirements/base.txt
317317
typing-extensions==4.14.1
318318
# via
319319
# -c requirements/static/ci/py3.10/linux.txt

requirements/static/ci/py3.10/freebsd.txt

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile requirements/base.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in --universal --python-version=3.10 --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/pkg/py3.10/freebsd.txt -o=requirements/static/ci/py3.10/freebsd.txt
2+
# uv pip compile requirements/base.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in --universal --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/pkg/py3.10/freebsd.txt -o=requirements/static/ci/py3.10/freebsd.txt
33
aiohappyeyeballs==2.6.1
44
# via
55
# -c requirements/static/pkg/py3.10/freebsd.txt
@@ -347,10 +347,6 @@ pycparser==2.21
347347
# -r requirements/base.txt
348348
# -r requirements/static/pkg/freebsd.in
349349
# cffi
350-
pycryptodomex==3.19.1
351-
# via
352-
# -c requirements/static/pkg/py3.10/freebsd.txt
353-
# -r requirements/crypto.txt
354350
pyfakefs==5.3.1
355351
# via -r requirements/pytest.txt
356352
pyinotify==0.9.6 ; platform_system != 'openbsd' and sys_platform != 'darwin' and sys_platform != 'win32'
@@ -463,12 +459,7 @@ pyyaml==6.0.1
463459
# responses
464460
# yamllint
465461
# yamlordereddictloader
466-
pyzmq==25.0.2 ; sys_platform == 'win32'
467-
# via
468-
# -c requirements/static/pkg/py3.10/freebsd.txt
469-
# -r requirements/zeromq.txt
470-
# pytest-salt-factories
471-
pyzmq==25.1.2 ; sys_platform != 'win32'
462+
pyzmq==25.1.2
472463
# via
473464
# -c requirements/static/pkg/py3.10/freebsd.txt
474465
# -r requirements/zeromq.txt
@@ -545,6 +536,10 @@ toml==0.10.2
545536
# via -r requirements/static/ci/common.in
546537
tomli==2.2.1 ; python_full_version < '3.11'
547538
# via pytest
539+
tornado==6.5.4
540+
# via
541+
# -c requirements/static/pkg/py3.10/freebsd.txt
542+
# -r requirements/base.txt
548543
transitions==0.9.0 ; sys_platform != 'win32'
549544
# via junos-eznc
550545
trustme==1.1.0

requirements/static/ci/py3.10/lint.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile requirements/base.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in --python-platform=linux --python-version=3.10 --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -c=requirements/static/pkg/py3.10/linux.txt -o=requirements/static/ci/py3.10/lint.txt
2+
# uv pip compile requirements/base.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/ci/py3.10/linux.txt -c=requirements/static/pkg/py3.10/linux.txt -o=requirements/static/ci/py3.10/lint.txt
33
aiohappyeyeballs==2.6.1
44
# via
55
# -c requirements/static/ci/py3.10/linux.txt
@@ -469,11 +469,6 @@ pycparser==2.21
469469
# -r requirements/base.txt
470470
# -r requirements/static/pkg/linux.in
471471
# cffi
472-
pycryptodomex==3.19.1
473-
# via
474-
# -c requirements/static/ci/py3.10/linux.txt
475-
# -c requirements/static/pkg/py3.10/linux.txt
476-
# -r requirements/crypto.txt
477472
pygit2==1.13.1
478473
# via
479474
# -c requirements/static/ci/py3.10/linux.txt
@@ -715,6 +710,11 @@ tomli==2.2.1
715710
# pylint
716711
tomlkit==0.12.3
717712
# via pylint
713+
tornado==6.5.4
714+
# via
715+
# -c requirements/static/ci/py3.10/linux.txt
716+
# -c requirements/static/pkg/py3.10/linux.txt
717+
# -r requirements/base.txt
718718
transitions==0.9.0
719719
# via
720720
# -c requirements/static/ci/py3.10/linux.txt

0 commit comments

Comments
 (0)