Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-propcache for 
openSUSE:Factory checked in at 2026-06-29 17:29:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-propcache (Old)
 and      /work/SRC/openSUSE:Factory/.python-propcache.new.11887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-propcache"

Mon Jun 29 17:29:27 2026 rev:8 rq:1362134 version:0.5.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-propcache/python-propcache.changes        
2026-04-13 23:18:04.394111118 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-propcache.new.11887/python-propcache.changes 
    2026-06-29 17:29:44.352754847 +0200
@@ -1,0 +2,36 @@
+Sun Jun 28 09:42:27 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.5.2:
+  * Added support for newer type hints and remove Optional and
+    Union from all annotations -- by :user:`Vizonex` Related
+    issues and pull requests on GitHub: :issue:`193`.
+  * Dropped support for Python 3.9 as it has reached end of life.
+    Related issues and pull requests on GitHub: :issue:`216`.
+  * Changed the Cython build dependency from ~= 3.1.0 to >=
+    3.2.0, removing the upper version bound to avoid conflicts
+    for downstream packagers -- by :user:`jameshilliard` and
+    :user:`gundalow`. The upstream Cython version is pinned to
+    3.2.4 in the CI/CD environment. Related issues and pull
+    requests on GitHub: :issue:`184`, :issue:`188`, :issue:`214`.
+  * Start building and shipping riscv64 wheels -- by
+    :user:`justeph`. Related issues and pull requests on GitHub:
+    :issue:`194`.
+  * The PEP 517 build backend now supports a new build-inplace
+    config setting (and PROPCACHE_BUILD_INPLACE environment
+    variable) for controlling whether to build the project in-
+    tree or in a temporary directory. It only affects wheels and
+    is set up to build in a temporary directory by default. It
+    does not affect editable wheel builds; they will keep being
+    built in-tree regardless. Here's an example of using this
+    setting:  $ python -m build --config-setting=build-
+    inplace=true  Additionally, when building wheels in an
+    automatically created temporary directory, the build backend
+    now normalizes the respective file system path to a
+    deterministic source checkout directory by injecting the
+    -ffile-prefix-map compiler option into the CFLAGS environment
+    variable, as suggested by known reproducible build practices.
+    The effect is that downstreams will get reproducible build
+    results. Related issues and pull requests on GitHub:
+    :issue:`218`.
+
+-------------------------------------------------------------------

Old:
----
  propcache-0.4.1.tar.gz

New:
----
  propcache-0.5.2.tar.gz

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

Other differences:
------------------
++++++ python-propcache.spec ++++++
--- /var/tmp/diff_new_pack.AKJt6J/_old  2026-06-29 17:29:45.724801480 +0200
+++ /var/tmp/diff_new_pack.AKJt6J/_new  2026-06-29 17:29:45.732801752 +0200
@@ -18,21 +18,21 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-propcache
-Version:        0.4.1
+Version:        0.5.2
 Release:        0
 Summary:        Accelerated property cache
 License:        Apache-2.0
 URL:            https://github.com/aio-libs/propcache
 Source:         
https://files.pythonhosted.org/packages/source/p/propcache/propcache-%{version}.tar.gz
 Patch0:         reproducible.patch
-BuildRequires:  %{python_module Cython >= 3.1.4}
+BuildRequires:  %{python_module Cython}
 BuildRequires:  %{python_module covdefaults}
 BuildRequires:  %{python_module expandvars}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module pytest >= 8.4.2}
-BuildRequires:  %{python_module pytest-cov}
+BuildRequires:  %{python_module pytest-cov >= 7.1.0}
 BuildRequires:  %{python_module pytest-xdist}
-BuildRequires:  %{python_module setuptools >= 47}
+BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros

++++++ propcache-0.4.1.tar.gz -> propcache-0.5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/CHANGES.rst 
new/propcache-0.5.2/CHANGES.rst
--- old/propcache-0.4.1/CHANGES.rst     2025-10-08 20:09:05.000000000 +0200
+++ new/propcache-0.5.2/CHANGES.rst     2026-05-08 22:03:25.000000000 +0200
@@ -14,6 +14,103 @@
 
 .. towncrier release notes start
 
