Skip to content

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 26 Aug 03:08
· 62 commits to master since this release
2af71de
  • Recorded why eleven FileWrapper methods are excluded from mutation, next to
    the exclusion itself. The text is the one written when the list was
    introduced and dropped later with the gate's rationale block; a silent
    exclusion cannot be told apart from one made to get the gate green.

  • AGENTS.md now carries the perf ritual: re-measure perf/ on the commit the
    current figures came from before comparing a release candidate, because
    nothing in CI defends those numbers.

  • The release workflow waits for the matrix build instead of judging it
    mid-flight.
    A tag pushed right after the merge arrived while master's own
    build was still running, and the guard read a null conclusion as a failed
    one — so v0.1.1 published to Packagist but its GitHub Release had to be
    created by re-running the workflow. No effect on the package itself.

  • Arg::allOf() and Arg::anyOf(). The matcher algebra had negation and
    nothing to negate against: not() composed, but two conditions on one
    argument needed a hand-written satisfies() closure, which then had to carry
    its own description or render as satisfies(…) in every failure message. An
    operand is a matcher or a literal, the same pair not() takes, so
    anyOf('draft', 'review') reads as a set and
    allOf(instanceOf(Book::class), which('getTitle', 'Dune')) reads as a
    conjunction — both describing themselves in full when an expectation fails.
    A combinator with no operands, and one holding a tail matcher, are refused
    with the reason rather than silently matching everything.