PFAPACK v1.0.2
(v1.0.0 wasn't properly tested and resulted in broken MacOS and Windows builds, this is fixed in version 1.0.1)
(v1.0.1's version string wasn't properly set, v1.0.2 fixes that)
This is a major release that modernizes the build system and package structure while maintaining the same functionality. The main changes are focused on improving the build process, testing, and maintainability.
Major Changes
- Switched to meson-python for building the C and Fortran code
- Added support for Python 3.9-3.13
- Included the original source code from Michael Wimmer's website for better transparency and reproducibility
- Modernized the package structure to use pyproject.toml instead of setup.py
Build System Improvements
- Added proper wheel building using
pypa/cibuildwheel
- Improved OpenBLAS detection and linking
- Added support for different BLAS implementations:
- OpenBLAS on Linux
- Accelerate framework on macOS
- OpenBLAS on Windows (via MSYS2)
CI/CD Improvements
- Added comprehensive GitHub Actions workflows for:
- Building wheels for all supported platforms
- Running tests across multiple Python versions
- Code quality checks using pre-commit
- Added Mend Renovate bot for automated dependency updates
- Improved test coverage reporting
Development Tools
- Switched to Ruff for linting and formatting
- Added pre-commit hooks for code quality
- Improved development documentation
Requirements
- Python >=3.9
- C and Fortran compilers
- BLAS/LAPACK implementation
Breaking Changes
- Dropped support for Python 3.8 and below
- Removed support for 32-bit builds
The package is now available on PyPI and can be installed with:
pip install pfapack