|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## 2.0.0 : TBD |
4 | | - |
5 | | -- **Changed** Support for PHP 8.1+ only |
6 | | -- **Fixed** Added proper return type declarations to parser classes to fix deprecated messages in PHP 8.4 |
7 | | -- **Fixed** Patched vendor files to fix deprecation warnings about implicitly marking parameters as nullable: |
8 | | - - sebastian/cli-parser/src/Parser.php |
9 | | - - phpunit/phpunit/src/Util/Exporter.php |
10 | | - - sebastian/exporter/src/Exporter.php |
11 | | -- **Fixed** Updated tests to be compatible with PHPUnit 12.x: |
12 | | - - Added missing tests to BoundsTest class |
13 | | - - Updated test annotations to use PHPUnit 12 attributes |
14 | | - - Fixed data provider usage in SerializationHelperTest |
15 | | - - Implemented missing GpxSerializable interface methods in Bounds class |
16 | | - - Updated phpunit.xml configuration |
| 3 | +## 2.0.0-beta.1 : 2025-03-09 |
| 4 | + |
| 5 | +### Breaking Changes |
| 6 | + |
| 7 | +- **Changed**: `phpGPX` is now instance-based — `phpGPX::load()` (static) replaced by `(new phpGPX())->load()` |
| 8 | +- **Removed**: All static configuration properties (`$CALCULATE_STATS`, `$SORT_BY_TIMESTAMP`, `$PRETTY_PRINT`, etc.) — replaced by `Config` value object and analyzer constructors |
| 9 | +- **Removed**: `Summarizable` interface and `toArray()` — replaced by `JsonSerializable` returning GeoJSON (RFC 7946) |
| 10 | +- **Removed**: `GpxSerializable` interface — parsers handle XML serialization via Data Mapper pattern |
| 11 | +- **Removed**: `StatsCalculator` interface — replaced by Engine |
| 12 | +- **Removed**: `AbstractExtension` base class — replaced by `ExtensionInterface` |
| 13 | +- **Changed**: Point type constants (`Point::TRACKPOINT`, etc.) replaced by `PointType` enum |
| 14 | +- **Changed**: Extension access `$extensions->trackPointExtension` replaced by `$extensions->get(TrackPointExtension::class)` |
| 15 | + |
| 16 | +### Added |
| 17 | + |
| 18 | +- **Added**: Single-pass stats `Engine` with pluggable analyzers (`DistanceAnalyzer`, `ElevationAnalyzer`, `AltitudeAnalyzer`, `TimestampAnalyzer`, `BoundsAnalyzer`, `MovementAnalyzer`, `TrackPointExtensionAnalyzer`) |
| 19 | +- **Added**: `Engine::default()` factory with named parameters for common configuration |
| 20 | +- **Added**: `ExtensionRegistry` for registering custom extension parsers by namespace URI |
| 21 | +- **Added**: `ExtensionInterface` and `ExtensionParserInterface` for custom extensions |
| 22 | +- **Added**: `Config` value object for output configuration |
| 23 | +- **Added**: `AbstractParser` base class centralizing attribute mapping and XML handling |
| 24 | +- **Added**: mkdocs-material documentation site with PlantUML support |
| 25 | +- **Added**: Consolidated CI workflow (PHP 8.1–8.4 matrix) with Codecov integration |
| 26 | + |
| 27 | +### Changed |
| 28 | + |
| 29 | +- **Changed**: PHP 8.1+ required |
| 30 | +- **Changed**: `Extensions` model is now a keyed collection |
| 31 | +- **Changed**: Default Garmin TrackPointExtension v1 + v2 auto-registered via `ExtensionRegistry::default()` |
| 32 | +- **Changed**: All parsers refactored to extend `AbstractParser` |
| 33 | +- **Changed**: Strict typing on all model properties |
| 34 | +- **Changed**: Test suite restructured into `unit` and `integration` suites |
| 35 | +- **Changed**: PHPUnit 10+ with attributes (annotations removed) |
| 36 | +- **Changed**: Test fixtures standardized under `tests/Fixtures/` |
17 | 37 |
|
18 | 38 | ## 1.3.0 : 2023-07-19 |
19 | 39 |
|
|
0 commit comments