+0.5.2
+=====
+
+*(2026-05-08)*
+
+
+No significant changes.
+
+
+----
+
+
+0.5.1
+=====
+
+*(2026-05-08)*
+
+
+No significant changes.
+
+
+----
+
+
+0.5.0
+=====
+
+*(2026-05-08)*
+
+
+Features
+--------
+
+- Added support for newer type hints and remove ``Optional`` and ``Union`` 
from all annotations
+  -- by :user:`Vizonex`
+
+  *Related issues and pull requests on GitHub:*
+  :issue:`193`.
+
+
+Removals and backward incompatible breaking changes
+---------------------------------------------------
+
+- Dropped support for Python 3.9 as it has reached end of life.
+
+  *Related issues and pull requests on GitHub:*
+  :issue:`216`.
+
+
+Packaging updates and notes for downstreams
+-------------------------------------------
+
+- Changed the Cython build dependency from ``~= 3.1.0`` to ``>= 3.2.0``,
+  removing the upper version bound to avoid conflicts for downstream packagers
+  -- by :user:`jameshilliard` and :user:`gundalow`.
+
+  The upstream Cython version is pinned to 3.2.4 in the CI/CD environment.
+
+  *Related issues and pull requests on GitHub:*
+  :issue:`184`, :issue:`188`, :issue:`214`.
+
+- Start building and shipping riscv64 wheels
+  -- by :user:`justeph`.
+
+  *Related issues and pull requests on GitHub:*
+  :issue:`194`.
+
+- The :pep:`517` build backend now supports a new ``build-inplace``
+  config setting (and ``PROPCACHE_BUILD_INPLACE`` environment variable)
+  for controlling whether to build the project in-tree or in a
+  temporary directory. It only affects wheels and is set up to build
+  in a temporary directory by default. It does not affect editable
+  wheel builds; they will keep being built in-tree regardless.
+
+  Here's an example of using this setting:
+
+  .. code-block:: console
+
+     $ python -m build --config-setting=build-inplace=true
+
+  Additionally, when building wheels in an automatically created
+  temporary directory, the build backend now normalizes the
+  respective file system path to a deterministic source checkout
+  directory by injecting the ``-ffile-prefix-map`` compiler option
+  into the ``CFLAGS`` environment variable, as suggested by known
+  `reproducible build practices
+  <https://reproducible-builds.org/docs/build-path/>`__.
+
+  The effect is that downstreams will get reproducible build results.
+
+  *Related issues and pull requests on GitHub:*
+  :issue:`218`.
+
+
+----
+
+
 0.4.1
 =====
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/PKG-INFO new/propcache-0.5.2/PKG-INFO
--- old/propcache-0.4.1/PKG-INFO        2025-10-08 20:09:12.999469300 +0200
+++ new/propcache-0.5.2/PKG-INFO        2026-05-08 22:03:32.322956600 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: propcache
-Version: 0.4.1
+Version: 0.5.2
 Summary: Accelerated property cache
 Home-page: https://github.com/aio-libs/propcache
 Author: Andrew Svetlov
@@ -24,7 +24,6 @@
 Classifier: Programming Language :: Cython
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
@@ -32,7 +31,7 @@
 Classifier: Programming Language :: Python :: 3.14
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Requires-Python: >=3.9
+Requires-Python: >=3.10
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 License-File: NOTICE
@@ -41,7 +40,7 @@
 propcache
 =========
 
-The module provides a fast implementation of cached properties for Python 3.9+.
+The module provides a fast implementation of cached properties for Python 
3.10+.
 
 .. image:: 
https://github.com/aio-libs/propcache/actions/workflows/ci-cd.yml/badge.svg
   :target: https://github.com/aio-libs/propcache/actions?query=workflow%3ACI
@@ -153,6 +152,103 @@
 
 .. towncrier release notes start
 
