Skip to content

1.1.1

Choose a tag to compare

@deminy deminy released this 27 Aug 20:08
· 2 commits to master since this release
5ec3a55

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 CounitExtension registration 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 own bootstrap() 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

  • CounitExtension is documented as required, not optional. README.md listed registering it under "Optional
    steps" and docs/compatibility.md never 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.0 reads 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