From 0401d581ab5b64a7ca104cee9ceb78a13ec3a220 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 7 Dec 2023 17:00:04 +0000 Subject: [PATCH] Stop importing salt in `tools/` Signed-off-by: Pedro Algarvio --- .../static/ci/py3.10/tools-virustotal.txt | 10 ++-- requirements/static/ci/py3.10/tools.txt | 46 +++++-------------- .../static/ci/py3.11/tools-virustotal.txt | 10 ++-- requirements/static/ci/py3.11/tools.txt | 42 ++++------------- .../static/ci/py3.12/tools-virustotal.txt | 10 ++-- requirements/static/ci/py3.12/tools.txt | 42 ++++------------- .../static/ci/py3.9/tools-virustotal.txt | 10 ++-- requirements/static/ci/py3.9/tools.txt | 46 +++++-------------- requirements/static/ci/tools-virustotal.in | 2 +- requirements/static/ci/tools.in | 2 - salt/version.py | 7 +++ tools/__init__.py | 9 ---- tools/precommit/docstrings.py | 10 ++-- 13 files changed, 76 insertions(+), 170 deletions(-) diff --git a/requirements/static/ci/py3.10/tools-virustotal.txt b/requirements/static/ci/py3.10/tools-virustotal.txt index e06b0a09c78..89ce17b7604 100644 --- a/requirements/static/ci/py3.10/tools-virustotal.txt +++ b/requirements/static/ci/py3.10/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests idna==3.4 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.10/tools.txt b/requirements/static/ci/py3.10/tools.txt index 3b8abca0fa4..6b5c89f60ec 100644 --- a/requirements/static/ci/py3.10/tools.txt +++ b/requirements/static/ci/py3.10/tools.txt @@ -15,68 +15,44 @@ botocore==1.29.152 # boto3 # s3transfer certifi==2023.7.22 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # requests + # via requests idna==3.4 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt # boto3 # botocore markdown-it-py==3.0.0 # via rich markupsafe==2.1.3 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # jinja2 + # via jinja2 mdurl==0.1.2 # via markdown-it-py packaging==23.1 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.15.1 # via rich python-dateutil==2.8.2 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==13.4.2 # via python-tools-scripts s3transfer==0.6.1 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # python-dateutil + # via python-dateutil typing-extensions==4.8.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # python-tools-scripts + # via python-tools-scripts urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt # botocore # requests diff --git a/requirements/static/ci/py3.11/tools-virustotal.txt b/requirements/static/ci/py3.11/tools-virustotal.txt index 96552535a12..de10d4e781a 100644 --- a/requirements/static/ci/py3.11/tools-virustotal.txt +++ b/requirements/static/ci/py3.11/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests idna==3.4 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.11/tools.txt b/requirements/static/ci/py3.11/tools.txt index c16061ebe1d..5bcaebd67c2 100644 --- a/requirements/static/ci/py3.11/tools.txt +++ b/requirements/static/ci/py3.11/tools.txt @@ -15,64 +15,42 @@ botocore==1.29.152 # boto3 # s3transfer certifi==2023.07.22 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # requests + # via requests idna==3.4 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt # boto3 # botocore markdown-it-py==3.0.0 # via rich markupsafe==2.1.3 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # jinja2 + # via jinja2 mdurl==0.1.2 # via markdown-it-py packaging==23.1 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.15.1 # via rich python-dateutil==2.8.2 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==13.4.2 # via python-tools-scripts s3transfer==0.6.1 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # python-dateutil + # via python-dateutil urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt # botocore # requests diff --git a/requirements/static/ci/py3.12/tools-virustotal.txt b/requirements/static/ci/py3.12/tools-virustotal.txt index 03404d94f4d..733c81aa159 100644 --- a/requirements/static/ci/py3.12/tools-virustotal.txt +++ b/requirements/static/ci/py3.12/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests idna==3.4 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.12/tools.txt b/requirements/static/ci/py3.12/tools.txt index a07b37c2178..a0b6f73ce29 100644 --- a/requirements/static/ci/py3.12/tools.txt +++ b/requirements/static/ci/py3.12/tools.txt @@ -15,64 +15,42 @@ botocore==1.29.152 # boto3 # s3transfer certifi==2023.07.22 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # requests + # via requests idna==3.4 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt # boto3 # botocore markdown-it-py==3.0.0 # via rich markupsafe==2.1.3 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # jinja2 + # via jinja2 mdurl==0.1.2 # via markdown-it-py packaging==23.1 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.15.1 # via rich python-dateutil==2.8.2 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==13.4.2 # via python-tools-scripts s3transfer==0.6.1 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # python-dateutil + # via python-dateutil urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt # botocore # requests diff --git a/requirements/static/ci/py3.9/tools-virustotal.txt b/requirements/static/ci/py3.9/tools-virustotal.txt index 1b04a95c53a..3483b9d2d19 100644 --- a/requirements/static/ci/py3.9/tools-virustotal.txt +++ b/requirements/static/ci/py3.9/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests idna==3.4 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.9/tools.txt b/requirements/static/ci/py3.9/tools.txt index c7cdc530ab3..35550acdbe6 100644 --- a/requirements/static/ci/py3.9/tools.txt +++ b/requirements/static/ci/py3.9/tools.txt @@ -15,68 +15,44 @@ botocore==1.29.152 # boto3 # s3transfer certifi==2023.7.22 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # requests + # via requests idna==3.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt # boto3 # botocore markdown-it-py==3.0.0 # via rich markupsafe==2.1.3 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # jinja2 + # via jinja2 mdurl==0.1.2 # via markdown-it-py packaging==23.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.15.1 # via rich python-dateutil==2.8.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==13.4.2 # via python-tools-scripts s3transfer==0.6.1 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # python-dateutil + # via python-dateutil typing-extensions==4.8.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # python-tools-scripts + # via python-tools-scripts urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt # botocore # requests diff --git a/requirements/static/ci/tools-virustotal.in b/requirements/static/ci/tools-virustotal.in index b7d1a356f4e..f5830e23107 100644 --- a/requirements/static/ci/tools-virustotal.in +++ b/requirements/static/ci/tools-virustotal.in @@ -1,3 +1,3 @@ ---constraint=../pkg/py{py_version}/{platform}.txt +--constraint=../ci/py{py_version}/tools.txt virustotal3 diff --git a/requirements/static/ci/tools.in b/requirements/static/ci/tools.in index 21c4d8c1d9b..7bc0163df05 100644 --- a/requirements/static/ci/tools.in +++ b/requirements/static/ci/tools.in @@ -1,5 +1,3 @@ ---constraint=../pkg/py{py_version}/{platform}.txt - attrs python-tools-scripts >= 0.18.6 boto3 diff --git a/salt/version.py b/salt/version.py index e37bf4eeea6..ee8a70e2bd3 100644 --- a/salt/version.py +++ b/salt/version.py @@ -940,6 +940,7 @@ def _parser(): parser.add_argument( "--next-release", help="Return the next release", action="store_true" ) + parser.add_argument("--parse", help="Parse the passed string as a salt version") # When pip installing we pass in other args to this script. # This allows us to catch those args but not use them parser.add_argument("unknown", nargs=argparse.REMAINDER) @@ -950,5 +951,11 @@ if __name__ == "__main__": args = _parser() if args.next_release: print(__saltstack_version__.next_release()) + elif args.parse: + try: + print(SaltStackVersion.parse(args.parse)) + except Exception as exc: # pylint: disable=broad-except + print(f"Failed to parse '{args.parse}' as a salt version: {exc}") + sys.exit(1) else: print(__version__) diff --git a/tools/__init__.py b/tools/__init__.py index f325c1f844a..1d46e63b2d5 100644 --- a/tools/__init__.py +++ b/tools/__init__.py @@ -12,26 +12,17 @@ STATIC_REQUIREMENTS_PATH = REQUIREMENTS_FILES_PATH / "static" CI_REQUIREMENTS_FILES_PATH = ( STATIC_REQUIREMENTS_PATH / "ci" / "py{}.{}".format(*sys.version_info) ) -PKG_REQUIREMENTS_FILES_PATH = ( - STATIC_REQUIREMENTS_PATH / "pkg" / "py{}.{}".format(*sys.version_info) -) DEFAULT_REQS_CONFIG = DefaultRequirementsConfig( pip_args=[ f"--constraint={REQUIREMENTS_FILES_PATH / 'constraints.txt'}", - f"--constraint={PKG_REQUIREMENTS_FILES_PATH / 'linux.txt'}", ], requirements_files=[ - REQUIREMENTS_FILES_PATH / "base.txt", CI_REQUIREMENTS_FILES_PATH / "tools.txt", ], ) RELEASE_VENV_CONFIG = VirtualEnvConfig( - env={ - "PIP_CONSTRAINT": str(REQUIREMENTS_FILES_PATH / "constraints.txt"), - }, pip_args=[ f"--constraint={REQUIREMENTS_FILES_PATH / 'constraints.txt'}", - f"--constraint={PKG_REQUIREMENTS_FILES_PATH / 'linux.txt'}", ], requirements_files=[ CI_REQUIREMENTS_FILES_PATH / "tools-virustotal.txt", diff --git a/tools/precommit/docstrings.py b/tools/precommit/docstrings.py index 40c962c2dc9..29a7e0eb4e0 100644 --- a/tools/precommit/docstrings.py +++ b/tools/precommit/docstrings.py @@ -10,12 +10,13 @@ import ast import os import pathlib import re +import subprocess +import sys from typing import TYPE_CHECKING from ptscripts import Context, command_group import tools.utils -from salt.version import SaltStackVersion from tools.precommit import SALT_INTERNAL_LOADERS_PATHS SALT_CODE_DIR = tools.utils.REPO_ROOT / "salt" @@ -1088,9 +1089,10 @@ def _check_valid_versions_on_docstrings(docstring): versions = [vs.strip() for vs in version.split(",")] bad_versions = [] for vs in versions: - try: - SaltStackVersion.parse(vs) - except ValueError: + ret = subprocess.run( + [sys.executable, str(SALT_CODE_DIR / "version.py"), vs], check=False + ) + if ret.returncode: bad_versions.append(vs) if bad_versions: return vtype, ", ".join(bad_versions)