From c79ca19b097baf68d1441cc27d5ce71d48b13205 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Thu, 7 Mar 2024 08:14:02 -0500 Subject: [PATCH 1/4] Remove distutils use from setup.py. Use logging and setuptools instead. --- setup.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/setup.py b/setup.py index c7b496867a..6a35d8600c 100644 --- a/setup.py +++ b/setup.py @@ -24,16 +24,14 @@ ## """ This script can be used to install easybuild-framework, e.g. using: - easy_install --user . -or - python setup.py --prefix=$HOME/easybuild + python setup.py install --prefix=$HOME/easybuild @author: Kenneth Hoste (Ghent University) """ import glob import os -from distutils import log -from distutils.core import setup +import logging +from setuptools import setup from easybuild.tools.version import VERSION @@ -44,9 +42,10 @@ def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() +log = logging.getLogger("EasyBuild") -# log levels: 0 = WARN (default), 1 = INFO, 2 = DEBUG -log.set_verbosity(1) +# log levels: NOTSET (default), DEBUG, INFO, WARNING, ERROR, CRITICAL +log.setLevel(logging.INFO) log.info("Installing version %s (API version %s)" % (VERSION, API_VERSION)) From 5327191f968d151bca91cf6c68ed684d7d70fe38 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Thu, 7 Mar 2024 08:18:35 -0500 Subject: [PATCH 2/4] Appease the hound --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 6a35d8600c..cbe4a7696c 100644 --- a/setup.py +++ b/setup.py @@ -42,6 +42,7 @@ def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() + log = logging.getLogger("EasyBuild") # log levels: NOTSET (default), DEBUG, INFO, WARNING, ERROR, CRITICAL From b4c707047b78c9eb7e979ac3874fea07559d4b93 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Thu, 7 Mar 2024 08:27:40 -0500 Subject: [PATCH 3/4] Exclude setup.py from unit test setuptools check. --- .github/workflows/unit_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index a607ef43df..6a8df107d3 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -123,7 +123,7 @@ jobs: run: | # make sure there are no (top-level) "import setuptools" or "import pkg_resources" statements, # since EasyBuild should not have a runtime requirement on setuptools - SETUPTOOLS_IMPORTS=$(egrep -RI '^(from|import)[ ]*pkg_resources|^(from|import)[ ]*setuptools' * || true) + SETUPTOOLS_IMPORTS=$(egrep --exclude setup.py -RI '^(from|import)[ ]*pkg_resources|^(from|import)[ ]*setuptools' * || true) test "x$SETUPTOOLS_IMPORTS" = "x" || (echo "Found setuptools and/or pkg_resources imports in easybuild/:\n${SETUPTOOLS_IMPORTS}" && exit 1) - name: install sources From 737150687ae8b40931e2fc212958192919829ae2 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Mon, 11 Mar 2024 07:10:03 -0400 Subject: [PATCH 4/4] Use distutils if available (in Py 3.11 and under) Co-authored-by: Kenneth Hoste --- setup.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index cbe4a7696c..a05ff15c40 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,10 @@ import glob import os import logging -from setuptools import setup +try: + from distutils.core import setup +except ImportError: + from setuptools import setup from easybuild.tools.version import VERSION