Script 'mail_helper' called by obssrc
Hello community,

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

Package is "python-pdm"

Tue Apr 14 17:49:23 2026 rev:21 rq:1346529 version:2.26.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pdm/python-pdm.changes    2026-03-31 
15:23:55.864424180 +0200
+++ /work/SRC/openSUSE:Factory/.python-pdm.new.21863/python-pdm.changes 
2026-04-14 17:50:08.656065154 +0200
@@ -1,0 +2,8 @@
+Tue Apr 14 06:46:37 UTC 2026 - Steve Kowalik <[email protected]>
+
+- Add patch support-installer-1.0.patch:
+  * Support installer 1.0 changes.
+- Specify versions for many of the requirements.
+- Stop skipping so many network tests.
+
+-------------------------------------------------------------------

New:
----
  support-installer-1.0.patch

----------(New B)----------
  New:
- Add patch support-installer-1.0.patch:
  * Support installer 1.0 changes.
----------(New E)----------

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

Other differences:
------------------
++++++ python-pdm.spec ++++++
--- /var/tmp/diff_new_pack.Lt4SEz/_old  2026-04-14 17:50:09.420096738 +0200
+++ /var/tmp/diff_new_pack.Lt4SEz/_new  2026-04-14 17:50:09.420096738 +0200
@@ -33,6 +33,8 @@
 License:        MIT
 URL:            https://github.com/pdm-project/pdm/
 Source0:        
https://files.pythonhosted.org/packages/source/p/pdm/pdm-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM gh#pdm-project/pdm#3764
+Patch0:         support-installer-1.0.patch
 BuildRequires:  %{python_module base >= 3.9}
 BuildRequires:  %{python_module importlib-metadata if %python-base <= 3.9}
 BuildRequires:  %{python_module pdm-backend}
@@ -40,35 +42,34 @@
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 Requires:       python-blinker
-Requires:       python-certifi
-Requires:       python-dep-logic >= 0.4.4
+Requires:       python-certifi >= 2024.8.30
+Requires:       python-dep-logic >= 0.5
 Requires:       python-filelock >= 3.13
-Requires:       python-findpython >= 0.6
+Requires:       python-findpython >= 0.7
 Requires:       python-hishel >= 1.0.0
-Requires:       python-httpcore
+Requires:       python-httpcore >= 1.0.6
 Requires:       python-httpx >= 0.20
-Requires:       python-id
+Requires:       python-id >= 1.5.0
 Requires:       python-installer >= 0.7
 Requires:       python-packaging >= 22.0
-Requires:       python-pbs-installer >= 2024.4.18
+Requires:       python-pbs-installer >= 2025.10.7
 Requires:       python-platformdirs
 Requires:       python-pyproject-hooks
 Requires:       python-python-dotenv >= 0.15
-Requires:       python-resolvelib >= 1.0.1
+Requires:       python-resolvelib >= 1.1
 Requires:       python-rich >= 12.3.0
 Requires:       python-shellingham >= 1.3.2
-Requires:       python-unearth >= 0.17.0
+Requires:       python-unearth >= 0.17.5
 Requires:       python-virtualenv >= 20
 Requires:       (python-tomlkit >= 0.11.1 with python-tomlkit < 1)
+%if 0%{?python_version_nodots} < 310
+Requires:       python-importlib-metadata >= 3.6
+%endif
 %if 0%{?python_version_nodots} < 311
 Requires:       python-tomli >= 1.1.0
 %endif
-%if 0%{?python_version_nodots} <= 39
-Requires:       python-importlib-metadata
-Requires:       python-typing-extensions
-%endif
 %if 0%{?python_version_nodots} >= 310
-Requires:       python-truststore
+Requires:       python-truststore >= 0.10.4
 %endif
 Requires(post): update-alternatives
 Requires(postun): update-alternatives
@@ -76,10 +77,11 @@
 # SECTION test requirements
 %if %{with test}
 BuildRequires:  %{python_module pdm = %{version}}
-BuildRequires:  %{python_module pytest-httpserver}
-BuildRequires:  %{python_module pytest-httpx}
+BuildRequires:  %{python_module pytest-httpserver >= 1.0.6}
+BuildRequires:  %{python_module pytest-httpx >= 0.34}
 BuildRequires:  %{python_module pytest-mock}
-BuildRequires:  %{python_module pytest-xdist}
+BuildRequires:  %{python_module pytest-rerunfailures >= 10.2}
+BuildRequires:  %{python_module pytest-xdist >= 1.31}
 BuildRequires:  %{python_module pytest}
 %endif
 # /SECTION
@@ -124,37 +126,18 @@
 donttest="$donttest or test_list_csv_include_exclude or 
test_remove_editable_packages_while_keeping_normal or test_project_backend"
 # Requires network
 donttest="$donttest or test_build_with_no_isolation"