+0.5.2
+=====
+
+*(2026-05-08)*
+
+
+No significant changes.
+
+
+----
+
+
+0.5.1
+=====
+
+*(2026-05-08)*
+
+
+No significant changes.
+
+
+----
+
+
+0.5.0
+=====
+
+*(2026-05-08)*
+
+
+Features
+--------
+
+- Added support for newer type hints and remove ``Optional`` and ``Union`` 
from all annotations
+  -- by `@Vizonex <https://github.com/sponsors/Vizonex>`__
+
+  *Related issues and pull requests on GitHub:*
+  `#193 <https://github.com/aio-libs/propcache/issues/193>`__.
+
+
+Removals and backward incompatible breaking changes
+---------------------------------------------------
+
+- Dropped support for Python 3.9 as it has reached end of life.
+
+  *Related issues and pull requests on GitHub:*
+  `#216 <https://github.com/aio-libs/propcache/issues/216>`__.
+
+
+Packaging updates and notes for downstreams
+-------------------------------------------
+
+- Changed the Cython build dependency from ``~= 3.1.0`` to ``>= 3.2.0``,
+  removing the upper version bound to avoid conflicts for downstream packagers
+  -- by `@jameshilliard <https://github.com/sponsors/jameshilliard>`__ and 
`@gundalow <https://github.com/sponsors/gundalow>`__.
+
+  The upstream Cython version is pinned to 3.2.4 in the CI/CD environment.
+
+  *Related issues and pull requests on GitHub:*
+  `#184 <https://github.com/aio-libs/propcache/issues/184>`__, `#188 
<https://github.com/aio-libs/propcache/issues/188>`__, `#214 
<https://github.com/aio-libs/propcache/issues/214>`__.
+
+- Start building and shipping riscv64 wheels
+  -- by `@justeph <https://github.com/sponsors/justeph>`__.
+
+  *Related issues and pull requests on GitHub:*
+  `#194 <https://github.com/aio-libs/propcache/issues/194>`__.
+
+- The `PEP 517 <https://peps.python.org/pep-517>`__ build backend now supports 
a new ``build-inplace``
+  config setting (and ``PROPCACHE_BUILD_INPLACE`` environment variable)
+  for controlling whether to build the project in-tree or in a
+  temporary directory. It only affects wheels and is set up to build
+  in a temporary directory by default. It does not affect editable
+  wheel builds; they will keep being built in-tree regardless.
+
+  Here's an example of using this setting:
+
+  .. code-block:: console
+
+     $ python -m build --config-setting=build-inplace=true
+
+  Additionally, when building wheels in an automatically created
+  temporary directory, the build backend now normalizes the
+  respective file system path to a deterministic source checkout
+  directory by injecting the ``-ffile-prefix-map`` compiler option
+  into the ``CFLAGS`` environment variable, as suggested by known
+  `reproducible build practices
+  <https://reproducible-builds.org/docs/build-path/>`__.
+
+  The effect is that downstreams will get reproducible build results.
+
+  *Related issues and pull requests on GitHub:*
+  `#218 <https://github.com/aio-libs/propcache/issues/218>`__.
+
+
+----
+
+
 0.4.1
 =====
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/README.rst 
new/propcache-0.5.2/README.rst
--- old/propcache-0.4.1/README.rst      2025-10-08 20:09:05.000000000 +0200
+++ new/propcache-0.5.2/README.rst      2026-05-08 22:03:25.000000000 +0200
@@ -1,7 +1,7 @@
 propcache
 =========
 
-The module provides a fast implementation of cached properties for Python 3.9+.
+The module provides a fast implementation of cached properties for Python 
3.10+.
 
 .. image:: 
https://github.com/aio-libs/propcache/actions/workflows/ci-cd.yml/badge.svg
   :target: https://github.com/aio-libs/propcache/actions?query=workflow%3ACI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/docs/spelling_wordlist.txt 
new/propcache-0.5.2/docs/spelling_wordlist.txt
--- old/propcache-0.4.1/docs/spelling_wordlist.txt      2025-10-08 
20:09:05.000000000 +0200
+++ new/propcache-0.5.2/docs/spelling_wordlist.txt      2026-05-08 
22:03:25.000000000 +0200
@@ -41,6 +41,8 @@
 reencoding
 requote
 requoting
+riscv
+riscv64
 runtimes
 sdist
 src
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/packaging/pep517_backend/_backend.py 
new/propcache-0.5.2/packaging/pep517_backend/_backend.py
--- old/propcache-0.4.1/packaging/pep517_backend/_backend.py    2025-10-08 
20:09:05.000000000 +0200
+++ new/propcache-0.5.2/packaging/pep517_backend/_backend.py    2026-05-08 
22:03:25.000000000 +0200
@@ -77,6 +77,12 @@
 PURE_PYTHON_CONFIG_SETTING = 'pure-python'
 """Config setting name toggle that is used to opt out of making C-exts."""
 
