# Changelog

## Score

- CAI 53 → 73 (+20.2)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

## Lenses

- Code Health 85 → 83 (-1.3)
- Architecture 94 → 86 (-8.1)
- Maturity 59 → 65 (+6.1)
- Readiness 32 → 75 (+42.6)
- Security 79 → 88 (+9.1)

## Resolved (30)

- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (11 lines × 2) (src/Runner/CodeCoverage.php)
- Duplicated block (11 lines × 2) (src/TextUI/Configuration/Xml/Loader.php)
- Duplicated block (13 lines × 2) (src/Framework/TestRunner/ChildProcessResultProcessor.php)
- Duplicated block (13 lines × 2) (src/Logging/TestDox/NamePrettifier.php)
- Duplicated block (13 lines × 2) (src/TextUI/Configuration/Cli/Builder.php)
- Duplicated block (13 lines × 2) (src/TextUI/Configuration/Xml/Loader.php)
- Duplicated block (14 lines × 2) (src/TextUI/Configuration/Cli/Builder.php)
- Duplicated block (15 lines × 2) (src/TextUI/Configuration/Merger.php)
- Duplicated block (16 lines × 2) (src/TextUI/Configuration/Cli/Builder.php)
- Duplicated block (17 lines × 2) (src/TextUI/Configuration/Cli/Builder.php)
- Duplicated block (18 lines × 2) (src/Metadata/Api/DataProvider.php)
- Duplicated block (20 lines × 2) (src/TextUI/Configuration/Cli/Builder.php)
- Duplicated block (21 lines × 7) (src/TextUI/Configuration/Cli/Builder.php)
- Duplicated block (31 lines × 3) (src/TextUI/Configuration/Merger.php)
- Duplicated block (31 lines × 4) (src/TextUI/Configuration/Cli/Builder.php)
- Duplicated block (6 lines × 2) (src/TextUI/Configuration/Xml/Loader.php)
- Duplicated block (6 lines × 2) (src/TextUI/Output/Facade.php)
- Duplicated block (7 lines × 2) (src/Event/Value/TestSuite/TestSuiteBuilder.php)
- …and 10 more

## New (636)

- Application.configureDeprecationTriggers (cognitive 17) (src/TextUI/Application.php)
- Application.executeCommandsThatOnlyRequireCliConfiguration (cognitive 16) (src/TextUI/Application.php)
- Application.registerLogfileWriters (cognitive 17) (src/TextUI/Application.php)
- Application.run (cognitive 38) (src/TextUI/Application.php)
- Application.run (cyclomatic 34) (src/TextUI/Application.php)
- Application.testRunHistoryMayBePruned (cyclomatic 16) (src/TextUI/Application.php)
- AttributeParser.deprecateGroupAttributesOnParentClassesOf (cognitive 21) (src/Metadata/Parser/AttributeParser.php)
- AttributeParser.forClass (cognitive 37) (src/Metadata/Parser/AttributeParser.php)
- AttributeParser.forClass (cyclomatic 65) (src/Metadata/Parser/AttributeParser.php)
- AttributeParser.forMethod (cognitive 31) (src/Metadata/Parser/AttributeParser.php)
- AttributeParser.forMethod (cyclomatic 65) (src/Metadata/Parser/AttributeParser.php)
- Boundary-crossing change coupling: PlainTextRenderer.php ↔ ResultPrinter.php (src/Logging/TestDox/PlainTextRenderer.php)
- Builder.fromParameters (cognitive 87) (src/TextUI/Configuration/Cli/Builder.php)
- Builder.fromParameters (cyclomatic 197) (src/TextUI/Configuration/Cli/Builder.php)
- Change coupling: HtmlRenderer.php ↔ PlainTextRenderer.php (src/Logging/TestDox/HtmlRenderer.php)
- Change coupling: PlainTextRenderer.php ↔ TestResultCollector.php (src/Logging/TestDox/PlainTextRenderer.php)
- ClassTooLong: Assert (src/Framework/Assert.php)
- ClassTooLong: AttributeParser (src/Metadata/Parser/AttributeParser.php)
- ClassTooLong: Builder (src/TextUI/Configuration/Cli/Builder.php)
- ClassTooLong: DispatchingEmitter (src/Event/Emitter/DispatchingEmitter.php)
- …and 616 more

## Changes since last survey

- 300 commits — 294 feature/other, 6 fixes

## By area

- (repo) — 68 commits
- (root) — 41 commits
- .github/workflows — 41 commits
- tests/end-to-end — 33 commits
- src/Framework — 29 commits
- tools/.phpstan — 23 commits
- src/TextUI — 21 commits
- src/Runner — 19 commits
- tests/unit — 17 commits
- tests/_files — 4 commits
- .phive/phars.xml — 2 commits
- src/Event — 1 commit
- src/Logging — 1 commit

## Notable commits

- fix: Backport fix from 13.3
- fix: Backport the fix for bug #6904
- fix: Fix CS/WS issues
- fix: Fix documentation
- fix: Revert "Add --restrict-file-output to refuse writing files outside a directory"
- fix: Revert "Do not report deprecations triggered by myclabs/deep-copy"
- change: Add --restrict-file-output to refuse writing files outside a directory
- change: Add --timeout to limit the wall-clock time of the entire test run
- change: Add event emitter parameter to the factory methods of TestSuite instead of retrieving it from the event facade
- change: Add missing annotation
- change: Add option for caching which tests a test file contains
- change: Add tests
- change: Add tests
- change: Allow ordering tests by the time their source files were last modified
- change: Closes #6904
- change: Closes #6924
- change: Closes #6965
- change: Closes #6995
- change: Closes #6999
- change: Consult the test index when test files are named on the command line
- …and 280 more
