From bf82ccc0910e47550440cfe54ee5a9c40e742ee3 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Tue, 24 Sep 2024 07:55:21 +0200 Subject: [PATCH] See if this works. Potentially, we can just go for the lowest setuptools_scm version in this range... --- setup.py | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/setup.py b/setup.py index 0cc72053..8b19a2d5 100644 --- a/setup.py +++ b/setup.py @@ -1,15 +1,40 @@ import setuptools import sys +import pkg_resources +# Get python version python_version = sys.version_info -if python_version < (3, 8): - scm_dict = {'write_to': 'eessi/testsuite/_version.py'} - scm_require = ['packaging<=21.3', 'setuptools_scm<7'] - scm_arg_key = "write_to" -else: - scm_dict = {'version_file': 'eessi/testsuite/_version.py', 'fallback_version': '80.0.0'} - scm_require = ['setuptools>=61', 'setuptools_scm>=8'] + +# Get setuptools version +# We control it when installing from pyproject.toml, but not when installing from setup.py / setup.cfg +# Check setuptools version +current_setuptools_version = pkg.resources.parse_version(pkg_resources.get_distribution("setuptools").version) + +# Set the version requirement for setuptools_scm, depending on the combination of Python and setuptools version +if python_version >= (3, 8) and current_setuptools_version >= pgk.resources.parse_version("61.0.0"): + setuptools_scm_requirement = 'setuptools_scm>8.0.0,<=8.1.0' scm_arg_key = "version_file" +elif python_version >= (3, 7) and current_setuptools_version >= pkg.resources.parse_version("45.0.0"): + setuptools_scm_requirement = 'setuptools_scm>7.0.0,<=7.1.0' + scm_arg_key = "write_to" +elif python_version >= (3, 6) and current_setuptools_version >= pkg.resources.parse_version("45.0.0"): + setuptools_scm_requirement = 'setuptools_scm>=6.0.0,<=6.4.2' + scm_arg_key = "write_to" +elif python_version >= (3, 6) and current_setuptools_version >= pkg.resources.parse_version("42.0.0"): + setuptools_scm_requirement = 'setuptools_scm>=5.0.0,<=5.0.2' + scm_arg_key = "write_to" +elif python_version >= (3, 6) and current_setuptools_version >= pkg.resources.parse_version("34.4.0"): + setuptools_scm_requirement = 'setuptools_scm>=4.0.0,<=4.1.2' + scm_arg_key = "write_to" + +# if python_version < (3, 8): +# scm_dict = {'write_to': 'eessi/testsuite/_version.py'} +# scm_require = ['packaging<=21.3', 'setuptools_scm<7'] +# scm_arg_key = "write_to" +# else: +# scm_dict = {'version_file': 'eessi/testsuite/_version.py', 'fallback_version': '80.0.0'} +# scm_require = ['setuptools>=61', 'setuptools_scm>=8'] +# scm_arg_key = "version_file" sys.path.append('.') from eessi.testsuite import __version__ @@ -17,5 +42,5 @@ setuptools.setup( use_scm_version={scm_arg_key: 'eessi/testsuite/_version.py', 'fallback_version': __version__}, # use_scm_version=scm_dict, - setup_requires=scm_require, + setup_requires=[setuptools_scm_requirement], )