+BUILD_INPLACE_CONFIG_SETTING = 'build-inplace'
+"""Config setting name toggle for building C-exts in-place."""
+
+BUILD_INPLACE_ENV_VAR = 'PROPCACHE_BUILD_INPLACE'
+"""Environment variable name toggle for building C-exts in-place."""
+
 PURE_PYTHON_ENV_VAR = 'PROPCACHE_NO_EXTENSIONS'
 """Environment variable name toggle used to opt out of making C-exts."""
 
@@ -135,6 +141,19 @@
     )
 
 
+def _build_inplace(
+        config_settings: _ConfigDict | None = None,
+        *,
+        default: bool = False,
+) -> bool:
+    return _get_setting_value(
+        config_settings,
+        BUILD_INPLACE_CONFIG_SETTING,
+        BUILD_INPLACE_ENV_VAR,
+        default=default,
+    )
+
+
 @contextmanager
 def patched_distutils_cmd_install() -> Iterator[None]:
     """Make `install_lib` of `install` cmd always use `platlib`.
@@ -217,7 +236,7 @@
 
 
 @contextmanager
-def _in_temporary_directory(src_dir: Path) -> t.Iterator[None]:
+def _in_temporary_directory(src_dir: Path) -> t.Iterator[Path]:
     with TemporaryDirectory(prefix='.tmp-propcache-pep517-') as tmp_dir:
         tmp_dir_path = Path(tmp_dir)
         root_tmp_dir_path = tmp_dir_path.parent
@@ -232,7 +251,7 @@
                 symlinks=True,
             )
             os.chdir(tmp_src_dir)
-            yield
+            yield tmp_src_dir
 
 
 @contextmanager
@@ -275,6 +294,10 @@
 
     print("**********************", file=_standard_error_stream)
     print("* Accelerated build *", file=_standard_error_stream)
+    print(
+        f'* Build location: {"in-tree" if build_inplace else "tmp dir"} *',
+        file=_standard_error_stream,
+    )
     print("**********************", file=_standard_error_stream)
     if not IS_CPYTHON:
         _warn_that(
@@ -285,15 +308,21 @@
             stacklevel=999,
         )
 
+    original_src_dir = Path.cwd().resolve()
     build_dir_ctx = (
         nullcontext() if build_inplace
-        else _in_temporary_directory(src_dir=Path.cwd().resolve())
+        else _in_temporary_directory(src_dir=original_src_dir)
     )
-    with build_dir_ctx:
+    with build_dir_ctx as tmp_build_dir:
         config = _get_local_cython_config()
 
         cythonize_args = _make_cythonize_cli_args_from_config(config, 
cython_line_tracing_requested)
-        with _patched_cython_env(config['env'], cython_line_tracing_requested):
+        with _patched_cython_env(
+                config['env'],
+                cython_line_tracing_requested,
+                original_source_directory=original_src_dir,
+                temporary_build_directory=tmp_build_dir,
+        ):
             _cythonize_cli_cmd(cythonize_args)  # type: ignore[no-untyped-call]
         with patched_distutils_cmd_install():
             with patched_dist_has_ext_modules():
@@ -317,7 +346,7 @@
     """
     with maybe_prebuild_c_extensions(
             line_trace_cython_when_unset=False,
-            build_inplace=False,
+            build_inplace=_build_inplace(config_settings, default=False),
             config_settings=config_settings,
     ):
         return _setuptools_build_wheel(
@@ -342,9 +371,17 @@
     :param metadata_directory: :file:`.dist-info` directory path.
 
     """
+    mandatory_build_inplace = True
+    if not _build_inplace(config_settings, default=mandatory_build_inplace):
+        _warn_that(
+            'Editable builds require C-extensions to be produced in-tree',
+            RuntimeWarning,
+            stacklevel=999,
+        )
+
     with maybe_prebuild_c_extensions(
             line_trace_cython_when_unset=True,
-            build_inplace=True,
+            build_inplace=mandatory_build_inplace,
             config_settings=config_settings,
     ):
         return _setuptools_build_editable(
@@ -376,7 +413,7 @@
     if is_pure_python_build:
         c_ext_build_deps = []
     else:
-        c_ext_build_deps = ['Cython ~= 3.1.0']
+        c_ext_build_deps = ['Cython >= 3.2.0']
 
     return _setuptools_get_requires_for_build_wheel(
         config_settings=config_settings,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/propcache-0.4.1/packaging/pep517_backend/_cython_configuration.py 
new/propcache-0.5.2/packaging/pep517_backend/_cython_configuration.py
--- old/propcache-0.4.1/packaging/pep517_backend/_cython_configuration.py       
2025-10-08 20:09:05.000000000 +0200
+++ new/propcache-0.5.2/packaging/pep517_backend/_cython_configuration.py       
2026-05-08 22:03:25.000000000 +0200
@@ -3,6 +3,7 @@
 from __future__ import annotations
 
 import os
+import sys
 from collections.abc import Iterator
 from contextlib import contextmanager
 from pathlib import Path
@@ -103,7 +104,13 @@
 
 
 @contextmanager
-def patched_env(env: dict[str, str], cython_line_tracing_requested: bool) -> 
Iterator[None]:
+def patched_env(
+    env: dict[str, str],
+    cython_line_tracing_requested: bool,
+    *,
+    original_source_directory: Path | None = None,
+    temporary_build_directory: Path | None = None,
+) -> Iterator[None]:
     """Temporary set given env vars.
 
     :param env: tmp env vars to set
@@ -115,11 +122,23 @@
     expanded_env = {name: expandvars(var_val) for name, var_val in 
env.items()}  # type: ignore[no-untyped-call]
     os.environ.update(expanded_env)
 
+    extra_cflags: list[str] = []
     if cython_line_tracing_requested:
-        os.environ['CFLAGS'] = ' '.join((
-            os.getenv('CFLAGS', ''),
-            '-DCYTHON_TRACE_NOGIL=1',  # Implies CYTHON_TRACE=1
-        )).strip()
+        extra_cflags.append('-DCYTHON_TRACE_NOGIL=1')  # Implies CYTHON_TRACE=1
+    # When building in a temporary directory, rewrite the random tmp dir
+    # path back to the original source directory so the compiled artifacts
+    # are reproducible. `-ffile-prefix-map` is a GCC/Clang flag and is not
+    # understood by MSVC, so skip it on Windows.
+    # Ref: https://github.com/aio-libs/propcache/issues/68
+    if temporary_build_directory is not None and sys.platform != 'win32':
+        assert original_source_directory is not None
+        extra_cflags.append(
+            
f'-ffile-prefix-map={temporary_build_directory!s}={original_source_directory!s}',
+        )
+    if extra_cflags:
+        os.environ['CFLAGS'] = ' '.join(
+            (os.getenv('CFLAGS', ''), *extra_cflags),
+        ).strip()
     try:
         yield
     finally:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/propcache-0.4.1/packaging/pep517_backend/_transformers.py 
new/propcache-0.5.2/packaging/pep517_backend/_transformers.py
--- old/propcache-0.4.1/packaging/pep517_backend/_transformers.py       
2025-10-08 20:09:05.000000000 +0200
+++ new/propcache-0.5.2/packaging/pep517_backend/_transformers.py       
2026-05-08 22:03:25.000000000 +0200
@@ -3,10 +3,9 @@
 from collections.abc import Iterable, Iterator, Mapping
 from itertools import chain
 from re import sub as _substitute_with_regexp
-from typing import Union
 
 
-def _emit_opt_pairs(opt_pair: tuple[str, Union[dict[str, str], str]]) -> 
Iterator[str]:
+def _emit_opt_pairs(opt_pair: tuple[str, dict[str, str] | str]) -> 
Iterator[str]:
     flag, flag_value = opt_pair
     flag_opt = f"--{flag!s}"
     if isinstance(flag_value, dict):
@@ -18,7 +17,7 @@
 
 
 def get_cli_kwargs_from_config(
-    kwargs_map: dict[str, Union[str, dict[str, str]]],
+    kwargs_map: dict[str, str | dict[str, str]],
 ) -> list[str]:
     """Make a list of options with values from config."""
     return list(chain.from_iterable(map(_emit_opt_pairs, kwargs_map.items())))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/pyproject.toml 
new/propcache-0.5.2/pyproject.toml
--- old/propcache-0.4.1/pyproject.toml  2025-10-08 20:09:05.000000000 +0200
+++ new/propcache-0.5.2/pyproject.toml  2026-05-08 22:03:25.000000000 +0200
@@ -4,7 +4,7 @@
   # NOTE: provisioning of the in-tree build backend located under
   # NOTE: `packaging/pep517_backend/`.
   "expandvars",
-  "setuptools >= 47",  # Minimum required for `version = attr:`
+  "setuptools >= 82.0.1",  # Minimum required for `version = attr:`
   "tomli; python_version < '3.11'",
 ]
 backend-path = ["packaging"]  # requires `pip >= 20` or `pep517 >= 0.6.0`
