v0.8.0 — Auto-parallel top-level tests
Breaking: top-level `TestXxx` is now parallel by default
`samurai.Run` / `samurai.RunWith` now call `t.Parallel()` on the top-level `*testing.T`, not just on samurai-emitted sub-tests. Tests in the same Go package run concurrently without a manual `t.Parallel()` at the top of every `TestXxx`.
Migration
- Remove any manual `t.Parallel()` from the first line of a `TestXxx` that uses `samurai.Run` / `samurai.RunWith`. Go panics with `t.Parallel called multiple times` if the same `*testing.T` is marked parallel twice.
- Pass `samurai.Sequential()` for any test that uses `t.Setenv`, binds a fixed port, or otherwise cannot tolerate sibling tests running alongside it.
Why
Previously only sub-tests within a single `TestXxx` ran in parallel; different `TestXxx` functions in the same package ran serially unless each one wrote `t.Parallel()` manually. Real-world adoption (20 samurai tests in one package, ~140 leaves) dropped from ~30s to ~19s wall-clock once top-level parallelism was enabled — this release makes that the default.
🤖 Generated with Claude Code