From 18b5e500eb3a0e9c174221c2b81d627c46af9705 Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 13:48:20 +0200 Subject: [PATCH 1/9] build: Fixes an issue that causes broken builds. This patch sets an upper bound for setuptools_scm which has breaking changes and prevents the project from being built. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3ba6f317..4bc95a3e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ build-backend = "setuptools.build_meta" requires = [ "setuptools>=77", - "setuptools-scm[toml]>=6.2", + "setuptools-scm[toml]>=6.2,<9", ] [project] From 87a9c9823224b3c4a6ad2b4cc708353b9b0996e9 Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 13:53:42 +0200 Subject: [PATCH 2/9] build: Pin version of setuptools. This is required for reproducible builds. Pinned build dependencies should be updated by dependabot. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4bc95a3e..40a58750 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [build-system] build-backend = "setuptools.build_meta" requires = [ - "setuptools>=77", + "setuptools==80.9", "setuptools-scm[toml]>=6.2,<9", ] From 877e3f5b2cddf8598803c5cc02535350f84fba71 Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 13:55:04 +0200 Subject: [PATCH 3/9] build: Pin version of setuptools_scm. This is required for reproducible builds. Pinned build dependencies should be updated by dependabot. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 40a58750..21a96b1e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ build-backend = "setuptools.build_meta" requires = [ "setuptools==80.9", - "setuptools-scm[toml]>=6.2,<9", + "setuptools-scm[toml]==8.3.1", ] [project] From dbeb8045ef153167264cd148ec57dd2aff122b3b Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 13:56:02 +0200 Subject: [PATCH 4/9] chore: Bump dependency on setuptools_scm to v9.1.1. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 21a96b1e..981355f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ build-backend = "setuptools.build_meta" requires = [ "setuptools==80.9", - "setuptools-scm[toml]==8.3.1", + "setuptools-scm[toml]==9.1.1", ] [project] From 5d0037607ad907bdb08fe5cce68cc4e0586bb3c8 Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 14:46:31 +0200 Subject: [PATCH 5/9] test: Added test which asserts that pytest_asyncio.__version__ is present. --- tests/test_package.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/test_package.py diff --git a/tests/test_package.py b/tests/test_package.py new file mode 100644 index 00000000..6f4f720d --- /dev/null +++ b/tests/test_package.py @@ -0,0 +1,5 @@ +import pytest_asyncio + + +def test_package_exposes_version(): + assert pytest_asyncio.__version__ From 26eb968a0d08c348dfc0f5abb5b39c1dd9e3b338 Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 14:47:33 +0200 Subject: [PATCH 6/9] refactor: Derive __version__ using importlib.metadata. This replaces the existing approach that uses a version file generated by setuptools-scm. --- pytest_asyncio/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pytest_asyncio/__init__.py b/pytest_asyncio/__init__.py index c25c1bf1..abd62e15 100644 --- a/pytest_asyncio/__init__.py +++ b/pytest_asyncio/__init__.py @@ -2,7 +2,10 @@ from __future__ import annotations -from ._version import version as __version__ # noqa: F401 +from importlib.metadata import version + from .plugin import fixture, is_async_test +__version__ = version(__name__) + __all__ = ("fixture", "is_async_test") From 0f99f712c32b04f3e157e2f62621cfa16867f49e Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 14:51:53 +0200 Subject: [PATCH 7/9] refactor: Remove obsolete version file. --- .gitignore | 4 ---- pyproject.toml | 4 ---- setup.cfg | 18 ------------------ 3 files changed, 26 deletions(-) delete mode 100644 setup.cfg diff --git a/.gitignore b/.gitignore index 5a568761..076a7d00 100644 --- a/.gitignore +++ b/.gitignore @@ -62,7 +62,3 @@ target/ # pyenv .python-version - - -# generated by setuptools_scm -pytest_asyncio/_version.py diff --git a/pyproject.toml b/pyproject.toml index 981355f7..c6590990 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,6 @@ packages = [ include-package-data = true [tool.setuptools_scm] -write_to = "pytest_asyncio/_version.py" local_scheme = "no-local-version" [tool.ruff] @@ -138,9 +137,6 @@ source = [ ] branch = true data_file = "coverage/coverage" -omit = [ - "*/_version.py", -] parallel = true [tool.coverage.report] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index f68f54b8..00000000 --- a/setup.cfg +++ /dev/null @@ -1,18 +0,0 @@ -[metadata] -# Not everything is in in pyproject.toml because of this issue: -; Traceback (most recent call last): -; File "/tmp/build-env-rud8b5r6/lib/python3.12/site-packages/setuptools/config/expand.py", line 69, in __getattr__ -; return next( -; ^^^^^ -;StopIteration -; -;The above exception was the direct cause of the following exception: -; -;Traceback (most recent call last): -; File "/tmp/build-env-rud8b5r6/lib/python3.12/site-packages/setuptools/config/expand.py", line 183, in read_attr -; return getattr(StaticModule(module_name, spec), attr_name) -; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -; File "/tmp/build-env-rud8b5r6/lib/python3.12/site-packages/setuptools/config/expand.py", line 75, in __getattr__ -; raise AttributeError(f"{self.name} has no attribute {attr}") from e -;AttributeError: pytest_asyncio has no attribute __version__ -version = attr: pytest_asyncio.__version__ From 6a4f6a1c6cdc8b4aea123851126521d7fa8570be Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 14:55:45 +0200 Subject: [PATCH 8/9] chore: Bump setuptools-scm to v9.2.0. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c6590990..71ef4ed6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ build-backend = "setuptools.build_meta" requires = [ "setuptools==80.9", - "setuptools-scm[toml]==9.1.1", + "setuptools-scm[toml]==9.2", ] [project] From d28f82ebb6767304e2745d63d2a63fb741a37036 Mon Sep 17 00:00:00 2001 From: Michael Seifert Date: Sun, 17 Aug 2025 15:02:07 +0200 Subject: [PATCH 9/9] build: Remove obsolete toml extra from setuptools-scm. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 71ef4ed6..d3c5b6bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ build-backend = "setuptools.build_meta" requires = [ "setuptools==80.9", - "setuptools-scm[toml]==9.2", + "setuptools-scm==9.2", ] [project]