Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pdm-backend for 
openSUSE:Factory checked in at 2026-04-11 22:22:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pdm-backend (Old)
 and      /work/SRC/openSUSE:Factory/.python-pdm-backend.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pdm-backend"

Sat Apr 11 22:22:37 2026 rev:9 rq:1345075 version:2.4.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pdm-backend/python-pdm-backend.changes    
2026-03-10 17:46:47.395390977 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-pdm-backend.new.21863/python-pdm-backend.changes
 2026-04-11 22:22:38.823225708 +0200
@@ -1,0 +2,7 @@
+Tue Apr  7 21:44:16 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.4.8:
+  * Support omitting source in version table when path is
+    declared
+
+-------------------------------------------------------------------

Old:
----
  pdm_backend-2.4.7.tar.gz

New:
----
  pdm_backend-2.4.8.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pdm-backend.spec ++++++
--- /var/tmp/diff_new_pack.uOUfIk/_old  2026-04-11 22:22:39.719262387 +0200
+++ /var/tmp/diff_new_pack.uOUfIk/_new  2026-04-11 22:22:39.719262387 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-pdm-backend
-Version:        2.4.7
+Version:        2.4.8
 Release:        0
 Summary:        Backend used by PDM
 License:        MIT

++++++ pdm_backend-2.4.7.tar.gz -> pdm_backend-2.4.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/PKG-INFO 
new/pdm_backend-2.4.8/PKG-INFO
--- old/pdm_backend-2.4.7/PKG-INFO      1970-01-01 01:00:00.000000000 +0100
+++ new/pdm_backend-2.4.8/PKG-INFO      1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: pdm-backend
-Version: 2.4.7
+Version: 2.4.8
 Summary: The build backend used by PDM that supports latest packaging standards
 Keywords: packaging,PEP 517,build
 Author-Email: Frost Ming <[email protected]>
@@ -14,6 +14,7 @@
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Project-URL: Homepage, https://github.com/pdm-project/pdm-backend
 Project-URL: Repository, https://github.com/pdm-project/pdm-backend
 Project-URL: Documentation, https://backend.pdm-project.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/pyproject.toml 
new/pdm_backend-2.4.8/pyproject.toml
--- old/pdm_backend-2.4.7/pyproject.toml        2026-01-29 11:52:04.033510700 
+0100
+++ new/pdm_backend-2.4.8/pyproject.toml        2026-04-02 04:41:46.435585700 
+0200
@@ -25,11 +25,12 @@
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: 3.14",
 ]
 dependencies = [
     "importlib-metadata>=3.6; python_version < \"3.10\"",
 ]
-version = "2.4.7"
+version = "2.4.8"
 
 [project.urls]
 Homepage = "https://github.com/pdm-project/pdm-backend";
@@ -47,7 +48,7 @@
 src = [
     "src",
 ]
-target-version = "py38"
+target-version = "py39"
 exclude = [
     "tests/fixtures",
 ]
