summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2023-04-27 16:20:20 +0200
committerGitHub <noreply@github.com>2023-04-27 16:20:20 +0200
commitce7a075595285d7275642eed09b57fc41f6df7a0 (patch)
tree96006b873556d3b2edde914b33f608d4391c1877
parent20083e16e1b999cde99d8a19a53e1f9f4464f52f (diff)
parentac595570fece4c53d4547f243423f506baee4141 (diff)
downloadsetuptools-scm-ce7a075595285d7275642eed09b57fc41f6df7a0.tar.gz
Merge pull request #842 from RonnyPfannschmidt/log-configure-integrations
restore debug logging
-rw-r--r--.github/workflows/python-tests.yml3
-rw-r--r--src/setuptools_scm/__init__.py33
-rw-r--r--src/setuptools_scm/_log.py23
-rw-r--r--src/setuptools_scm/integration.py19
-rw-r--r--testing/test_integration.py6
-rw-r--r--testing/test_internal_log_level.py15
6 files changed, 42 insertions, 57 deletions
diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml
index f0029c9..373be21 100644
--- a/.github/workflows/python-tests.yml
+++ b/.github/workflows/python-tests.yml
@@ -79,8 +79,7 @@ jobs:
echo "C:\Program Files (x86)\gnupg\bin" >> $env:GITHUB_PATH
git config --system gpg.program "C:\Program Files (x86)\gnupg\bin\gpg.exe"
if: runner.os == 'Windows'
- - run: pip install -U 'setuptools>=60'
- if: matrix.python_version != 'msys2'
+ - run: pip install -U 'setuptools>=61'
- uses: actions/download-artifact@v3
with:
name: Packages
diff --git a/src/setuptools_scm/__init__.py b/src/setuptools_scm/__init__.py
index faea673..01b3da8 100644
--- a/src/setuptools_scm/__init__.py
+++ b/src/setuptools_scm/__init__.py
@@ -152,26 +152,23 @@ def get_version(
def _get_version(config: Configuration) -> str | None:
- from ._log import magic_debug
-
- with magic_debug():
- parsed_version = _do_parse(config)
- if parsed_version is None:
- return None
- version_string = _format_version(
- parsed_version,
- version_scheme=config.version_scheme,
- local_scheme=config.local_scheme,
+ parsed_version = _do_parse(config)
+ if parsed_version is None:
+ return None
+ version_string = _format_version(
+ parsed_version,
+ version_scheme=config.version_scheme,
+ local_scheme=config.local_scheme,
+ )
+ if config.write_to is not None:
+ dump_version(
+ root=config.root,
+ version=version_string,
+ write_to=config.write_to,
+ template=config.write_to_template,
)
- if config.write_to is not None:
- dump_version(
- root=config.root,
- version=version_string,
- write_to=config.write_to,
- template=config.write_to_template,
- )
- return version_string
+ return version_string
# Public API
diff --git a/src/setuptools_scm/_log.py b/src/setuptools_scm/_log.py
index abbdd0c..1247d46 100644
--- a/src/setuptools_scm/_log.py
+++ b/src/setuptools_scm/_log.py
@@ -9,6 +9,7 @@ import os
import sys
from typing import IO
from typing import Iterator
+from typing import Mapping
log = logging.getLogger(__name__.rsplit(".", 1)[0])
log.propagate = False
@@ -46,19 +47,9 @@ _default_handler = make_default_handler()
log.addHandler(_default_handler)
-def _default_log_level() -> str | int:
- val: str = os.environ.get("SETUPTOOLS_SCM_DEBUG", "")
- level: str | int
- if val:
- level = logging.DEBUG
- levelname: str | int = logging.getLevelName(val)
- if isinstance(levelname, int):
- level = val
- else:
- level = logging.WARNING
- else:
- level = logging.WARNING
- return level
+def _default_log_level(_env: Mapping[str, str] = os.environ) -> int:
+ val: str | None = _env.get("SETUPTOOLS_SCM_DEBUG")
+ return logging.WARN if val is None else logging.DEBUG
log.setLevel(_default_log_level())
@@ -92,9 +83,3 @@ def enable_debug(handler: logging.Handler = _default_handler) -> Iterator[None]:
handler.setLevel(old_handler_level)
if handler is not _default_handler:
log.removeHandler(handler)
-
-
-@contextlib.contextmanager
-def magic_debug() -> Iterator[None]:
- with enable_debug():
- yield
diff --git a/src/setuptools_scm/integration.py b/src/setuptools_scm/integration.py
index 9df4f3e..42ea95d 100644
--- a/src/setuptools_scm/integration.py
+++ b/src/setuptools_scm/integration.py
@@ -26,27 +26,16 @@ if TYPE_CHECKING:
def _warn_on_old_setuptools(_version: str = setuptools.__version__) -> None:
- if int(_version.split(".")[0]) < 45:
+ if int(_version.split(".")[0]) < 61:
warnings.warn(
RuntimeWarning(
f"""
-ERROR: setuptools=={_version} is used in combination with setuptools_scm>=6.x
+ERROR: setuptools=={_version} is used in combination with setuptools_scm>=8.x
Your build configuration is incomplete and previously worked by accident!
-setuptools_scm requires setuptools>=45
+setuptools_scm requires setuptools>=61
-
-This happens as setuptools is unable to replace itself when a activated build dependency
-requires a more recent setuptools version
-(it does not respect "setuptools>X" in setup_requires).
-
-
-setuptools>=31 is required for setup.cfg metadata support
-setuptools>=42 is required for pyproject.toml configuration support
-
-Suggested workarounds if applicable:
- - preinstalling build dependencies like setuptools_scm before running setup.py
- - installing setuptools_scm using the system package manager to ensure consistency
+Suggested workaround if applicable:
- migrating from the deprecated setup_requires mechanism to pep517/518
and using a pyproject.toml to declare build dependencies
which are reliably pre-installed before running the build tools
diff --git a/testing/test_integration.py b/testing/test_integration.py
index c0594ad..06cc95c 100644
--- a/testing/test_integration.py
+++ b/testing/test_integration.py
@@ -139,9 +139,9 @@ def test_pretend_version_accepts_bad_string(
def testwarn_on_broken_setuptools() -> None:
- _warn_on_old_setuptools("45")
- with pytest.warns(RuntimeWarning, match="ERROR: setuptools==44"):
- _warn_on_old_setuptools("44")
+ _warn_on_old_setuptools("61")
+ with pytest.warns(RuntimeWarning, match="ERROR: setuptools==60"):
+ _warn_on_old_setuptools("60")
@pytest.mark.issue(611)
diff --git a/testing/test_internal_log_level.py b/testing/test_internal_log_level.py
new file mode 100644
index 0000000..68ce8e0
--- /dev/null
+++ b/testing/test_internal_log_level.py
@@ -0,0 +1,15 @@
+from __future__ import annotations
+
+import logging
+
+from setuptools_scm import _log
+
+
+def test_log_levels_when_set() -> None:
+ assert _log._default_log_level({"SETUPTOOLS_SCM_DEBUG": ""}) == logging.DEBUG
+ assert _log._default_log_level({"SETUPTOOLS_SCM_DEBUG": "INFO"}) == logging.DEBUG
+ assert _log._default_log_level({"SETUPTOOLS_SCM_DEBUG": "3"}) == logging.DEBUG
+
+
+def test_log_levels_when_unset() -> None:
+ assert _log._default_log_level({}) == logging.WARNING