Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 13:55
v3.0.0
f5cfe5e

The last release supporting PHP 8.2. Every dependency moves to the newest version
installable on 8.2, so the next major can raise the floor to 8.4 without also carrying
a backlog of dependency upgrades.

Breaking change

brick/math now requires ^0.18 (previously ^0.11 || ^0.12). Consumers pinned
to 0.11 or 0.12 cannot install this release.

brick/math 0.14.8 renamed the RoundingMode enum cases from HALF_UP to HalfUp,
and BigDecimal is part of this SDK's public surface via VatRate::getValue() and
VatRate::getDecimalValue() — so the old and new ranges cannot be spanned silently.
If you pass a rounding mode to a BigDecimal obtained from this SDK, use the new
spelling:

$rate->getDecimalValue()->dividedBy('100', 2, RoundingMode::HalfUp);

The SDK's own src/ never referenced RoundingMode, so no behaviour changed — only
the constraint.

Dependency updates

Package 2.0.0 3.0.0
brick/math ^0.11 || ^0.12 ^0.18
phpunit/phpunit ^10.5.62 ^11.5.56
squizlabs/php_codesniffer ^3.7 ^4.0

phpunit/phpunit 11 required moving PHPUnit metadata out of doc-comments and into
attributes, because PHPUnit 12 removes doc-comment metadata entirely. @dataProvider
and @group became #[DataProvider] and #[Group]; @test was dropped rather than
converted, since every method carrying it is already test-prefixed and discovered by
name.

Fixed

Every test in the --group network CI step was running twice. The all PHPUnit
test suite re-collected files already claimed by the unit and integration suites,
producing 26 executions for 13 tests. PHPUnit 10 did this silently; 11 reports the
overlap as a runner warning, which failOnWarning makes fatal. The suite was
referenced nowhere and has been removed — a bare vendor/bin/phpunit still collects
all 203 tests.

Deliberately unchanged

php-vcr/php-vcr stays capped at <1.8.2. Raising it is impossible while PHP 8.2
is supported: php-soap/ext-soap-engine 1.7.0 is the only release installable on 8.2
(1.8.0+ requires 8.3+), and its AbusedClient::__doRequest() lacks the
$uriParserClass parameter that php-vcr 1.8.2+ adds to the parent it rewrites
SoapClient into. The mismatch is a fatal error raised before any test runs.

The SoapClient test doubles now accept that optional parameter anyway, so the cap
becomes a one-line change once the floor moves off 8.2. This affects development only,
not consumers of the SDK.

Next

The following major raises the floor to ^8.4. phpstan/phpstan v2 and
rector/rector v2 land there as a single change — they are a mutual deadlock, since
Rector 1.x requires phpstan ^1.x and Rector 2.x requires ^2.x, so neither can be
updated alone. The php-vcr cap lifts at the same time.

Full Changelog: v2.0.0...v3.0.0