Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-samplerate for 
openSUSE:Factory checked in at 2026-04-01 19:52:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-samplerate (Old)
 and      /work/SRC/openSUSE:Factory/.python-samplerate.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-samplerate"

Wed Apr  1 19:52:21 2026 rev:4 rq:1344071 version:0.2.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-samplerate/python-samplerate.changes      
2024-02-18 20:23:39.635073867 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-samplerate.new.21863/python-samplerate.changes
   2026-04-01 19:54:00.685561144 +0200
@@ -1,0 +2,17 @@
+Wed Mar 25 08:28:10 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.2.4
+  * Updated pybind11 to 3.0.1.
+  * Updated GitHub Actions CI to use cibuildwheel, adding support
+    for Linux (x86_64, aarch64) wheels.
+  * Fixed array resizing in C++ extension by returning new array
+    views to avoid potential issues.
+  * Added cmake to build-system requirements in pyproject.toml.
+  * Switched to Python_EXECUTABLE for pybind11 compatibility in
+    CMake.
+  * Set CMAKE_POSITION_INDEPENDENT_CODE to ON and -fPIC in
+    CMakeLists.txt.
+  * Added support for MACOSX_DEPLOYMENT_TARGET in setup.py.
+  * Updated metadata to use License-Expression: MIT.
+
+-------------------------------------------------------------------

Old:
----
  samplerate-0.2.1.tar.gz

New:
----
  samplerate-0.2.4.tar.gz

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

Other differences:
------------------
++++++ python-samplerate.spec ++++++
--- /var/tmp/diff_new_pack.tW51OC/_old  2026-04-01 19:54:01.521595869 +0200
+++ /var/tmp/diff_new_pack.tW51OC/_new  2026-04-01 19:54:01.537596534 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-samplerate
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python-samplerate
-Version:        0.2.1
+Version:        0.2.4
 Release:        0
 License:        MIT
 Summary:        Python bindings for libsamplerate
@@ -28,8 +28,8 @@
 BuildRequires:  %{python_module numpy-devel}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module pybind11-devel}
-BuildRequires:  %{python_module setuptools_scm}
-BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module setuptools >= 61}
+BuildRequires:  %{python_module setuptools_scm >= 6.2}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  c++_compiler
 BuildRequires:  cmake

++++++ samplerate-0.2.1.tar.gz -> samplerate-0.2.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/.github/workflows/pythonpackage.yml 
new/samplerate-0.2.4/.github/workflows/pythonpackage.yml
--- old/samplerate-0.2.1/.github/workflows/pythonpackage.yml    2024-01-24 
00:51:19.000000000 +0100
+++ new/samplerate-0.2.4/.github/workflows/pythonpackage.yml    2026-03-22 
19:12:56.000000000 +0100
@@ -1,75 +1,136 @@
 name: samplerate
 
-on: [push, pull_request]
+on:
+  push:
+    branches: [master]
+    tags: ["v*", "test-*"]
+  pull_request:
+    types: [opened, synchronize, reopened, labeled]
+  workflow_dispatch:
 
 jobs:
