Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
393 changes: 319 additions & 74 deletions .pre-commit-config.yaml

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -762,4 +762,5 @@ allowed-3rd-party-modules=msgpack,
aiohttp,
pytest_timeout,
salt,
tests
tests,
salt_build_backend
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ include README.rst
include SUPPORT.rst
include run.py
include pyproject.toml
include tools/pkg/__init__.py
include tools/pkg/salt_build_backend.py
include tests/*.py
recursive-include tests *
recursive-include requirements *.txt
Expand Down
43 changes: 43 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,46 @@
[build-system]
requires = [
"setuptools>=62.0",
"wheel",
"looseversion",
"packaging",
"importlib-metadata>=8.7.0",
]
build-backend = "salt_build_backend"
backend-path = ["tools/pkg"]

[project]
name = "salt"
description = "Portable, distributed, remote execution and configuration management system"
readme = "README.rst"
requires-python = ">=3.8"
license = {text = "Apache Software License 2.0"}
authors = [
{name = "Thomas S Hatch", email = "thatch45@gmail.com"},
]
classifiers = [
"Programming Language :: Python",
"Programming Language :: Cython",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: Apache Software License",
"Operating System :: POSIX :: Linux",
"Topic :: System :: Clustering",
"Topic :: System :: Distributed Computing",
]
dynamic = ["version", "dependencies", "optional-dependencies", "scripts", "entry-points"]

[project.urls]
Homepage = "https://saltproject.io"

[tool.black]
exclude= """
/(
Expand Down
8 changes: 3 additions & 5 deletions requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
--constraint=constraints.txt

# Dependencies are listed alphabetically by package name.
# Multiple entries for the same package (with different version constraints) are grouped together.

aiohttp>=3.10.2
aiohttp>=3.13.3
certifi>=2024.7.4
cffi>=2.0.0
# cheroot 8.5.2 fails to build with modern setuptools due to setuptools_scm_git_archive dependency
cheroot>=10.0.1
cherrypy>=17.4.1
cherrypy>=18.6.1
# We need contextvars for salt-ssh
contextvars
contextvars; python_version < "3.7"
croniter>=0.3.0,!=0.3.22; sys_platform != 'win32'
cryptography>=46.0.5
distro>=1.0.1
Expand Down
1 change: 1 addition & 0 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
wheel >= 0.46.3
setuptools >= 80.10.2
pip == 25.2
markdown-it-py < 3.0.0; python_version == "3.9"
2 changes: 0 additions & 2 deletions requirements/darwin.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Darwin source distribution requirements
# Don't add any requirements here, add them in requirements/base.txt
# If they are macOS specific, place "; sys_platform == 'darwin'" in front of the requirement.

-r zeromq.txt
1 change: 1 addition & 0 deletions requirements/static/ci/common.in
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ moto>=5.0.0
napalm; sys_platform != 'win32' and python_version < '3.10'
paramiko>=2.10.1; sys_platform != 'win32' and sys_platform != 'darwin'
passlib>=1.7.4
pycryptodomex
pynacl>=1.5.0
pyinotify>=0.9.6; sys_platform != 'win32' and sys_platform != 'darwin' and platform_system != "openbsd"
python-etcd>0.4.2
Expand Down
2 changes: 1 addition & 1 deletion requirements/static/ci/py3.10/changelog.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# 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
# 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
click==8.1.3
# via
# click-default-group
Expand Down
12 changes: 3 additions & 9 deletions requirements/static/ci/py3.10/cloud.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# 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
# 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
aiohappyeyeballs==2.6.1
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -121,11 +121,6 @@ clustershell==1.9.1
# via
# -c requirements/static/ci/py3.10/linux.txt
# -r requirements/static/ci/common.in
contextvars==2.4
# via
# -c requirements/static/ci/py3.10/linux.txt
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/base.txt
croniter==6.0.0
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -229,7 +224,6 @@ immutables==0.21
# -c requirements/static/ci/py3.10/linux.txt
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/base.txt
# contextvars
importlib-metadata==8.7.0
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -447,11 +441,11 @@ pycparser==2.21
# -r requirements/base.txt
# -r requirements/static/pkg/linux.in
# cffi
pycryptodomex==3.19.1
pycryptodomex==3.23.0
# via
# -c requirements/static/ci/py3.10/linux.txt
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/crypto.txt
# -r requirements/static/ci/common.in
pyfakefs==5.3.1
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down
2 changes: 1 addition & 1 deletion requirements/static/ci/py3.10/darwin-crypto.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements/static/ci/crypto.in --python-platform=macos --python-version=3.10 --no-emit-index-url -o=requirements/static/ci/py3.10/darwin-crypto.txt
# uv pip compile requirements/static/ci/crypto.in --python-platform=macos --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url -o=requirements/static/ci/py3.10/darwin-crypto.txt
m2crypto==0.38.0
# via -r requirements/static/ci/crypto.in
pycryptodome==3.19.1
Expand Down
11 changes: 3 additions & 8 deletions requirements/static/ci/py3.10/darwin.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# 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
# 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
aiohappyeyeballs==2.6.1
# via
# -c requirements/static/pkg/py3.10/darwin.txt
Expand Down Expand Up @@ -94,10 +94,6 @@ cherrypy==18.8.0
# -r requirements/static/ci/common.in
clustershell==1.9.1
# via -r requirements/static/ci/common.in
contextvars==2.4
# via
# -c requirements/static/pkg/py3.10/darwin.txt
# -r requirements/base.txt
croniter==6.0.0
# via
# -c requirements/static/pkg/py3.10/darwin.txt
Expand Down Expand Up @@ -175,7 +171,6 @@ immutables==0.21
# via
# -c requirements/static/pkg/py3.10/darwin.txt
# -r requirements/base.txt
# contextvars
importlib-metadata==8.7.1
# via
# -c requirements/static/pkg/py3.10/darwin.txt
Expand Down Expand Up @@ -328,10 +323,10 @@ pycparser==2.21
# -c requirements/static/pkg/py3.10/darwin.txt
# -r requirements/base.txt
# cffi
pycryptodomex==3.19.1
pycryptodomex==3.23.0
# via
# -c requirements/static/pkg/py3.10/darwin.txt
# -r requirements/crypto.txt
# -r requirements/static/ci/common.in
pyfakefs==5.3.1
# via -r requirements/pytest.txt
pygit2==1.13.1
Expand Down
9 changes: 2 additions & 7 deletions requirements/static/ci/py3.10/docs.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# 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
# uv pip compile requirements/base.txt requirements/zeromq.txt requirements/crypto.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
aiohappyeyeballs==2.6.1
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -60,10 +60,6 @@ cherrypy==18.8.0
# -c requirements/static/ci/py3.10/linux.txt
# -r requirements/base.txt
# -r requirements/static/ci/docs.in
contextvars==2.4
# via
# -c requirements/static/ci/py3.10/linux.txt
# -r requirements/base.txt
croniter==6.0.0
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -113,7 +109,6 @@ immutables==0.21
# via
# -c requirements/static/ci/py3.10/linux.txt
# -r requirements/base.txt
# contextvars
importlib-metadata==8.7.0
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -224,7 +219,7 @@ pycparser==2.21
# -c requirements/static/ci/py3.10/linux.txt
# -r requirements/base.txt
# cffi
pycryptodomex==3.19.1
pycryptodomex==3.23.0
# via
# -c requirements/static/ci/py3.10/linux.txt
# -r requirements/crypto.txt
Expand Down
2 changes: 1 addition & 1 deletion requirements/static/ci/py3.10/freebsd-crypto.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements/static/ci/crypto.in --universal --python-version=3.10 --no-emit-index-url -o=requirements/static/ci/py3.10/freebsd-crypto.txt
# uv pip compile requirements/static/ci/crypto.in --universal --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url -o=requirements/static/ci/py3.10/freebsd-crypto.txt
m2crypto==0.38.0
# via -r requirements/static/ci/crypto.in
pycryptodome==3.19.1
Expand Down
18 changes: 4 additions & 14 deletions requirements/static/ci/py3.10/freebsd.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# 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
# 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
aiohappyeyeballs==2.6.1
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
Expand Down Expand Up @@ -103,10 +103,6 @@ clustershell==1.9.1
# via -r requirements/static/ci/common.in
colorama==0.4.6 ; sys_platform == 'win32'
# via pytest
contextvars==2.4
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
# -r requirements/base.txt
croniter==6.0.0 ; sys_platform != 'win32'
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
Expand Down Expand Up @@ -185,7 +181,6 @@ immutables==0.21
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
# -r requirements/base.txt
# contextvars
importlib-metadata==8.7.0
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
Expand Down Expand Up @@ -347,10 +342,10 @@ pycparser==2.21
# -r requirements/base.txt
# -r requirements/static/pkg/freebsd.in
# cffi
pycryptodomex==3.19.1
pycryptodomex==3.23.0
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
# -r requirements/crypto.txt
# -r requirements/static/ci/common.in
pyfakefs==5.3.1
# via -r requirements/pytest.txt
pyinotify==0.9.6 ; platform_system != 'openbsd' and sys_platform != 'darwin' and sys_platform != 'win32'
Expand Down Expand Up @@ -463,12 +458,7 @@ pyyaml==6.0.1
# responses
# yamllint
# yamlordereddictloader
pyzmq==25.0.2 ; sys_platform == 'win32'
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
# -r requirements/zeromq.txt
# pytest-salt-factories
pyzmq==25.1.2 ; sys_platform != 'win32'
pyzmq==25.1.2
# via
# -c requirements/static/pkg/py3.10/freebsd.txt
# -r requirements/zeromq.txt
Expand Down
12 changes: 3 additions & 9 deletions requirements/static/ci/py3.10/lint.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# 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
# 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
aiohappyeyeballs==2.6.1
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -138,11 +138,6 @@ clustershell==1.9.1
# via
# -c requirements/static/ci/py3.10/linux.txt
# -r requirements/static/ci/common.in
contextvars==2.4
# via
# -c requirements/static/ci/py3.10/linux.txt
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/base.txt
croniter==6.0.0
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -257,7 +252,6 @@ immutables==0.21
# -c requirements/static/ci/py3.10/linux.txt
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/base.txt
# contextvars
importlib-metadata==8.7.0
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down Expand Up @@ -469,11 +463,11 @@ pycparser==2.21
# -r requirements/base.txt
# -r requirements/static/pkg/linux.in
# cffi
pycryptodomex==3.19.1
pycryptodomex==3.23.0
# via
# -c requirements/static/ci/py3.10/linux.txt
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/crypto.txt
# -r requirements/static/ci/common.in
pygit2==1.13.1
# via
# -c requirements/static/ci/py3.10/linux.txt
Expand Down
2 changes: 1 addition & 1 deletion requirements/static/ci/py3.10/linux-crypto.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements/static/ci/crypto.in --python-platform=linux --python-version=3.10 --no-emit-index-url -o=requirements/static/ci/py3.10/linux-crypto.txt
# uv pip compile requirements/static/ci/crypto.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url -o=requirements/static/ci/py3.10/linux-crypto.txt
m2crypto==0.38.0
# via -r requirements/static/ci/crypto.in
pycryptodome==3.19.1
Expand Down
11 changes: 3 additions & 8 deletions requirements/static/ci/py3.10/linux.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements/base.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/linux.in --python-platform=linux --python-version=3.10 --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/pkg/py3.10/linux.txt -o=requirements/static/ci/py3.10/linux.txt
# uv pip compile requirements/base.txt requirements/pytest.txt requirements/zeromq.txt requirements/static/ci/common.in requirements/static/ci/linux.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url --unsafe-package=setuptools -c=requirements/static/pkg/py3.10/linux.txt -o=requirements/static/ci/py3.10/linux.txt
aiohappyeyeballs==2.6.1
# via
# -c requirements/static/pkg/py3.10/linux.txt
Expand Down Expand Up @@ -106,10 +106,6 @@ cherrypy==18.8.0
# -r requirements/static/ci/common.in
clustershell==1.9.1
# via -r requirements/static/ci/common.in
contextvars==2.4
# via
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/base.txt
croniter==6.0.0
# via
# -c requirements/static/pkg/py3.10/linux.txt
Expand Down Expand Up @@ -197,7 +193,6 @@ immutables==0.21
# via
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/base.txt
# contextvars
importlib-metadata==8.7.0
# via
# -c requirements/static/pkg/py3.10/linux.txt
Expand Down Expand Up @@ -357,10 +352,10 @@ pycparser==2.21
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/base.txt
# cffi
pycryptodomex==3.19.1
pycryptodomex==3.23.0
# via
# -c requirements/static/pkg/py3.10/linux.txt
# -r requirements/crypto.txt
# -r requirements/static/ci/common.in
pyfakefs==5.3.1
# via -r requirements/pytest.txt
pygit2==1.13.1
Expand Down
2 changes: 1 addition & 1 deletion requirements/static/ci/py3.10/tools-virustotal.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements/static/ci/tools-virustotal.in --python-platform=linux --python-version=3.10 --no-emit-index-url -c=requirements/static/ci/py3.10/tools.txt -o=requirements/static/ci/py3.10/tools-virustotal.txt
# uv pip compile requirements/static/ci/tools-virustotal.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url -c=requirements/static/ci/py3.10/tools.txt -o=requirements/static/ci/py3.10/tools-virustotal.txt
certifi==2023.7.22
# via
# -c requirements/static/ci/py3.10/tools.txt
Expand Down
2 changes: 1 addition & 1 deletion requirements/static/ci/py3.10/tools.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements/static/ci/tools.in --python-platform=linux --python-version=3.10 --no-emit-index-url -o=requirements/static/ci/py3.10/tools.txt
# uv pip compile requirements/static/ci/tools.in --python-platform=linux --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url -o=requirements/static/ci/py3.10/tools.txt
annotated-types==0.6.0
# via pydantic
attrs==20.3.0
Expand Down
2 changes: 1 addition & 1 deletion requirements/static/ci/py3.10/windows-crypto.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements/static/ci/crypto.in --python-platform=windows --python-version=3.10 --no-emit-index-url -o=requirements/static/ci/py3.10/windows-crypto.txt
# uv pip compile requirements/static/ci/crypto.in --python-platform=windows --python-version=3.10 --constraint requirements/constraints.txt --no-emit-index-url -o=requirements/static/ci/py3.10/windows-crypto.txt
m2crypto==0.38.0
# via -r requirements/static/ci/crypto.in
pycryptodome==3.19.1
Expand Down
Loading
Loading