All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- BLD: allow selecting arbitrary (supported) Python target ABIs at build time
- DEP: drop support for Python 3.10, require 3.11 or newer
- DEP: upgrade MSRV to 1.83
- DEP: bump rust-numpy and pyo3 to 0.29
- WHL: drop win32 support (stop distributing wheels)
- BLD: warning free builds in any configuration
- BUG: fix bugs in
time_to_next_pixelinternal computation with no-default build configurations. These bugs were introduced in version 0.5.2 - WHL: re-enable fma on manylinux x86_64 wheels, and disable branchless execution, bringing this build's configuration in line with the equivalent macos target
- WHL: build macos-x86_64 wheels natively again, and ensure they are tested
- WHL: add support for Windows-arm64 targets
- DOC: document stability guarantees and free-threading support
- ENH: enable FMA for x86_64 targets on macOS and Windows (performance wasn't measured on Windows)
- BLD: add opt-out build options for FMA and branchless optimizations
- WHL: disable branchless execution for macOS x86_64 wheels
- BLD: fix a build-time error when building from source with maturin >=1.9 this error prevented packaging versions 0.4.0 and 0.5.0 to conda-forge
- DEP: drop support for Python 3.9, require 3.10 or newer
- FEAT: support periodic boundaries and fine-grained boundary conditions selection
- DOC: consistently indicate argument types (positional-only and keyword-only)
in
rlic.convolve's docstring - DOC: fix invalid example code and re-generate output image
- DOC: document memory usage
- PERF: turn rust panics into fatal errors, improving performance and reducing binary size by 10% each
- PERF: leverage Fused Multiply-Add (FMA) instructions on supporting architectures (including Apple Silicon and AMD processors). Except about 2 to 4% gain
- PERF: avoid back-and-forth conversions between usize and i64 representations for image coordinates. Expect about 2% gain
- DEP: drop support for NumPy 1.21.x, require 1.22.0 or newer
- WHL: upgrade
manylinuximage from2014to2_28, following NumPy
- BLD: declare compatibility with free-threaded CPython
- DOC: fix an incomplete sentence in
rlic.convolve's docstring - TYP: add array shape information to type hints
- BLD: bump MSRV (1.64.0 -> 1.65.0)
- ENH: report all exceptions instead of just the first one when validating inputs,
on all supported Python versions (using the backport package
exceptiongroupon 3.9 and 3.10)
- BUG: fix a typo in a user visible error message
- ENH: report all exceptions instead of just the first one when validating inputs, on Python 3.11 and newer
- BUG: always run all validators before returning
- DOC: prefer using a convex kernel shape in examples
- ENH: terminate streamline integration when a NaN vector component is encountered
- ENH: explicitly forbid non-finite values in
kernel
- DOC: add example scripts and visualizations to
README.md - ENH: allow negative values in kernels. It's still an unusual use case, but there is no strong argument for forbidding it.
- ENH: Previously, only kernels with at least 3 elements and at most as long as the shortest dimension of the image were allowed. These restrictions are now lifted.
- DOC: improve
rlic.convolve's docstring. Add detail to the description of thetextureandkernelarguments
- PERF: disable build parallelism to the benefit of runtime performance (expect about 5 to 10% gain)
- PERF: avoid conditional branching in pixel traversal time evaluation (expect about 30 to 40% gain)
- TST: test for regressions against reference implementation
- BUG: fix a defect in polarization mode
- BUG: fix incorrect implementation of infinite-time edge cases
- TST: improve Rust and Python test coverage
- TST: test against future versions of direct rust dependencies
- BLD/TST: fix incorrect Minimal Supported Rust Version (MSRV) (bumped from 1.63 to 1.64) and check it in CI
- WHL: build and publish
abi3wheels for all platforms + architecture combos supported by NumPy as of 2.2.3 - API: rename the first argument to
rlic.convolvefromimagetotexture, and make it positional-only.
- ENH: add support for single precision (
float32) input data
- DEP: add support for numpy 1.x
- REL: ensure source distribution is testable and enable auto-publishing
This is the first release. It's missing wheels and documentation. Only source distribution is published on PyPI.