-  build:
+  build_sdist:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v6
+      with:
+        submodules: recursive
+        fetch-depth: 0
+    - name: Set up Python
+      uses: actions/setup-python@v6
+      with:
+        python-version: "3.9"
+    - name: Build sdist
+      run: |
+        python -m pip install --upgrade pip
+        pip install -U setuptools setuptools_scm build twine
+        python -m build --sdist
+        twine check dist/*
+    - uses: actions/upload-artifact@v6
+      with:
+        name: sdist
+        path: dist/*.tar.gz
+
+  build_wheels_pr:
+    if: github.event_name == 'pull_request' && 
!contains(github.event.pull_request.labels.*.name, 'full-build')
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+        - os: ubuntu-latest
+          cibw_build: "cp314-manylinux_x86_64"
+          cibw_archs: "x86_64"
+        - os: macos-latest
+          cibw_build: "cp314-macosx_universal2"
+          cibw_archs: "universal2"
+        - os: windows-latest
+          cibw_build: "cp314-win_amd64"
+          cibw_archs: "AMD64"
+    steps:
+    - uses: actions/checkout@v6
+      with:
+        submodules: recursive
+        fetch-depth: 0
+    - uses: pypa/[email protected]
+      env:
+        CIBW_BUILD: ${{ matrix.cibw_build }}
+        CIBW_ARCHS: ${{ matrix.cibw_archs }}
+        CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
+        CIBW_TEST_REQUIRES: "pytest numpy"
+        CIBW_TEST_COMMAND: "pytest {project}/tests"
 
+  build_wheels:
+    if: >-
+      github.event_name == 'push' ||
+      github.event_name == 'workflow_dispatch' ||
+      (github.event_name == 'pull_request' && 
contains(github.event.pull_request.labels.*.name, 'full-build'))
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
-      max-parallel: 12
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
-        python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
     steps:
-    - uses: actions/checkout@v3
-    - name: Checkout submodules
-      shell: bash
-      run: |
-        auth_header="$(git config --local --get 
http.https://github.com/.extraheader)"
-        git submodule sync --recursive
-        git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule 
update --init --force --recursive --depth=1
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v4
+    - uses: actions/checkout@v6
       with:
-        python-version: ${{ matrix.python-version }}
-    - name: Install dependencies
-      run: |
-        python -m pip install --upgrade pip
-        pip install -U setuptools setuptools_scm wheel build twine
-        pip install -r requirements.txt
-    - name: Build package
-      run: |
-        python -m pip install -e .
-    - name: Test with pytest
-      run: |
-        pytest
-    - name: Test the universal wheels
-      if: matrix.os == 'ubuntu-latest'
-      run: |
-        # do not build binary wheels on linux
-        python -m build --sdist
-        twine check dist/*
-    - name: Test the binary wheels
-      if: matrix.os != 'ubuntu-latest'
-      run: |
-        python -m build
-        twine check dist/*
-    - name: Publish sdist to pypi
-      if: github.event_name == 'push' && startsWith(github.event.ref, 
'refs/tags/v') && matrix.os == 'ubuntu-latest'
+        submodules: recursive
+        fetch-depth: 0
+    - name: Set up QEMU
+      if: runner.os == 'Linux'
+      uses: docker/setup-qemu-action@v3
+      with:
+        platforms: all
+    - uses: pypa/[email protected]
       env:
-        TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
-        TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
+        CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*"
+        CIBW_SKIP: "*-musllinux_* cp39-*aarch64 cp310-*aarch64"
+        CIBW_ARCHS_LINUX: "x86_64 aarch64"
+        CIBW_ARCHS_MACOS: "universal2"
+        CIBW_ARCHS_WINDOWS: "AMD64"
+        CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
+        CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28
+        CIBW_TEST_REQUIRES: "pytest numpy"
+        CIBW_TEST_COMMAND: "pytest {project}/tests"
+        CIBW_TEST_SKIP: "cp314-*"
+    - uses: actions/upload-artifact@v6
+      with:
+        name: wheels-${{ matrix.os }}
+        path: wheelhouse/*.whl
+
+  publish:
+    needs: [build_sdist, build_wheels]
+    runs-on: ubuntu-latest
+    if: github.event_name == 'push' && startsWith(github.event.ref, 
'refs/tags/v')
+    steps:
+    - uses: actions/download-artifact@v8
+      with:
+        path: dist
+        merge-multiple: true
+    - name: Validate wheels
       run: |
-        twine upload --skip-existing dist/*
-    - name: Publish bdist to pypi
-      if: github.event_name == 'push' && startsWith(github.event.ref, 
'refs/tags/v') && matrix.os != 'ubuntu-latest'
+        pip install --upgrade twine packaging
+        twine check dist/*
+    - name: Publish to PyPI
       env:
         TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
         TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
       run: |
         twine upload --skip-existing dist/*
-    - name: Publish sdist to pypi-test
-      if: github.event_name == 'push' && startsWith(github.event.ref, 
'refs/tags/test-') && matrix.os == 'ubuntu-latest'
-      env:
-        TWINE_USERNAME: ${{ secrets.PYPITEST_USERNAME }}
-        TWINE_PASSWORD: ${{ secrets.PYPITEST_PASSWORD }}
-        TWINE_REPOSITORY_URL: https://test.pypi.org/legacy/
+
+  publish-test:
+    needs: [build_sdist, build_wheels]
+    runs-on: ubuntu-latest
+    if: github.event_name == 'push' && startsWith(github.event.ref, 
'refs/tags/test-')
+    steps:
+    - uses: actions/download-artifact@v8
+      with:
+        path: dist
+        merge-multiple: true
+    - name: Validate wheels
       run: |
-        twine upload --skip-existing dist/*
-    - name: Publish bdist to pypi-test
-      if: github.event_name == 'push' && startsWith(github.event.ref, 
'refs/tags/test-') && matrix.os != 'ubuntu-latest'
+        pip install --upgrade twine packaging
+        twine check dist/*
+    - name: Publish to PyPI Test
       env:
         TWINE_USERNAME: ${{ secrets.PYPITEST_USERNAME }}
         TWINE_PASSWORD: ${{ secrets.PYPITEST_PASSWORD }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/CMakeLists.txt 
new/samplerate-0.2.4/CMakeLists.txt
--- old/samplerate-0.2.1/CMakeLists.txt 2024-01-24 00:51:19.000000000 +0100
+++ new/samplerate-0.2.4/CMakeLists.txt 2026-03-22 19:12:56.000000000 +0100
@@ -1,14 +1,12 @@
 # 
https://stackoverflow.com/questions/51907755/building-a-pybind11-module-with-cpp-and-cuda-sources-using-cmake
 
 cmake_minimum_required(VERSION 3.15)
-
-message(STATUS "Found Python prefix ${PYTHON_PREFIX}")
-list(PREPEND CMAKE_PREFIX_PATH "${PYTHON_PREFIX}")
+set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
 
 project(python-samplerate)
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
-cmake_policy(SET CMP0094 NEW)
+set(PYBIND11_FINDPYTHON ON)
 
 # adds the external dependencies
 add_subdirectory(external)
@@ -25,7 +23,7 @@
 if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR
     CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR
     (CMAKE_CXX_COMPILER_ID MATCHES "Intel" AND NOT WIN32))
-    target_compile_options(python-samplerate PRIVATE -std=c++14 -O3 -Wall 
-Wextra)
+    target_compile_options(python-samplerate PRIVATE -std=c++14 -O3 -Wall 
-Wextra -fPIC)
 endif()
 
 ### stick the package and libsamplerate version into the module
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/PKG-INFO 
new/samplerate-0.2.4/PKG-INFO
--- old/samplerate-0.2.1/PKG-INFO       2024-01-24 00:52:02.806748600 +0100
+++ new/samplerate-0.2.4/PKG-INFO       2026-03-22 19:13:15.426764700 +0100
@@ -1,15 +1,14 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: samplerate
-Version: 0.2.1
+Version: 0.2.4
 Summary: Monolithic python wrapper for libsamplerate based on pybind11 and 
NumPy
 Author-email: Robin Scheibler <[email protected]>, Tino Wagner 
<[email protected]>
-License: MIT
+License-Expression: MIT
 Keywords: samplerate,converter,signal processing,audio
 Classifier: Development Status :: 3 - Alpha
 Classifier: Environment :: Console
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: Science/Research
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Scientific/Engineering
@@ -18,6 +17,7 @@
 Description-Content-Type: text/x-rst
 License-File: LICENSE.rst
 Requires-Dist: numpy
+Dynamic: license-file
 
 python-samplerate
 =================
@@ -62,8 +62,9 @@
 
     $ pip install samplerate
 
-Binary wheels of `libsamplerate`_ for macOS and Windows (64 bit) are available.
-For other systems, a C++ 14 or above compiler is required to build the package.
+Binary wheels of `libsamplerate`_ are available for macOS (x86_64, arm64), 
Linux
+(x86_64, aarch64), and Windows (x86_64). Building from source on other 
platforms
+requires a C++14 or later compiler.
 
 
 Usage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/README.rst 
new/samplerate-0.2.4/README.rst
--- old/samplerate-0.2.1/README.rst     2024-01-24 00:51:19.000000000 +0100
+++ new/samplerate-0.2.4/README.rst     2026-03-22 19:12:56.000000000 +0100
@@ -41,8 +41,9 @@
 
     $ pip install samplerate
 
-Binary wheels of `libsamplerate`_ for macOS and Windows (64 bit) are available.
-For other systems, a C++ 14 or above compiler is required to build the package.
+Binary wheels of `libsamplerate`_ are available for macOS (x86_64, arm64), 
Linux
+(x86_64, aarch64), and Windows (x86_64). Building from source on other 
platforms
+requires a C++14 or later compiler.
 
 
 Usage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/external/CMakeLists.txt 
new/samplerate-0.2.4/external/CMakeLists.txt
--- old/samplerate-0.2.1/external/CMakeLists.txt        2024-01-24 
00:51:19.000000000 +0100
+++ new/samplerate-0.2.4/external/CMakeLists.txt        2026-03-22 
19:12:56.000000000 +0100
@@ -4,12 +4,13 @@
 FetchContent_Declare(
   pybind11
   GIT_REPOSITORY https://github.com/pybind/pybind11
-  GIT_TAG 5b0a6fc2017fcc176545afe3e09c9f9885283242 # 2.10.4
+  GIT_TAG f5fbe867d2d26e4a0a9177a51f6e568868ad3dc8 # 3.0.1
 )
 
 FetchContent_MakeAvailable(pybind11)
 
 # libsamplerate
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 set(BUILD_TESTING OFF CACHE BOOL "Disable libsamplerate test build")
 
 FetchContent_Declare(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/pyproject.toml 
new/samplerate-0.2.4/pyproject.toml
--- old/samplerate-0.2.1/pyproject.toml 2024-01-24 00:51:19.000000000 +0100
+++ new/samplerate-0.2.4/pyproject.toml 2026-03-22 19:12:56.000000000 +0100
@@ -1,5 +1,5 @@
 [build-system]
-requires = ["setuptools>=61", "setuptools_scm[toml]>=6.2"]
+requires = ["setuptools>=61", "setuptools_scm[toml]>=6.2", "cmake"]
 build-backend = "setuptools.build_meta"
 
 [project]
@@ -16,14 +16,13 @@
   "Environment :: Console",
   "Intended Audience :: Developers",
   "Intended Audience :: Science/Research",
-  "License :: OSI Approved :: MIT License",
   "Operating System :: OS Independent",
   "Programming Language :: Python :: 3",
   "Topic :: Scientific/Engineering",
   "Topic :: Multimedia :: Sound/Audio",
 ]
 keywords=["samplerate", "converter", "signal processing", "audio"]
-license = {text = "MIT"}
+license = "MIT"
 dependencies = ["numpy"]
 
 [tool.setuptools.dynamic]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/setup.py 
new/samplerate-0.2.4/setup.py
--- old/samplerate-0.2.1/setup.py       2024-01-24 00:51:19.000000000 +0100
+++ new/samplerate-0.2.4/setup.py       2026-03-22 19:12:56.000000000 +0100
@@ -46,12 +46,11 @@
         # Can be set with Conda-Build, for example.
         cmake_generator = os.environ.get("CMAKE_GENERATOR", "")
 
-        # Set Python_EXECUTABLE instead if you use PYBIND11_FINDPYTHON
         # EXAMPLE_VERSION_INFO shows you how to pass a value into the C++ code
         # from Python.
         cmake_args = [
             f"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={extdir}{os.sep}",
-            f"-DPYTHON_EXECUTABLE={sys.executable}",
+            f"-DPython_EXECUTABLE={sys.executable}",
             f"-DCMAKE_BUILD_TYPE={cfg}",  # not used on MSVC, but no harm
         ]
         build_args = []
@@ -105,6 +104,14 @@
         if "universal2" in self.plat_name:
             cmake_args += ["-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64"]
 
+        # Set MACOSX_DEPLOYMENT_TARGET for macOS builds.
+        if (
+            self.plat_name.startswith("macosx-")
+            and "MACOSX_DEPLOYMENT_TARGET" not in os.environ
+        ):
+            target_version = self.plat_name.split("-")[1]
+            os.environ["MACOSX_DEPLOYMENT_TARGET"] = target_version
+
         # Set CMAKE_BUILD_PARALLEL_LEVEL to control the parallel build level
         # across all generators.
         if "CMAKE_BUILD_PARALLEL_LEVEL" not in os.environ:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/src/samplerate.cpp 
new/samplerate-0.2.4/src/samplerate.cpp
--- old/samplerate-0.2.1/src/samplerate.cpp     2024-01-24 00:51:19.000000000 
+0100
+++ new/samplerate-0.2.4/src/samplerate.cpp     2026-03-22 19:12:56.000000000 
+0100
@@ -184,7 +184,9 @@
     // create a shorter view of the array
     if ((size_t)src_data.output_frames_gen < new_size) {
       out_shape[0] = src_data.output_frames_gen;
-      output.resize(out_shape);
+      return py::array_t<float, py::array::c_style>(
+        out_shape, outbuf.strides, static_cast<float *>(outbuf.ptr),
+        output);
     }
 
     return output;
@@ -313,7 +315,10 @@
     // create a shorter view of the array
     if (output_frames_gen < frames) {
       out_shape[0] = output_frames_gen;
-      output.resize(out_shape);
+      auto strides = std::vector<py::ssize_t>(output.strides(),
+                                              output.strides() + 
output.ndim());
+      return py::array_t<float, py::array::c_style>(
+        out_shape, strides, static_cast<float *>(outbuf.ptr), output);
     }
 
     return output;
@@ -414,7 +419,9 @@
   // create a shorter view of the array
   if ((size_t)src_data.output_frames_gen < new_size) {
     out_shape[0] = src_data.output_frames_gen;
-    output.resize(out_shape);
+    auto base = output;
+    output = py::array_t<float, py::array::c_style>(
+      out_shape, outbuf.strides, static_cast<float *>(outbuf.ptr), base);
   }
 
   if (verbose) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/samplerate-0.2.1/src/samplerate.egg-info/PKG-INFO 
new/samplerate-0.2.4/src/samplerate.egg-info/PKG-INFO
--- old/samplerate-0.2.1/src/samplerate.egg-info/PKG-INFO       2024-01-24 
00:52:02.000000000 +0100
+++ new/samplerate-0.2.4/src/samplerate.egg-info/PKG-INFO       2026-03-22 
19:13:15.000000000 +0100
@@ -1,15 +1,14 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: samplerate
-Version: 0.2.1
+Version: 0.2.4
 Summary: Monolithic python wrapper for libsamplerate based on pybind11 and 
NumPy
 Author-email: Robin Scheibler <[email protected]>, Tino Wagner 
<[email protected]>
-License: MIT
+License-Expression: MIT
 Keywords: samplerate,converter,signal processing,audio
 Classifier: Development Status :: 3 - Alpha
 Classifier: Environment :: Console
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: Science/Research
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 3
 Classifier: Topic :: Scientific/Engineering
@@ -18,6 +17,7 @@
 Description-Content-Type: text/x-rst
 License-File: LICENSE.rst
 Requires-Dist: numpy
+Dynamic: license-file
 
 python-samplerate
 =================
@@ -62,8 +62,9 @@
 
     $ pip install samplerate
 
-Binary wheels of `libsamplerate`_ for macOS and Windows (64 bit) are available.
-For other systems, a C++ 14 or above compiler is required to build the package.
+Binary wheels of `libsamplerate`_ are available for macOS (x86_64, arm64), 
Linux
+(x86_64, aarch64), and Windows (x86_64). Building from source on other 
platforms
+requires a C++14 or later compiler.
 
 
 Usage

Reply via email to