What's Changed
🚀 New Features
PHP 8.5 Support
- Add PHP 8.5 to CI/CD test matrix across all platforms (Ubuntu, Windows, macOS)
- Verified compatibility with PHP 8.5 for all bcmath polyfill functions
- Skip
gh20006test for PHP 8.5 (requiresBcMath\NumberOOP API not yet implemented in polyfill) - Update documentation to reflect PHP 8.5 support
Benchmarking Framework
- Add comprehensive performance benchmarking tool for comparing polyfill vs native bcmath
- Support multiple output formats: console, JSON, CSV, and Markdown
- GitHub Actions integration:
- PR Benchmarks: Comment
/benchmarkon PRs for quick performance tests (1,000 iterations) - Merge Benchmarks: Automatic full benchmark on PR merge (10,000 iterations)
- Manual Benchmarks: Trigger via GitHub Actions UI with customizable settings
- PR Benchmarks: Comment
- Test all bcmath operations with various number sizes and precision scales
🔧 Improvements
Code Quality
- Apply Rector code modernization rules:
- Use
in_array()with strict comparison - Adopt first-class callables syntax
- Enhance type safety throughout codebase
- Use
- Add explicit type declarations to all function parameters (
string,?int) - Remove redundant PHPDoc annotations
CI/CD Enhancements
- Fix PHPStan configuration for
expr.resultUnusederror handling - Improve workflow reliability with file-based approach for PR comments
- Fix backtick escaping in benchmark comment formatting
- Remove redundant condition checks in workflows
Documentation
- Add comprehensive performance benchmarking guide to README
- Document GitHub Actions benchmark workflows
- Update supported PHP versions list (8.1, 8.2, 8.3, 8.4, 8.5)
📊 Testing
All 57 CI checks passing across:
- 3 operating systems (Ubuntu, Windows, macOS)
- 5 PHP versions (8.1, 8.2, 8.3, 8.4, 8.5)
- With and without bcmath extension
- Docker PHPT tests using official PHP test suite
🔗 Links
- Full Changelog: 1.0.1...1.0.2
- Benchmark Documentation: See README.md "Performance" section
- PHP 8.5 CI Results: All tests passing ✅