Changelog¶
To be included in v0.5.2- (if present)¶
v0.5.2- [UNRELEASED DRAFT]¶
(2026-06-24)
Removals and backward incompatible breaking changes¶
Packaging updates and notes for downstreams¶
Contributor-facing changes¶
Dependabot has been restricted to the
requirementssubdirectory to avoid unintended updates outside dependency requirement files – by @bbhtt.Related issues and pull requests on GitHub: #207.
Added an
AGENTS.mdfile with contributor guidance for AI coding agents, adapted from theyarlequivalent – by @bdraco.Related issues and pull requests on GitHub: #231.
Migrated from standalone
blackandisortpre-commit hooks toruff formatand the ruffIlint rule, sharing a new[tool.ruff]config inpyproject.toml.ruff-checkruns with--fixso import-order fixes apply on commit, and the orphan[isort]block insetup.cfgwas removed – by @bdraco.Related issues and pull requests on GitHub: #232.
Switched the
cibuildwheelbuild frontend tobuild[uv]so thatuvprovisions every build and test virtual environment in the wheel matrix. Test-dependency installation in particular drops from a multi-secondpip installper ABI to a roughly sub-seconduvresolve – by @bdraco.Related issues and pull requests on GitHub: #234.
Dropped the
libffi-develinstall from thecibuildwheelLinuxbefore-allstep. It was added in PR #75 socfficould build from source during wheel testing; the current wheel-test chain no longer pulls incffi, so the header package is dead weight – by @bdraco.Related issues and pull requests on GitHub: #236.
The type preciseness coverage report generated by MyPy is now uploaded to Coveralls and will not be included in the Codecov views going forward – by @aiolibsbot.
Related issues and pull requests on GitHub: #239.
Switched CI/CD to
tox-dev/workflow’sreusable-tox.ymldriven by an in-treetox.ini. Thebuild,metadata-validationandlint(pre-commit,spellcheck-docs) jobs all run through the reusable workflow;mypycoverage uploads to Coveralls from apost-tox-jobhook – by @bdraco.Related issues and pull requests on GitHub: #243.
Overrode
CIBW_BUILD_FRONTEND=buildfor the QEMU-emulated odd-arch wheel matrix, since the pypa odd-arch container images do not shipuvpreinstalled and the project’spyproject.tomlsetsbuild-frontend = "build[uv]"– by @bdraco.Related issues and pull requests on GitHub: #246.
Allowed re-running the deploy job after a partial release failure: the
Make Releasestep now skips when the GitHub Release already exists, and the PyPI publish step usesskip-existingso dists that were already uploaded on a prior attempt do not break the retry – by @bdraco.Related issues and pull requests on GitHub: #247.
Switched the aarch64 and armv7l wheel builds to GitHub’s native ARM runners. The aarch64 wheels now build without QEMU emulation, and armv7l runs on aarch64 hosts so its 32-bit ARM execution is far cheaper than the previous aarch64-on-x86_64 path – by @bdraco.
Related issues and pull requests on GitHub: #248.
Added
UV_CONSTRAINTandUV_BUILD_CONSTRAINTalongsidePIP_CONSTRAINTandPIP_BUILD_CONSTRAINTin thecibuildwheelenvironment so therequirements/cython.txtpin is honored under thebuild[uv]frontend;uv pipignores thePIP_variables and reads only theUV_ones, while thePIP_variants are kept for the pip fallback path – by @bdraco.Related issues and pull requests on GitHub: #249.
Fixed coverage for testing benchmarks when codspeed is not installed – by @Vizonex.
Related issues and pull requests on GitHub: #251.
Released versions¶
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¶
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.
Packaging updates and notes for downstreams¶
Changed the Cython build dependency from
~= 3.1.0to>= 3.2.0, removing the upper version bound to avoid conflicts for downstream packagers – by @jameshilliard and @gundalow.The upstream Cython version is pinned to 3.2.4 in the CI/CD environment.
Related issues and pull requests on GitHub: #184, #188, #214.
Start building and shipping riscv64 wheels – by @justeph.
Related issues and pull requests on GitHub: #194.
The PEP 517 build backend now supports a new
build-inplaceconfig setting (andPROPCACHE_BUILD_INPLACEenvironment 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-mapcompiler option into theCFLAGSenvironment 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: #218.
0.4.1¶
(2025-10-08)
Bug fixes¶
Contributor-facing changes¶
Fixes the default value for the
osparameter inreusable-build-wheel.ymlto beubuntu-latestinstead ofubuntu.Related issues and pull requests on GitHub: #155.
0.4.0¶
(2025-10-04)
Features¶
Contributor-facing changes¶
Builds have been added for arm64 Windows wheels and the
reusable-build-wheel.ymlworkflow has been modified to allow for an OS value (windows-11-arm) which does not include the-latestpostfix – by @finnagin.Related issues and pull requests on GitHub: #133.
Added CI for CPython 3.14 – by @kumaraditya303.
Related issues and pull requests on GitHub: #140.
0.3.2¶
(2025-06-09)
Improved documentation¶
Fixed incorrect decorator usage in the
under_cached_property()example code – by @meanmail.Related issues and pull requests on GitHub: #109.
Packaging updates and notes for downstreams¶
Updated to use Cython 3.1 universally across the build path – by @lysnikolaou.
Related issues and pull requests on GitHub: #117.
Made Cython line tracing opt-in via the
with-cython-tracingbuild config setting – by @bdraco.Previously, line tracing was enabled by default in
pyproject.toml, which caused build issues for some users and made wheels nearly twice as slow.Now line tracing is only enabled when explicitly requested via
pip install . --config-setting=with-cython-tracing=trueor by setting thePROPCACHE_CYTHON_TRACINGenvironment variable.Related issues and pull requests on GitHub: #118.
0.3.1¶
(2025-03-25)
Bug fixes¶
Improved typing annotations, fixing some type errors under correct usage and improving typing robustness generally – by @Dreamsorcerer.
Related issues and pull requests on GitHub: #103.
0.3.0¶
(2025-02-20)
Features¶
Implemented support for the free-threaded build of CPython 3.13 – by @lysnikolaou.
Related issues and pull requests on GitHub: #84.
Packaging updates and notes for downstreams¶
Started building wheels for the free-threaded build of CPython 3.13 – by @lysnikolaou.
Related issues and pull requests on GitHub: #84.
Contributor-facing changes¶
GitHub Actions CI/CD is now configured to manage caching pip-ecosystem dependencies using re-actors/cache-python-deps – an action by @webknjaz that takes into account ABI stability and the exact version of Python runtime.
Related issues and pull requests on GitHub: #93.
0.2.1¶
(2024-12-01)
Bug fixes¶
Stopped implicitly allowing the use of Cython pre-release versions when building the distribution package – by @ajsanchezsanz and @markgreene74.
Related commits on GitHub: 64df0a6.
Fixed
wrappedandfuncnot being accessible in the Cython versions ofpropcache.api.cached_property()andpropcache.api.under_cached_property()decorators – by @bdraco.Related issues and pull requests on GitHub: #72.
Removals and backward incompatible breaking changes¶
Packaging updates and notes for downstreams¶
Stopped implicitly allowing the use of Cython pre-release versions when building the distribution package – by @ajsanchezsanz and @markgreene74.
Related commits on GitHub: 64df0a6.
0.2.0¶
(2024-10-07)
Bug fixes¶
Features¶
Improved typing for the
propcache.api.under_cached_property()decorator – by @bdraco.Related issues and pull requests on GitHub: #38.
Improved documentation¶
Added API documentation for the
propcache.api.cached_property()andpropcache.api.under_cached_property()decorators – by @bdraco.Related issues and pull requests on GitHub: #16.
Packaging updates and notes for downstreams¶
Moved
propcache.api.under_cached_property()andpropcache.api.cached_property()topropcache.api– by @bdraco.Both decorators remain importable from the top-level package, however importing from
propcache.apiis now the recommended way to use them.Converted project to use a src layout – by @bdraco.
0.1.0¶
(2024-10-03)
Features¶
0.0.0¶
(2024-10-02)
Initial release.