-# Requires network
-donttest="$donttest or test_find_candidates_from_find_links"
-donttest="$donttest or test_build_single_module"
-donttest="$donttest or test_build_single_module_with_readme"
-donttest="$donttest or test_build_package"
-donttest="$donttest or test_build_src_package"
-donttest="$donttest or test_build_package_include"
-donttest="$donttest or test_build_src_package_by_include"
-donttest="$donttest or test_build_with_config_settings"
-donttest="$donttest or test_cli_build_with_config_settings"
-donttest="$donttest or test_build_ignoring_pip_environment"
-donttest="$donttest or test_find_interpreters_with_PDM_IGNORE_ACTIVE_VENV"
-donttest="$donttest or test_hooks[build] or test_hooks[publish]"
-donttest="$donttest or test_skip_option_from_signal"
-donttest="$donttest or test_skip_all_option_from_signal"
-donttest="$donttest or test_skip_pre_post_option_from_signal"
-donttest="$donttest or test_build_distributions"
-donttest="$donttest or test_show_self_package"
-donttest="$donttest or test_publish_and_build_in_one_run"
-donttest="$donttest or test_expand_project_root_in_url"
-donttest="$donttest or test_init_validate_python_requires"
-donttest="$donttest or test_init_command"
-donttest="$donttest or test_init_command_library"
-donttest="$donttest or test_use_command"
-donttest="$donttest or test_init_project_respect_version_file"
-donttest="$donttest or test_resolve_local_artifacts or 
test_resolve_two_extras_from_the_same_package or 
test_resolve_file_req_with_prerelease"
 donttest="$donttest or test_init_auto_create_venv"
+donttest="$donttest or test_expand_project_root_in_url"
 donttest="$donttest or test_use_python_write_file_with_use_python_version"
 donttest="$donttest or test_use_python_write_file_without_use_python_version"
 # Different requires python
 donttest="$donttest or test_new_command"
+# Broken with installer v1
+donttest="$donttest or test_uninstall_with_console_scripts"
+donttest="$donttest or test_install_wheel_with_cache"
+donttest="$donttest or test_can_install_wheel_with_cache_in_multiple_projects"
+donttest="$donttest or test_url_requirement_is_not_cached"
+donttest="$donttest or test_install_wheel_with_data_scripts"
 
 %pytest -v -k "not ($donttest)"
 %endif

++++++ support-installer-1.0.patch ++++++
>From 59011ab3cac77866816c9a55ad84ae01e873dce3 Mon Sep 17 00:00:00 2001
From: Maximiliano Curia <[email protected]>
Date: Fri, 10 Apr 2026 10:39:03 +0200
Subject: [PATCH] Add make_file_executable to utils

Avoid using the installer.utils internal implementation.

An implementation detail, the implemented make_file_executable works
similar to invoking chmod +x $file, while the previously used
installer's version was similar to invoking chmod 755 $file.
---
 src/pdm/installers/installers.py | 3 ++-
 src/pdm/models/caches.py         | 4 +---
 src/pdm/utils.py                 | 6 ++++++
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/pdm/installers/installers.py b/src/pdm/installers/installers.py
index 526e2cad5d..7f6eeb9633 100644
--- a/src/pdm/installers/installers.py
+++ b/src/pdm/installers/installers.py
@@ -16,6 +16,7 @@
 from installer.sources import WheelFile as _WheelFile
 
 from pdm.models.cached_package import CachedPackage
+from pdm.utils import make_file_executable
 
 if TYPE_CHECKING:
     from typing import Any, BinaryIO, Iterable, Literal
@@ -100,7 +101,7 @@ def __init__(
 
     def write_to_fs(self, scheme: Scheme, path: str, stream: BinaryIO, 
is_executable: bool) -> RecordEntry:
         from installer.records import Hash
-        from installer.utils import copyfileobj_with_hashing, 
make_file_executable
+        from installer.utils import copyfileobj_with_hashing
 
         target_path = os.path.join(self.scheme_dict[scheme], path)
         if os.path.exists(target_path):
diff --git a/src/pdm/models/caches.py b/src/pdm/models/caches.py
index 6929969b64..93de674fea 100644
--- a/src/pdm/models/caches.py
+++ b/src/pdm/models/caches.py
@@ -17,7 +17,7 @@
 from pdm.models.candidates import Candidate
 from pdm.models.markers import EnvSpec
 from pdm.termui import logger
-from pdm.utils import atomic_open_for_write, create_tracked_tempdir
+from pdm.utils import atomic_open_for_write, create_tracked_tempdir, 
make_file_executable
 
 if TYPE_CHECKING:
     from httpx import Client
@@ -278,8 +278,6 @@ def cache_wheel(self, wheel: Path) -> CachedPackage:
         """Create a CachedPackage instance from a wheel file"""
         import zipfile
 
-        from installer.utils import make_file_executable
-
         dest = self.root.joinpath(f"{wheel.name}.cache")
         pkg = CachedPackage(dest, original_wheel=wheel)
         if dest.exists():
diff --git a/src/pdm/utils.py b/src/pdm/utils.py
index d321f2620a..6aae96c59c 100644
--- a/src/pdm/utils.py
+++ b/src/pdm/utils.py
@@ -605,3 +605,9 @@ def hide_url(url: str) -> HiddenText:
     netloc = f"*****@{netloc}"
     redacted = parse.urlunsplit((parsed.scheme, netloc, parsed.path, 
parsed.query, parsed.fragment))
     return HiddenText(url, redacted)
+
+
+def make_file_executable(path: str | Path) -> None:
+    """Make the file at the provided path executable."""
+    path_ = Path(path)
+    path_.chmod(path_.stat().st_mode | 0o111)

Reply via email to