Skip to content

v0.3.0 — S3: per-test timing capture + duration-balanced CI sharding

Choose a tag to compare

@rawphp rawphp released this 10 Jul 12:20
· 103 commits to main since this release

Added

  • S3 — per-test timing capture + duration-balanced CI sharding: a PHPUnit extension (RawPHP\Warp\Timing\TimingExtension, engaged via WARP_TIMINGS=1) records every test's duration with file attribution into a portable .warp/timings artifact; the new warp CLI packs CI shards to equal duration via deterministic LPT (warp shard <k>/<n>), collapsing count-based shard spread to the mean. warp timings prints artifact stats.
  • WarpMode::timingsEnabled(), WARP_TIMINGS_DIR env override, bin/warp composer binary.
  • bench/shard-spread.sh — S3 gate harness (count-based vs duration-balanced spread report from recorded timings).

Changed

  • warp shard now exits 2 when discovery finds zero test files, keeping that error distinct from exit 3 legitimately empty shards.

This release also folds in an extensive hardening pass across the timing store, sharder, root/path resolution, and CLI boundaries (REQ-063–REQ-111).

Full Changelog: v0.2.0...v0.3.0