summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelogs/fragments/ansible-test-minimum-setuptools.yml2
-rwxr-xr-xhacking/update-sanity-requirements.py14
-rw-r--r--pyproject.toml2
-rw-r--r--setup.cfg2
-rw-r--r--test/sanity/code-smell/package-data.py3
-rw-r--r--test/sanity/code-smell/package-data.requirements.in1
-rw-r--r--test/sanity/code-smell/package-data.requirements.txt1
7 files changed, 21 insertions, 4 deletions
diff --git a/changelogs/fragments/ansible-test-minimum-setuptools.yml b/changelogs/fragments/ansible-test-minimum-setuptools.yml
new file mode 100644
index 0000000000..9c7fbeebc7
--- /dev/null
+++ b/changelogs/fragments/ansible-test-minimum-setuptools.yml
@@ -0,0 +1,2 @@
+minor_changes:
+ - The minimum required ``setuptools`` version is now 45.2.0, as it is the oldest version to support Python 3.10.
diff --git a/hacking/update-sanity-requirements.py b/hacking/update-sanity-requirements.py
index 88569af17a..63eaec786a 100755
--- a/hacking/update-sanity-requirements.py
+++ b/hacking/update-sanity-requirements.py
@@ -45,7 +45,19 @@ class SanityTest:
subprocess.run(pip + ['install', 'wheel'], env=env, check=True) # make bdist_wheel available during pip install
subprocess.run(pip + ['install', '-r', self.source_path], env=env, check=True)
- pip_freeze = subprocess.run(pip + ['freeze'], env=env, check=True, capture_output=True, text=True)
+ keep_setuptools = any(line.startswith('setuptools ') for line in self.source_path.read_text().splitlines())
+
+ exclude_packages = ['pip', 'distribute', 'wheel']
+
+ if not keep_setuptools:
+ exclude_packages.append('setuptools')
+
+ freeze_options = ['--all']
+
+ for exclude_package in exclude_packages:
+ freeze_options.extend(('--exclude', exclude_package))
+
+ pip_freeze = subprocess.run(pip + ['freeze'] + freeze_options, env=env, check=True, capture_output=True, text=True)
requirements = f'# edit "{self.source_path.name}" and generate with: {SELF} --test {self.name}\n{pip_freeze.stdout}'
diff --git a/pyproject.toml b/pyproject.toml
index 482f222190..8a28c0b2ca 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,4 +1,4 @@
[build-system]
-requires = ["setuptools >= 39.2.0"]
+requires = ["setuptools >= 45.2.0"]
backend-path = ["packaging"] # requires 'Pip>=20' or 'pep517>=0.6.0'
build-backend = "pep517_backend.hooks" # wraps `setuptools.build_meta`
diff --git a/setup.cfg b/setup.cfg
index 04e199652a..afc64dfafa 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,4 +1,4 @@
-# Minimum target setuptools 39.2.0
+# Minimum target setuptools 45.2.0
[metadata]
name = ansible-core
diff --git a/test/sanity/code-smell/package-data.py b/test/sanity/code-smell/package-data.py
index 97214efdcd..f768a7a13d 100644
--- a/test/sanity/code-smell/package-data.py
+++ b/test/sanity/code-smell/package-data.py
@@ -188,9 +188,10 @@ def create_sdist(tmp_dir):
)
stderr = create.stderr
+ stdout = create.stdout
if create.returncode != 0:
- raise Exception('make snapshot failed:\n%s' % stderr)
+ raise Exception('make snapshot failed:\n%s' % stderr + '\n' + stdout)
# Determine path to sdist
tmp_dir_files = os.listdir(tmp_dir)
diff --git a/test/sanity/code-smell/package-data.requirements.in b/test/sanity/code-smell/package-data.requirements.in
index f587e39d21..deb5067889 100644
--- a/test/sanity/code-smell/package-data.requirements.in
+++ b/test/sanity/code-smell/package-data.requirements.in
@@ -5,3 +5,4 @@ pyyaml # ansible-core requirement
resolvelib < 1.1.0
rstcheck < 6 # match version used in other sanity tests
antsibull-changelog
+setuptools == 45.2.0 # minimum supported setuptools
diff --git a/test/sanity/code-smell/package-data.requirements.txt b/test/sanity/code-smell/package-data.requirements.txt
index 393c1a0d1c..c4b6119bf7 100644
--- a/test/sanity/code-smell/package-data.requirements.txt
+++ b/test/sanity/code-smell/package-data.requirements.txt
@@ -10,6 +10,7 @@ PyYAML==6.0
resolvelib==1.0.1
rstcheck==5.0.0
semantic-version==2.10.0
+setuptools==45.2.0
tomli==2.0.1
types-docutils==0.18.3
typing_extensions==4.5.0