diff options
-rw-r--r-- | changelogs/fragments/ansible-test-minimum-setuptools.yml | 2 | ||||
-rwxr-xr-x | hacking/update-sanity-requirements.py | 14 | ||||
-rw-r--r-- | pyproject.toml | 2 | ||||
-rw-r--r-- | setup.cfg | 2 | ||||
-rw-r--r-- | test/sanity/code-smell/package-data.py | 3 | ||||
-rw-r--r-- | test/sanity/code-smell/package-data.requirements.in | 1 | ||||
-rw-r--r-- | test/sanity/code-smell/package-data.requirements.txt | 1 |
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` @@ -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 |