1.1.1
Documentation and diagnostics release for the 1.x series. The supported PHPUnit and PHP versions are unchanged
(~12.5.24 on PHP >= 8.3, ~13.0 on PHP >= 8.4.1), and no test needs changing.
Upgrade note. A run whose phpunit.xml does not register CounitExtension now prints one notice line on
STDERR. Exit codes are untouched, and COUNIT_SILENCE_TEARDOWN_NOTICE=1 silences it alongside counit's other
notices.
Added
- A missing
CounitExtensionregistration is announced instead of quietly invalidating the run. The extension
is what waits for every coroutine to drain before PHPUnit takes its summary; without it nothing does, so the run
reports a time that can understate the truth by orders of magnitude and assertion totals that are neither correct
nor consistent between a full run and the same tests run in isolation — while exiting 0 and looking entirely
healthy. The run's first coroutine now writes a notice to STDERR naming the omission, what it costs, and the
<extensions><bootstrap class="Deminy\Counit\CounitExtension"/></extensions>element that fixes it. Registration
is observed through the extension's ownbootstrap()call, which PHPUnit makes once per registered extension, so
a correctly configured run cannot be false-accused; a run without Swoole, or a suite that creates no coroutine,
stays quiet. (bdf94f9)
Changes
CounitExtensionis documented as required, not optional. README.md listed registering it under "Optional
steps" anddocs/compatibility.mdnever mentioned it at all, though nearly every
guarantee in that matrix depends on it. Both now say so, and both record that the registration element differs by
release line —<bootstrap class>on PHPUnit 10+ (counit^1.1) versus<extension class>on PHPUnit 8/9
(counit^0.3), since the class implements different interfaces on each — so a snippet copied across lines fails
silently. The class docblock carries the snippet too, for anyone arriving from a stack trace rather than the
README. (8fd6b81)- The install instructions point at the current releases. The documented constraint
~1.0.0reads as= 1.0.0 < 1.1.0, so anyone following the README pinned themselves to the previous line. It is now
^1.1, which
picks up future 1.x minors; the maintenance line's row becomes^0.3, which stops at the next 0.x minor — on a
zero-major, where a breaking change may land. (054cd4c)
Full changelog: 1.1.0...1.1.1