0.24.0
Backwards Compatibility Notes
- Support for Python 3.8 has been dropped because it reached end of life. Python 3.9 is the minimum supported Python version. The code should still be compatible with Python 3.8 and removing of version checks from
setup.pywill likely yield a working install. However, this is not officially supported.
Changes
- Bundled zstd library upgraded from 1.5.6 to 1.5.7. (#255)
- We now use and require cffi 1.17.0 or newer. Previously, the constraint was >=1.11.0 on Python <3.13.
- The
pyproject.tomlfile now defines a[project]section. - We now use GitHub's native ARM Linux runners to build wheels and run tests. Previously, Linux ARM wheels were built inside a QEMU virtualized environment and we didn't run tests on this platform.
- We now use GitHub's native ARM Windows runners to build wheels and run tests. Previously, Windows ARM wheels were cross compiled from an x86-64 runner and we never ran tests for the Windows ARM platform.
- We now
collections.abs.Bufferon Python 3.12+ instead oftyping.ByteString, astyping.ByteStringwas deprecated and later removed. (#238, #262) - PyO3 Rust crate upgraded from 0.21 to 0.22 (#257) and later to 0.24.
- Removed CI coverage for PyPy 3.9.
- Added CI coverage for PyPy 3.11.
- Anaconda Windows CI builds have been disabled because we're running into an apparent conda bug.
- Added CI coverage for Anaconda 3.12 and 3.13 on Linux and Windows x86-64 (but the Windows builds no-op due to above issue).
get_frame_parameters()now accepts an optionalformatargument defining the zstandard frame type. You can pass e.g.zstandard.FORMAT_ZSTD1_MAGICLESSto decode frames without header magic. (#217)- Initial Python 3.14 support. We build wheels and have CI test coverage.
Source Archive Publishing Error
During the release process of this version, we uploaded the source archive to PyPI after some wheels. PyPI rejected the source archive because of presence of a license-file entry while using metadata version 2.4. We manually generated the source distribution locally. The source distribution on PyPI therefore does not match what GitHub Actions produced.