v3.1.0
3.1.0 - 2026-05-28
- TAG: v3.1.0
- COVERAGE: 95.01% -- 609/641 lines in 16 files
- BRANCH COVERAGE: 77.54% -- 107/138 branches in 16 files
- 36.78% documented
Added
-w/--workersaliases for-n, matching the worker-count terminology used by other
parallel test runners.turbo_tests2 fan, a generic worker fan-out command that runs an arbitrary command once per
worker withTEST_ENV_NUMBERandPARALLEL_TEST_GROUPSset.--example-status-log FILE, which converts RSpec example-status persistence data into a
parallel_tests-compatible runtime log so grouping can use example-level timing history.
Changed
- Worker subprocess JSON now forwards RSpec deprecation notifications to the parent reporter.
- Worker subprocess JSON now forwards RSpec profile output to the parent reporter.
- Fail-fast runs now report spec groups that were stopped before execution.
- Interrupted runs now report spec groups that had not finished before shutdown.
Fixed
-
Reconstructed failure backtraces now filter internal
turbo_tests2frames. -
Coverage was refreshed by adding focused specs for the new CLI, reporting, formatter, and
grouping behaviors. -
RSpec deprecation notification reconstruction now uses the public
from_hashAPI so CI passes
with RSpec versions where.newis private. -
The shim command result object no longer depends on
Struct#keyword_init, restoring Ruby 2.4
compatibility. -
Backtrace output specs now accept JRuby 9.2's legacy
block in <main>frame wording. -
GitHub Actions test jobs now force
kettle-testto use its direct RSpec runner so coverage
aggregation remains stable while testingturbo_tests2itself. -
GitHub Actions appraisal jobs now pass explicit parent-directory RSpec paths so direct RSpec
runs execute the real suite instead of finding zero examples fromgemfiles/. -
Spawned-process coverage setup now locates
.simplecov_spawn.rbfrom the working directory
instead ofBundler.root, so appraisal gemfiles do not point it atgemfiles/. -
The coverage workflow now uses the same hard coverage thresholds as local development.
-
The dedicated coverage workflow now runs RSpec directly so coverage artifacts are written under
the repository root for upload steps. -
Removed the advanced CodeQL workflow because GitHub CodeQL default setup is enabled and rejects
SARIF uploads from advanced configurations.
Security
- Refreshed pinned GitHub Action SHAs.
- Added checksums for the
v3.0.0release artifacts.
Many paths lead to being a sponsor or a backer of this project. Are you on such a path?