@@ -75,6 +75,10 @@
 ]
 test-requires = "-r requirements/test.txt"
 test-command = "pytest -v --no-cov {project}/tests"
+# Free-threaded CPython under armv7l QEMU emulation crashes with SIGBUS when
+# importing the C extension; the wheel runs fine on real armv7l hardware, so
+# build and ship it but skip the emulated post-build test.
+test-skip = "*t-musllinux_armv7l"
 # don't build PyPy wheels, install from source instead
 skip = "pp*"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/requirements/codspeed.txt 
new/propcache-0.5.2/requirements/codspeed.txt
--- old/propcache-0.4.1/requirements/codspeed.txt       2025-10-08 
20:09:05.000000000 +0200
+++ new/propcache-0.5.2/requirements/codspeed.txt       2026-05-08 
22:03:25.000000000 +0200
@@ -1,3 +1,3 @@
 -r test.txt
 cffi<2.0.0;python_version<"3.14"
-pytest-codspeed==4.1.1
+pytest-codspeed==4.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/requirements/cython.txt 
new/propcache-0.5.2/requirements/cython.txt
--- old/propcache-0.4.1/requirements/cython.txt 2025-10-08 20:09:05.000000000 
+0200
+++ new/propcache-0.5.2/requirements/cython.txt 2026-05-08 22:03:25.000000000 
+0200
@@ -1 +1 @@
-cython==3.1.4
+cython==3.2.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/requirements/doc-spelling.txt 
new/propcache-0.5.2/requirements/doc-spelling.txt
--- old/propcache-0.4.1/requirements/doc-spelling.txt   2025-10-08 
20:09:05.000000000 +0200
+++ new/propcache-0.5.2/requirements/doc-spelling.txt   2026-05-08 
22:03:25.000000000 +0200
@@ -1,2 +1,2 @@
 -r doc.txt
