u/AvmnuSng

▲ 9 r/ruby

I shipped rspec-tracer 1.0 in 2021 and the project sat untouched for 4 years. I came back to it last month, shipped 11 maintenance releases on the 1.x line absorbing crash + correctness fixes that had piled up in forks, then cut a 2.0 pre-release this week.

What rspec-tracer does, for context: tracks which source files each RSpec example depends on, so the second run of your suite skips examples whose inputs didn't change. Cold runs full; warm runs skip everything that wasn't affected by your edit.

What's new in 2.0 vs 1.x:

  • Pluggable storage: JSON (default, preserves the 1.x layout) or SQLite (single-file DB; MRI-only).
  • Pluggable remote cache: S3, Local-FS, or Redis (with optional per-key TTL + PR-branches sidecar).
  • Per-example tracks: DSL for declared deps the tracker can't auto-observe (tracks: { files: 'app/policies/**/*.rb', env: 'ROLE_CONFIG' }).
  • track_env(*names) config-level DSL with single-wildcard patterns ('RAILS_*', '*_TOKEN', '*').
  • Rails preset: track_rails_defaults auto-attaches views, locales, fixtures, factories, helpers, config, schema.
  • bin/rspec-tracer CLI: doctor, cache:info, cache:clear, report:open, explain <example_id>.
  • HTML + JSON reporters alongside terminal output.
  • SimpleCov branch coverage now works alongside (1.x had it disabled).

Pre-release framing — the gem is on RubyGems with --pre opt-in. 2.0.0 final is targeted in ~2 weeks. Looking for testers + feedback before final.

# Gemfile
gem 'rspec-tracer', '= 2.0.0.pre.1', group: :test, require: false

Release notes: https://github.com/avmnu-sng/rspec-tracer/releases/tag/v2.0.0.pre.1

u/AvmnuSng — 7 days ago