@@ -146,7 +147,6 @@
 dev = [
     "editables>=0.3",
     "pre-commit>=2.21.0",
-    "vendoring>=1.2.0; python_version ~= \"3.8\"",
 ]
 docs = [
     "mkdocs>=1.4.2",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/__init__.py 
new/pdm_backend-2.4.8/src/pdm/backend/__init__.py
--- old/pdm_backend-2.4.7/src/pdm/backend/__init__.py   2026-01-29 
11:51:55.056493000 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/__init__.py   2026-04-02 
04:41:37.966540000 +0200
@@ -4,8 +4,9 @@
 
 from __future__ import annotations
 
+from collections.abc import Mapping
 from pathlib import Path
-from typing import Any, Mapping
+from typing import Any
 
 
 def get_requires_for_build_wheel(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/base.py 
new/pdm_backend-2.4.8/src/pdm/backend/base.py
--- old/pdm_backend-2.4.7/src/pdm/backend/base.py       2026-01-29 
11:51:55.059493000 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/base.py       2026-04-02 
04:41:37.968780500 +0200
@@ -4,17 +4,10 @@
 import os
 import shutil
 import sys
+from collections.abc import Iterable, Mapping
 from fnmatch import fnmatch
 from pathlib import Path
-from typing import (
-    TYPE_CHECKING,
-    Any,
-    Iterable,
-    Literal,
-    Mapping,
-    TypeVar,
-    cast,
-)
+from typing import TYPE_CHECKING, Any, Literal, TypeVar, cast
 
 from pdm.backend._vendor.pyproject_metadata import StandardMetadata
 from pdm.backend.config import Config
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/hooks/base.py 
new/pdm_backend-2.4.8/src/pdm/backend/hooks/base.py
--- old/pdm_backend-2.4.7/src/pdm/backend/hooks/base.py 2026-01-29 
11:51:55.059493000 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/hooks/base.py 2026-04-02 
04:41:37.969474300 +0200
@@ -1,8 +1,9 @@
 from __future__ import annotations
 
 import dataclasses
+from collections.abc import Iterable
 from pathlib import Path
-from typing import TYPE_CHECKING, Any, Iterable
+from typing import TYPE_CHECKING, Any
 
 from pdm.backend.config import Config
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pdm_backend-2.4.7/src/pdm/backend/hooks/version/__init__.py 
new/pdm_backend-2.4.8/src/pdm/backend/hooks/version/__init__.py
--- old/pdm_backend-2.4.7/src/pdm/backend/hooks/version/__init__.py     
2026-01-29 11:51:55.059493000 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/hooks/version/__init__.py     
2026-04-02 04:41:37.969474300 +0200
@@ -51,8 +51,13 @@
             )
         source: str = version_config.get("source")
         if not source:
-            raise ConfigError("tool.pdm.version.source is required")
-        if source not in self.supported_sources:
+            if (path := version_config.get("path", "")) and (
+                context.root.joinpath(path).exists()
+            ):
+                source = "file"
+            else:
+                raise ConfigError("tool.pdm.version.source is required")
+        elif source not in self.supported_sources:
             warnings.warn(
                 f"Invalid version source {source}, must be one of "
                 f"{', '.join(self.supported_sources)}",
@@ -65,17 +70,31 @@
         )
         metadata["dynamic"].remove("version")
 
-    def resolve_version_from_file(self, context: Context, path: str) -> 
Version:
+    def resolve_version_from_file(
+        self, context: Context, path: str, pattern: str | None = None
+    ) -> Version:
         """Resolve version from a file."""
         version_source = context.root / path
-        with open(version_source, encoding="utf-8") as fp:
-            match = re.search(
-                r"^__version__\s*=\s*[\"'](.+?)[\"']\s*(?:#.*)?$", fp.read(), 
re.M
-            )
+        text = version_source.read_text(encoding="utf-8")
+        if pattern is not None:
+            if not (match := re.search(pattern, text, re.M)):
+                raise ConfigError(
+                    f"Couldn't find version in file {version_source!r} by 
{pattern=}"
+                )
+            try:
+                value = match.group(1)
+            except IndexError as e:
+                raise ConfigError(
+                    f"Invalid version pattern ({pattern!r}), should contains 
'(' and ')'"
+                ) from e
+            return Version(value)
+        match = re.search(
+            r"^(?:__version__|VERSION)\s*=\s*[\"'](.+?)[\"']\s*(?:#.*)?$", 
text, re.M
+        )
         if not match:
             raise ConfigError(
                 f"Couldn't find version in file {version_source!r}, "
-                "it should appear as `__version__ = 'a.b.c'`.",
+                "it should appear as `__version__ = 'a.b.c'` or `VERSION = 
'a.b.c'`.",
             )
         return Version(match.group(1))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/intree.py 
new/pdm_backend-2.4.8/src/pdm/backend/intree.py
--- old/pdm_backend-2.4.7/src/pdm/backend/intree.py     2026-01-29 
11:51:55.060493200 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/intree.py     2026-04-02 
04:41:37.969668400 +0200
@@ -1,7 +1,8 @@
 from __future__ import annotations
 
 import sys
-from typing import Any, Mapping
+from collections.abc import Mapping
+from typing import Any
 
 from pdm.backend import build_editable as build_editable
 from pdm.backend import build_sdist as build_sdist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/sdist.py 
new/pdm_backend-2.4.8/src/pdm/backend/sdist.py
--- old/pdm_backend-2.4.7/src/pdm/backend/sdist.py      2026-01-29 
11:51:55.060493200 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/sdist.py      2026-04-02 
04:41:37.969668400 +0200
@@ -2,11 +2,11 @@
 
 import os
 import tarfile
+from collections.abc import Iterable
 from copy import copy
 from io import BytesIO
 from pathlib import Path
 from posixpath import join as pjoin
-from typing import Iterable
 
 from pdm.backend._vendor.packaging.utils import canonicalize_name
 from pdm.backend.base import Builder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/structures.py 
new/pdm_backend-2.4.8/src/pdm/backend/structures.py
--- old/pdm_backend-2.4.7/src/pdm/backend/structures.py 2026-01-29 
11:51:55.060493200 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/structures.py 2026-04-02 
04:41:37.969668400 +0200
@@ -1,8 +1,9 @@
 from __future__ import annotations
 
 import os
+from collections.abc import Iterator, MutableMapping
 from pathlib import Path
-from typing import Any, Iterator, MutableMapping
+from typing import Any
 
 
 class Table(MutableMapping[str, Any]):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/utils.py 
new/pdm_backend-2.4.8/src/pdm/backend/utils.py
--- old/pdm_backend-2.4.7/src/pdm/backend/utils.py      2026-01-29 
11:51:55.060493200 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/utils.py      2026-04-02 
04:41:37.969668400 +0200
@@ -9,9 +9,11 @@
 import sys
 import types
 import urllib.parse
+from collections.abc import Generator, Iterable
 from fnmatch import fnmatchcase
 from pathlib import Path
-from typing import Any, Callable, Generator, Iterable, Match
+from re import Match
+from typing import Any, Callable
 
 from pdm.backend._vendor.packaging.markers import Marker
 from pdm.backend._vendor.packaging.requirements import Requirement
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/src/pdm/backend/wheel.py 
new/pdm_backend-2.4.8/src/pdm/backend/wheel.py
--- old/pdm_backend-2.4.7/src/pdm/backend/wheel.py      2026-01-29 
11:51:55.060493200 +0100
+++ new/pdm_backend-2.4.8/src/pdm/backend/wheel.py      2026-04-02 
04:41:37.969781000 +0200
@@ -11,9 +11,10 @@
 import time
 import zipfile
 from base64 import urlsafe_b64encode
+from collections.abc import Iterable, Mapping
 from importlib.metadata import version as get_version
 from pathlib import Path
-from typing import IO, Any, Iterable, Mapping, NamedTuple, cast
+from typing import IO, Any, NamedTuple, cast
 
 from pdm.backend._vendor.packaging import tags
 from pdm.backend._vendor.packaging.specifiers import SpecifierSet
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pdm_backend-2.4.7/tests/fixtures/projects/demo-src-package/pyproject.toml 
new/pdm_backend-2.4.8/tests/fixtures/projects/demo-src-package/pyproject.toml
--- 
old/pdm_backend-2.4.7/tests/fixtures/projects/demo-src-package/pyproject.toml   
    2026-01-29 11:51:55.065493000 +0100
+++ 
new/pdm_backend-2.4.8/tests/fixtures/projects/demo-src-package/pyproject.toml   
    2026-04-02 04:41:37.975020600 +0200
@@ -15,5 +15,5 @@
 
 [project.optional-dependencies]
 
-[tool.pdm]
-version = {source = "file", path = "src/my_package/__init__.py" }
+[tool.pdm.version]
+path = "src/my_package/__init__.py"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pdm_backend-2.4.7/tests/test_api.py 
new/pdm_backend-2.4.8/tests/test_api.py
--- old/pdm_backend-2.4.7/tests/test_api.py     2026-01-29 11:51:55.066493300 
+0100
+++ new/pdm_backend-2.4.8/tests/test_api.py     2026-04-02 04:41:37.975738000 
+0200
@@ -107,6 +107,21 @@
     assert "my_package/__init__.py" in zip_names
     assert "my_package/data.json" in zip_names
 
+    version_file = Path("src/my_package/__init__.py")
+    version_file.write_text('VERSION = "0.1.1"')
+    wheel_name = api.build_wheel(dist.as_posix())
+    sdist_name = api.build_sdist(dist.as_posix())
+    assert sdist_name == "demo_package-0.1.1.tar.gz"
+    assert wheel_name == "demo_package-0.1.1-py3-none-any.whl"
+
+    version_file.write_text('__VERSION__ = "0.1.2"')
+    with Path("pyproject.toml").open("a+") as f:
+        f.write('pattern = \'__VERSION__ = "([^"]+)"\'')
+    wheel_name = api.build_wheel(dist.as_posix())
+    sdist_name = api.build_sdist(dist.as_posix())
+    assert sdist_name == "demo_package-0.1.2.tar.gz"
+    assert wheel_name == "demo_package-0.1.2-py3-none-any.whl"
+
 
 @pytest.mark.parametrize("name", ["demo-package-include"])
 def test_build_package_include(dist: Path) -> None:

Reply via email to