-sphinxcontrib-spelling==8.0.1; platform_system!="Windows"  # We only use it in 
Azure CI
+sphinxcontrib-spelling==8.0.2; platform_system!="Windows"  # We only use it in 
Azure CI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/requirements/doc.txt 
new/propcache-0.5.2/requirements/doc.txt
--- old/propcache-0.4.1/requirements/doc.txt    2025-10-08 20:09:05.000000000 
+0200
+++ new/propcache-0.5.2/requirements/doc.txt    2026-05-08 22:03:25.000000000 
+0200
@@ -1,4 +1,4 @@
 -r towncrier.txt
-myst-parser >= 0.10.0
+myst-parser >= 3.0.1
 sphinx==8.2.3
 sphinxcontrib-towncrier
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/requirements/lint.txt 
new/propcache-0.5.2/requirements/lint.txt
--- old/propcache-0.4.1/requirements/lint.txt   2025-10-08 20:09:05.000000000 
+0200
+++ new/propcache-0.5.2/requirements/lint.txt   2026-05-08 22:03:25.000000000 
+0200
@@ -1 +1 @@
-pre-commit==4.3.0
+pre-commit==4.5.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/requirements/test.txt 
new/propcache-0.5.2/requirements/test.txt
--- old/propcache-0.4.1/requirements/test.txt   2025-10-08 20:09:05.000000000 
+0200
+++ new/propcache-0.5.2/requirements/test.txt   2026-05-08 22:03:25.000000000 
+0200
@@ -1,5 +1,5 @@
 -r cython.txt
 covdefaults
 pytest==8.4.2
-pytest-cov>=2.3.1
+pytest-cov>=7.1.0
 pytest-xdist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/setup.cfg 
