|
1 | | -# PRTree Improvements |
| 1 | +# Changelog |
2 | 2 |
|
3 | | -## Critical Fixes |
| 3 | +All notable changes to this project will be documented in this file. |
4 | 4 |
|
5 | | -### 1. Windows Crash Fixed |
6 | | -- **Issue**: Fatal crash with `std::mutex` (not copyable, caused deadlocks) |
7 | | -- **Fix**: Use `std::unique_ptr<std::recursive_mutex>` |
8 | | -- **Result**: Thread-safe, no crashes, pybind11 compatible |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
9 | 7 |
|
10 | | -### 2. Error Messages |
11 | | -- Improved with context while maintaining backward compatibility |
12 | | -- Example: `"Given index is not found. (Index: 999, tree size: 2)"` |
| 8 | +## [0.7.1] - 2025-11-08 |
13 | 9 |
|
14 | | -## Improvements Applied |
| 10 | +### Added |
| 11 | +- Modernized project structure for better OSS contribution experience (#52) |
| 12 | + - Added comprehensive CONTRIBUTING.md with development guidelines |
| 13 | + - Improved development tooling configuration |
| 14 | + - Enhanced documentation for contributors |
15 | 15 |
|
16 | | -- **C++20**: Migrated standard, added concepts for type safety |
17 | | -- **Exception Safety**: noexcept + RAII (no memory leaks) |
18 | | -- **Thread Safety**: Recursive mutex protects all mutable operations |
| 16 | +### Fixed |
| 17 | +- Fixed critical Windows crash with `std::mutex` (#51) |
| 18 | + - Changed to `std::unique_ptr<std::recursive_mutex>` for thread-safe, pybind11-compatible implementation |
| 19 | + - Resolved fatal crashes and deadlocks on Windows platform |
| 20 | +- Optimized CI workflows for better reliability and performance (#51) |
19 | 21 |
|
20 | | -## Test Results |
| 22 | +### Improved |
| 23 | +- Expanded test coverage with comprehensive test suite (#48) |
| 24 | + - Now includes 674 unit tests covering edge cases and various scenarios |
| 25 | + - Improved test organization and structure |
| 26 | +- Added `query_intersections()` method for efficient AABB pair detection (#47) |
| 27 | + - Enables finding all pairs of intersecting bounding boxes efficiently |
21 | 28 |
|
22 | | -✅ **674/674 unit tests pass** |
23 | | - |
24 | | -## Performance |
| 29 | +### Changed |
| 30 | +- Upgraded dependency versions in CI workflows (#50) |
| 31 | +- Migrated to C++20 standard with concepts for type safety |
| 32 | +- Enhanced error messages with context while maintaining backward compatibility |
| 33 | + - Example: `"Given index is not found. (Index: 999, tree size: 2)"` |
25 | 34 |
|
| 35 | +### Performance |
26 | 36 | - Construction: 9-11M ops/sec (single-threaded) |
27 | 37 | - Memory: 23 bytes/element |
28 | | -- Parallel scaling: Limited by algorithm (Amdahl's law), not implementation |
| 38 | +- All 674 unit tests pass |
| 39 | + |
| 40 | +## [0.7.0] - 2024-XX-XX |
29 | 41 |
|
30 | | -## Future Work |
| 42 | +### Added |
| 43 | +- Intersection bug fix |
| 44 | +- Python 3.13 support |
31 | 45 |
|
32 | | -- Parallel partitioning algorithm for better thread scaling (2-3x expected) |
| 46 | +### Improvements |
| 47 | +- Exception Safety: noexcept + RAII (no memory leaks) |
| 48 | +- Thread Safety: Recursive mutex protects all mutable operations |
0 commit comments