# ChangeLog

All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.

## [14.0.0] - 2026-04-03

### Added

* `SebastianBergmann\CodeCoverage\Serialization\Serializer` class for serializing `SebastianBergmann\CodeCoverage\CodeCoverage` objects in a versioned format to a file
* `SebastianBergmann\CodeCoverage\Serialization\Unserializer` class for unserializing `SebastianBergmann\CodeCoverage\CodeCoverage` objects from a file creating using `SebastianBergmann\CodeCoverage\Serialization\Serializer`
* `SebastianBergmann\CodeCoverage\Report\Facade` class for generating reports from both `SebastianBergmann\CodeCoverage\CodeCoverage` objects (using `Facade::fromObject()`) as well as from data unserialized with `SebastianBergmann\CodeCoverage\Serialization\Unserializer::unserialize()` (using `Facade::fromSerializedData()`)
* [#925](https://github.com/sebastianbergmann/php-code-coverage/issues/925): Serialized code coverage data (generated using PHPUnit's `--coverage-php`, for example) should use relative paths

### Changed

* [#1142](https://github.com/sebastianbergmann/php-code-coverage/pull/1142): The HTML report now uses a more colorblind-friendly blue/amber/orange palette
* The HTML report's dashboard now uses PHP-rendered SVG bubble charts (coverage vs. complexity vs. executable lines) and CRAP index tables instead of client-side Billboard.js charts
* The report generation classes are now internal; the new `SebastianBergmann\CodeCoverage\Report\Facade` class must be used for report generation
* The format of the file written by `SebastianBergmann\CodeCoverage\Serialization\Serializer` is incompatible with the format of the file that was written by `SebastianBergmann\CodeCoverage\Report\PHP` in the past
* The `<build>` element and its children of the XML report generated by `SebastianBergmann\CodeCoverage\Report\Xml\Facade` require the optional arguments to be passed to the `process()` method
* The `TestSize` and `TestStatus` value objects are now enumerations

### Fixed

* Configuring colors for the HTML report no longer worked after support for dark mode was added

### Removed

* The `SebastianBergmann\CodeCoverage\Report\PHP` class was removed, use the new `SebastianBergmann\CodeCoverage\Serializer` class instead

[14.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/13.0.2...14.0.0