new/propcache-0.5.2/setup.cfg
--- old/propcache-0.4.1/setup.cfg       2025-10-08 20:09:13.000469200 +0200
+++ new/propcache-0.5.2/setup.cfg       2026-05-08 22:03:32.324733000 +0200
@@ -36,7 +36,6 @@
        Programming Language :: Cython
        Programming Language :: Python
        Programming Language :: Python :: 3
-       Programming Language :: Python :: 3.9
        Programming Language :: Python :: 3.10
        Programming Language :: Python :: 3.11
        Programming Language :: Python :: 3.12
@@ -51,7 +50,7 @@
        propcache
 
 [options]
-python_requires = >=3.9
+python_requires = >=3.10
 package_dir = 
        =src
 packages = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/src/propcache/__init__.py 
new/propcache-0.5.2/src/propcache/__init__.py
--- old/propcache-0.4.1/src/propcache/__init__.py       2025-10-08 
20:09:05.000000000 +0200
+++ new/propcache-0.5.2/src/propcache/__init__.py       2026-05-08 
22:03:25.000000000 +0200
@@ -4,7 +4,7 @@
 
 _PUBLIC_API = ("cached_property", "under_cached_property")
 
-__version__ = "0.4.1"
+__version__ = "0.5.2"
 __all__ = ()
 
 # Imports have moved to `propcache.api` in 0.2.0+.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/src/propcache/_helpers_py.py 
new/propcache-0.5.2/src/propcache/_helpers_py.py
--- old/propcache-0.4.1/src/propcache/_helpers_py.py    2025-10-08 
20:09:05.000000000 +0200
+++ new/propcache-0.5.2/src/propcache/_helpers_py.py    2026-05-08 
22:03:25.000000000 +0200
@@ -1,9 +1,11 @@
 """Various helper functions."""
 
+from __future__ import annotations
+
 import sys
-from collections.abc import Mapping
+from collections.abc import Callable, Mapping
 from functools import cached_property
-from typing import Any, Callable, Generic, Optional, Protocol, TypeVar, Union, 
overload
+from typing import Any, Generic, Protocol, TypeVar, overload
 
 __all__ = ("under_cached_property", "cached_property")
 
@@ -39,16 +41,16 @@
         self.name = wrapped.__name__
 
     @overload
-    def __get__(self, inst: None, owner: Optional[type[object]] = None) -> 
Self: ...
+    def __get__(self, inst: None, owner: type[object] | None = None) -> Self: 
...
 
     @overload
     def __get__(
-        self, inst: _CacheImpl[Any], owner: Optional[type[object]] = None
+        self, inst: _CacheImpl[Any], owner: type[object] | None = None
     ) -> _T: ...
 
     def __get__(
-        self, inst: Optional[_CacheImpl[Any]], owner: Optional[type[object]] = 
None
-    ) -> Union[_T, Self]:
+        self, inst: _CacheImpl[Any] | None, owner: type[object] | None = None
+    ) -> _T | Self:
         if inst is None:
             return self
         try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/propcache-0.4.1/src/propcache.egg-info/PKG-INFO 
new/propcache-0.5.2/src/propcache.egg-info/PKG-INFO
--- old/propcache-0.4.1/src/propcache.egg-info/PKG-INFO 2025-10-08 
20:09:12.000000000 +0200
+++ new/propcache-0.5.2/src/propcache.egg-info/PKG-INFO 2026-05-08 
22:03:32.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: propcache
-Version: 0.4.1
+Version: 0.5.2
 Summary: Accelerated property cache
 Home-page: https://github.com/aio-libs/propcache
 Author: Andrew Svetlov
@@ -24,7 +24,6 @@
 Classifier: Programming Language :: Cython
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
@@ -32,7 +31,7 @@
 Classifier: Programming Language :: Python :: 3.14
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Requires-Python: >=3.9
+Requires-Python: >=3.10
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 License-File: NOTICE
@@ -41,7 +40,7 @@
 propcache
 =========
 
-The module provides a fast implementation of cached properties for Python 3.9+.
+The module provides a fast implementation of cached properties for Python 
3.10+.
 
 .. image:: 
https://github.com/aio-libs/propcache/actions/workflows/ci-cd.yml/badge.svg
   :target: https://github.com/aio-libs/propcache/actions?query=workflow%3ACI
@@ -153,6 +152,103 @@
 
 .. towncrier release notes start
 
+0.5.2
+=====
+
+*(2026-05-08)*
+
+
+No significant changes.
+
+
+----
+
+
+0.5.1
+=====
+
+*(2026-05-08)*
+
+
+No significant changes.
+
+
+----
+
+
+0.5.0
+=====
+
+*(2026-05-08)*
+
+
+Features
+--------
+
+- Added support for newer type hints and remove ``Optional`` and ``Union`` 
from all annotations
+  -- by `@Vizonex <https://github.com/sponsors/Vizonex>`__
+
+  *Related issues and pull requests on GitHub:*
+  `#193 <https://github.com/aio-libs/propcache/issues/193>`__.
+
+
+Removals and backward incompatible breaking changes
+---------------------------------------------------
+
+- Dropped support for Python 3.9 as it has reached end of life.
+
+  *Related issues and pull requests on GitHub:*
+  `#216 <https://github.com/aio-libs/propcache/issues/216>`__.
+
+
+Packaging updates and notes for downstreams
+-------------------------------------------
+
+- Changed the Cython build dependency from ``~= 3.1.0`` to ``>= 3.2.0``,
+  removing the upper version bound to avoid conflicts for downstream packagers
+  -- by `@jameshilliard <https://github.com/sponsors/jameshilliard>`__ and 
`@gundalow <https://github.com/sponsors/gundalow>`__.
+
+  The upstream Cython version is pinned to 3.2.4 in the CI/CD environment.
+
+  *Related issues and pull requests on GitHub:*
+  `#184 <https://github.com/aio-libs/propcache/issues/184>`__, `#188 
<https://github.com/aio-libs/propcache/issues/188>`__, `#214 
<https://github.com/aio-libs/propcache/issues/214>`__.
+
+- Start building and shipping riscv64 wheels
+  -- by `@justeph <https://github.com/sponsors/justeph>`__.
+
+  *Related issues and pull requests on GitHub:*
+  `#194 <https://github.com/aio-libs/propcache/issues/194>`__.
+
+- The `PEP 517 <https://peps.python.org/pep-517>`__ build backend now supports 
a new ``build-inplace``
+  config setting (and ``PROPCACHE_BUILD_INPLACE`` environment variable)
+  for controlling whether to build the project in-tree or in a
+  temporary directory. It only affects wheels and is set up to build
+  in a temporary directory by default. It does not affect editable
+  wheel builds; they will keep being built in-tree regardless.
+
+  Here's an example of using this setting:
+
+  .. code-block:: console
+
+     $ python -m build --config-setting=build-inplace=true
+
+  Additionally, when building wheels in an automatically created
+  temporary directory, the build backend now normalizes the
+  respective file system path to a deterministic source checkout
+  directory by injecting the ``-ffile-prefix-map`` compiler option
+  into the ``CFLAGS`` environment variable, as suggested by known
+  `reproducible build practices
+  <https://reproducible-builds.org/docs/build-path/>`__.
+
+  The effect is that downstreams will get reproducible build results.
+
+  *Related issues and pull requests on GitHub:*
+  `#218 <https://github.com/aio-libs/propcache/issues/218>`__.
+
+
+----
+
+
 0.4.1
 =====
 

++++++ reproducible.patch ++++++
--- /var/tmp/diff_new_pack.AKJt6J/_old  2026-06-29 17:29:45.908807734 +0200
+++ /var/tmp/diff_new_pack.AKJt6J/_new  2026-06-29 17:29:45.916808006 +0200
@@ -2,11 +2,11 @@
 index 7245be9..ad4dd85 100644
 --- a/packaging/pep517_backend/_backend.py
 +++ b/packaging/pep517_backend/_backend.py
-@@ -321,7 +321,7 @@ def build_wheel(
+@@ -346,7 +346,7 @@ def build_wheel(
      """
      with maybe_prebuild_c_extensions(
              line_trace_cython_when_unset=False,
--            build_inplace=False,
+-            build_inplace=_build_inplace(config_settings, default=False),
 +            build_inplace=True,
              config_settings=config_settings,
      ):

Reply via email to