rspec-tracer 1.2.3 → 2.0.0.pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +195 -68
- data/README.md +439 -429
- data/bin/rspec-tracer +15 -0
- data/lib/rspec_tracer/cache/Rakefile +43 -0
- data/lib/rspec_tracer/cli/cache_clear.rb +98 -0
- data/lib/rspec_tracer/cli/cache_info.rb +103 -0
- data/lib/rspec_tracer/cli/doctor.rb +275 -0
- data/lib/rspec_tracer/cli/explain.rb +148 -0
- data/lib/rspec_tracer/cli/report_open.rb +82 -0
- data/lib/rspec_tracer/cli.rb +116 -0
- data/lib/rspec_tracer/configuration.rb +1100 -3
- data/lib/rspec_tracer/engine.rb +1076 -0
- data/lib/rspec_tracer/example.rb +21 -6
- data/lib/rspec_tracer/filter.rb +35 -0
- data/lib/rspec_tracer/line_stub.rb +61 -0
- data/lib/rspec_tracer/load_config.rb +2 -2
- data/lib/rspec_tracer/logger.rb +15 -0
- data/lib/rspec_tracer/rails/README.md +78 -0
- data/lib/rspec_tracer/rails/i18n_tracking.rb +137 -0
- data/lib/rspec_tracer/rails/notifications.rb +263 -0
- data/lib/rspec_tracer/rails/preset.rb +94 -0
- data/lib/rspec_tracer/rails/railtie.rb +22 -0
- data/lib/rspec_tracer/rails.rb +15 -0
- data/lib/rspec_tracer/remote_cache/README.md +140 -0
- data/lib/rspec_tracer/remote_cache/Rakefile +35 -11
- data/lib/rspec_tracer/remote_cache/archive.rb +137 -0
- data/lib/rspec_tracer/remote_cache/backend.rb +73 -0
- data/lib/rspec_tracer/remote_cache/git_ancestry.rb +241 -0
- data/lib/rspec_tracer/remote_cache/local_fs_backend.rb +439 -0
- data/lib/rspec_tracer/remote_cache/redis_backend.rb +554 -0
- data/lib/rspec_tracer/remote_cache/s3_backend.rb +712 -0
- data/lib/rspec_tracer/remote_cache/user_tasks.rb +397 -0
- data/lib/rspec_tracer/remote_cache/validator.rb +40 -62
- data/lib/rspec_tracer/remote_cache.rb +22 -0
- data/lib/rspec_tracer/reporters/README.md +103 -0
- data/lib/rspec_tracer/reporters/base.rb +87 -0
- data/lib/rspec_tracer/reporters/coverage_json_reporter.rb +338 -0
- data/lib/rspec_tracer/reporters/html/.gitignore +19 -0
- data/lib/rspec_tracer/reporters/html/.prettierignore +4 -0
- data/lib/rspec_tracer/reporters/html/.prettierrc.json +9 -0
- data/lib/rspec_tracer/reporters/html/README.md +80 -0
- data/lib/rspec_tracer/reporters/html/dist/assets/index.css +2 -0
- data/lib/rspec_tracer/reporters/html/dist/assets/index.js +1 -0
- data/lib/rspec_tracer/reporters/html/dist/index.html +24 -0
- data/lib/rspec_tracer/reporters/html/eslint.config.js +62 -0
- data/lib/rspec_tracer/reporters/html/package-lock.json +4941 -0
- data/lib/rspec_tracer/reporters/html/package.json +29 -0
- data/lib/rspec_tracer/reporters/html/src/app.jsx +130 -0
- data/lib/rspec_tracer/reporters/html/src/components/AllExamples.jsx +86 -0
- data/lib/rspec_tracer/reporters/html/src/components/DuplicateExamples.jsx +68 -0
- data/lib/rspec_tracer/reporters/html/src/components/ExamplesDependency.jsx +78 -0
- data/lib/rspec_tracer/reporters/html/src/components/FilesDependency.jsx +72 -0
- data/lib/rspec_tracer/reporters/html/src/components/FlakyExamples.jsx +42 -0
- data/lib/rspec_tracer/reporters/html/src/components/ReportTable.jsx +131 -0
- data/lib/rspec_tracer/reporters/html/src/components/SearchBar.jsx +19 -0
- data/lib/rspec_tracer/reporters/html/src/index.html +23 -0
- data/lib/rspec_tracer/reporters/html/src/main.jsx +37 -0
- data/lib/rspec_tracer/reporters/html/src/styles.css +434 -0
- data/lib/rspec_tracer/reporters/html/vite.config.js +42 -0
- data/lib/rspec_tracer/reporters/html_reporter.rb +266 -0
- data/lib/rspec_tracer/reporters/json_reporter.rb +88 -0
- data/lib/rspec_tracer/reporters/payload_builder.rb +235 -0
- data/lib/rspec_tracer/reporters/registry.rb +120 -0
- data/lib/rspec_tracer/reporters/terminal_reporter.rb +264 -0
- data/lib/rspec_tracer/rspec/README.md +73 -0
- data/lib/rspec_tracer/rspec/installation.rb +97 -0
- data/lib/rspec_tracer/rspec/metadata.rb +96 -0
- data/lib/rspec_tracer/rspec/parallel_tests.rb +459 -0
- data/lib/rspec_tracer/rspec/reporter_hook.rb +84 -0
- data/lib/rspec_tracer/rspec/runner_hook.rb +178 -0
- data/lib/rspec_tracer/source_file.rb +24 -7
- data/lib/rspec_tracer/storage/README.md +35 -0
- data/lib/rspec_tracer/storage/backend.rb +68 -0
- data/lib/rspec_tracer/storage/json_backend.rb +866 -0
- data/lib/rspec_tracer/storage/lazy_snapshot.rb +65 -0
- data/lib/rspec_tracer/storage/schema.rb +43 -0
- data/lib/rspec_tracer/storage/serializer/json.rb +41 -0
- data/lib/rspec_tracer/storage/serializer/msgpack.rb +90 -0
- data/lib/rspec_tracer/storage/snapshot.rb +127 -0
- data/lib/rspec_tracer/storage/sqlite_backend.rb +686 -0
- data/lib/rspec_tracer/time_formatter.rb +37 -18
- data/lib/rspec_tracer/tracker/README.md +36 -0
- data/lib/rspec_tracer/tracker/coverage_adapter.rb +174 -0
- data/lib/rspec_tracer/tracker/declared_globs.rb +100 -0
- data/lib/rspec_tracer/tracker/dependency_graph.rb +134 -0
- data/lib/rspec_tracer/tracker/env_matcher.rb +127 -0
- data/lib/rspec_tracer/tracker/env_snapshot.rb +77 -0
- data/lib/rspec_tracer/tracker/example_registry.rb +153 -0
- data/lib/rspec_tracer/tracker/file_digest.rb +61 -0
- data/lib/rspec_tracer/tracker/filter.rb +127 -0
- data/lib/rspec_tracer/tracker/input.rb +99 -0
- data/lib/rspec_tracer/tracker/io_hooks/file.rb +55 -0
- data/lib/rspec_tracer/tracker/io_hooks/io.rb +24 -0
- data/lib/rspec_tracer/tracker/io_hooks/json.rb +23 -0
- data/lib/rspec_tracer/tracker/io_hooks/kernel.rb +26 -0
- data/lib/rspec_tracer/tracker/io_hooks/yaml.rb +38 -0
- data/lib/rspec_tracer/tracker/io_hooks.rb +195 -0
- data/lib/rspec_tracer/tracker/loaded_files_tracker.rb +295 -0
- data/lib/rspec_tracer/tracker/new_file_detector.rb +62 -0
- data/lib/rspec_tracer/tracker/whole_suite_invalidators.rb +96 -0
- data/lib/rspec_tracer/version.rb +4 -1
- data/lib/rspec_tracer.rb +223 -490
- metadata +93 -43
- data/lib/rspec_tracer/cache.rb +0 -207
- data/lib/rspec_tracer/coverage_merger.rb +0 -42
- data/lib/rspec_tracer/coverage_reporter.rb +0 -187
- data/lib/rspec_tracer/coverage_writer.rb +0 -58
- data/lib/rspec_tracer/html_reporter/Rakefile +0 -18
- data/lib/rspec_tracer/html_reporter/assets/javascripts/application.js +0 -56
- data/lib/rspec_tracer/html_reporter/assets/javascripts/libraries/jquery.js +0 -10881
- data/lib/rspec_tracer/html_reporter/assets/javascripts/plugins/datatables.js +0 -15381
- data/lib/rspec_tracer/html_reporter/assets/stylesheets/application.css +0 -196
- data/lib/rspec_tracer/html_reporter/assets/stylesheets/plugins/datatables.css +0 -459
- data/lib/rspec_tracer/html_reporter/assets/stylesheets/plugins/jquery-ui.css +0 -436
- data/lib/rspec_tracer/html_reporter/assets/stylesheets/print.css +0 -92
- data/lib/rspec_tracer/html_reporter/assets/stylesheets/reset.css +0 -265
- data/lib/rspec_tracer/html_reporter/public/application.css +0 -5
- data/lib/rspec_tracer/html_reporter/public/application.js +0 -6
- data/lib/rspec_tracer/html_reporter/public/datatables/images/sort_asc.png +0 -0
- data/lib/rspec_tracer/html_reporter/public/datatables/images/sort_asc_disabled.png +0 -0
- data/lib/rspec_tracer/html_reporter/public/datatables/images/sort_both.png +0 -0
- data/lib/rspec_tracer/html_reporter/public/datatables/images/sort_desc.png +0 -0
- data/lib/rspec_tracer/html_reporter/public/datatables/images/sort_desc_disabled.png +0 -0
- data/lib/rspec_tracer/html_reporter/public/favicon.png +0 -0
- data/lib/rspec_tracer/html_reporter/public/loading.gif +0 -0
- data/lib/rspec_tracer/html_reporter/reporter.rb +0 -242
- data/lib/rspec_tracer/html_reporter/views/duplicate_examples.erb +0 -34
- data/lib/rspec_tracer/html_reporter/views/examples.erb +0 -58
- data/lib/rspec_tracer/html_reporter/views/examples_dependency.erb +0 -36
- data/lib/rspec_tracer/html_reporter/views/files_dependency.erb +0 -36
- data/lib/rspec_tracer/html_reporter/views/flaky_examples.erb +0 -38
- data/lib/rspec_tracer/html_reporter/views/layout.erb +0 -38
- data/lib/rspec_tracer/remote_cache/aws.rb +0 -176
- data/lib/rspec_tracer/remote_cache/cache.rb +0 -75
- data/lib/rspec_tracer/remote_cache/repo.rb +0 -210
- data/lib/rspec_tracer/report_generator.rb +0 -158
- data/lib/rspec_tracer/report_merger.rb +0 -68
- data/lib/rspec_tracer/report_writer.rb +0 -141
- data/lib/rspec_tracer/reporter.rb +0 -204
- data/lib/rspec_tracer/rspec_reporter.rb +0 -41
- data/lib/rspec_tracer/rspec_runner.rb +0 -56
- data/lib/rspec_tracer/ruby_coverage.rb +0 -9
- data/lib/rspec_tracer/runner.rb +0 -278
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 04d2e3c76b8351f5f71f93cd722af23975f80da067f19970471455b3b2ed16aa
|
|
4
|
+
data.tar.gz: 0ab86f0d744275db42ed0d355d5781d25a6f65ed49a76fcd70d3df1acd7e01b4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e802e4c67a41d1d1ebd16df2fd4ee874f0993678097563f38b5bd3e443024662040547df140dd45196c0e81e7d510ecfe79dbf4a3e01ab1a4685f380f9ec829f
|
|
7
|
+
data.tar.gz: 72435a0282503ff2c90b6b80168fb810bd48412bc162043b4d70780b35f74478fc5236c43710bb9e948657b2c6c17734a59406fc617cb712eaba7e1a3c2e4dfb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,81 +1,208 @@
|
|
|
1
|
-
## [
|
|
1
|
+
## [2.0.0.pre.1] - 2026-05-06
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The first pre-release of the 2.0 line. Architecture rewrite around
|
|
4
|
+
the input-taxonomy mental model documented in
|
|
5
|
+
[`ARCHITECTURE.md`](ARCHITECTURE.md): every test is a pure function
|
|
6
|
+
of its inputs; tracking is input identification; cache invalidation
|
|
7
|
+
is input-digest mismatch.
|
|
8
|
+
|
|
9
|
+
The 1.x cache is not readable by 2.0 — first run on the new version
|
|
10
|
+
is cold, then warm caches resume. Existing CI integration (`rake
|
|
11
|
+
rspec_tracer:remote_cache:download` / `:upload`, the env vars,
|
|
12
|
+
the `rspec_tracer_cache/` / `rspec_tracer_coverage/` /
|
|
13
|
+
`rspec_tracer_report/` directory contracts) is preserved bit-for-bit.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Pluggable storage backends.** `storage_backend :json` (default,
|
|
18
|
+
preserves 1.x JSON layout) or `storage_backend :sqlite` (single-
|
|
19
|
+
file SQLite database; MRI only — JRuby falls back to `:json` with
|
|
20
|
+
a one-time warn). The 10-file per-run JSON layout (`last_run.json`
|
|
21
|
+
+ `<run_id>/{all_examples,duplicate_examples,interrupted_examples,
|
|
22
|
+
flaky_examples,failed_examples,pending_examples,skipped_examples,
|
|
23
|
+
all_files,dependency,examples_coverage}.json`) is unchanged.
|
|
24
|
+
- **Pluggable remote-cache backends.** `remote_cache_backend :s3`
|
|
25
|
+
(preserves the 1.x S3 layout including `awslocal` / LocalStack
|
|
26
|
+
support), `:local_fs` (filesystem-backed; no S3 needed), or
|
|
27
|
+
`:redis` (with optional per-key TTL + `<prefix>:pr_branches`
|
|
28
|
+
sidecar SADD on PR-tier uploads for ops dashboards).
|
|
29
|
+
- **Per-example `tracks:` DSL.** Annotate any describe / context /
|
|
30
|
+
example with `tracks: { files: 'app/policies/**/*.rb', env:
|
|
31
|
+
'ROLE_CONFIG' }` to declare extra inputs the tracker can't auto-
|
|
32
|
+
observe — config files baked at boot, env-var branches, and
|
|
33
|
+
similar. `:files` accepts a string glob or array; `:env` accepts a
|
|
34
|
+
literal name, array, or single-wildcard pattern (`'RAILS_*'`,
|
|
35
|
+
`'*_TOKEN'`, `'*'`). Cascade unions parent + child without
|
|
36
|
+
clobbering.
|
|
37
|
+
- **`track_env(*names)` config-level DSL** for env vars every test
|
|
38
|
+
depends on (`AUTH_TOKEN`, `DATABASE_URL`, `RAILS_ENV`). Same
|
|
39
|
+
wildcard syntax as the per-example `tracks: { env: ... }`.
|
|
40
|
+
Persists as `env_snapshot.json` (concrete keys only, no pattern
|
|
41
|
+
leakage).
|
|
42
|
+
- **`track_files(*globs)` config-level DSL** for files every test
|
|
43
|
+
depends on (`Gemfile.lock`, schema, locale catalogs).
|
|
44
|
+
- **Rails preset** via `track_rails_defaults` — auto-attaches the
|
|
45
|
+
common Rails-side declared globs (views, locales, fixtures,
|
|
46
|
+
factories, helpers, config). `track_rails_defaults except:
|
|
47
|
+
[:views, :schema]` opts specific globs out so framework-event
|
|
48
|
+
subscribers (`render_template.action_view` for views; the opt-in
|
|
49
|
+
`sql.active_record` observer enabled by
|
|
50
|
+
`track_ar_schema_notifications` for `db/schema.rb`) attribute
|
|
51
|
+
them per-example instead.
|
|
52
|
+
- **Auto-detection of Rails** at start time; the engine attaches
|
|
53
|
+
`ActionView` template + `ActiveRecord` schema (when opted in)
|
|
54
|
+
notification observers automatically when `::Rails::VERSION` is
|
|
55
|
+
defined.
|
|
56
|
+
- **`bin/rspec-tracer` CLI** with five sub-commands:
|
|
57
|
+
`doctor` (config + environment diagnosis, schema-version + remote-
|
|
58
|
+
cache reachability + AR-schema-narrow checks), `cache:info`
|
|
59
|
+
(size, last run, invalidation stats), `cache:clear` (rm cache
|
|
60
|
+
dirs), `report:open` (open the HTML report in the default
|
|
61
|
+
browser), `explain <example_id>` (show why a given example is
|
|
62
|
+
scheduled to run or skip). The CLI is opt-in for local-dev
|
|
63
|
+
convenience; the `rake rspec_tracer:remote_cache:*` tasks remain
|
|
64
|
+
first-class for CI integration.
|
|
65
|
+
- **Boot-time warns** for two common user-trust traps:
|
|
66
|
+
- SimpleCov loaded but not started before `RSpecTracer.start`
|
|
67
|
+
(load-order is part of the documented contract; the warn
|
|
68
|
+
surfaces it instead of silently bolting onto a Coverage already
|
|
69
|
+
in flight).
|
|
70
|
+
- `track_ar_schema_notifications` enabled with
|
|
71
|
+
`use_transactional_fixtures` defaulting to true (per-example
|
|
72
|
+
BEGIN/COMMIT fires `sql.active_record` and attributes
|
|
73
|
+
`db/schema.rb` to every AR-touching example; the warn points
|
|
74
|
+
at the README "Narrow AR-schema attribution" guidance).
|
|
75
|
+
- **`.rspec-tracer` DSL typo `did you mean?` suggestions** at config
|
|
76
|
+
load — typos like `track_filez` raise `InvalidUsageError` with a
|
|
77
|
+
pointer at `track_files`.
|
|
78
|
+
- **Rails 8.0 CI-gated support** (Ruby 3.2+ required; Rails 8.0
|
|
79
|
+
dropped Ruby 3.1 support upstream). `jruby-9.4 × Rails 8.0` is
|
|
80
|
+
unsupported (no `activerecord-jdbcsqlite3-adapter ~> 80.0`
|
|
81
|
+
upstream).
|
|
82
|
+
- **Schema-version field** in `last_run.json` for explicit
|
|
83
|
+
cross-version cache validation. Cache-shape changes bump the
|
|
84
|
+
field; mismatched caches refuse-to-load with an info-level "cold
|
|
85
|
+
run" log line.
|
|
86
|
+
- **`docs/CI_RECIPES.md`** translating the
|
|
87
|
+
[`.github/workflows/example-tracer-cache.yml`](.github/workflows/example-tracer-cache.yml)
|
|
88
|
+
GitHub Actions cache pattern to CircleCI / GitLab CI / Buildkite
|
|
89
|
+
/ Heroku CI. The 4-component cache key (`runner.os` +
|
|
90
|
+
`.ruby-version` + `lib/rspec_tracer/version.rb` + Gemfile-hash)
|
|
91
|
+
translates 1:1 across providers; only the YAML envelope is
|
|
92
|
+
GHA-specific.
|
|
93
|
+
- **Coexistence smokes** for `rspec-retry`, `rspec-rerun`, and
|
|
94
|
+
`knapsack`. All three compose with rspec-tracer's `Module#prepend`
|
|
95
|
+
chain on `RSpec::Core::Runner` / `Reporter` without override.
|
|
96
|
+
- **`bin/rspec-tracer doctor` reachability checks** for the
|
|
97
|
+
configured remote-cache backend (S3 / Local-FS / Redis) — surfaces
|
|
98
|
+
misconfigured credentials / missing buckets / unreachable Redis
|
|
99
|
+
hosts at first invocation instead of mid-CI-run.
|
|
100
|
+
- **HTML reporter** (committed build output, no `assets:precompile`
|
|
101
|
+
step on user installs) and **JSON reporter** (machine-readable,
|
|
102
|
+
for CI dashboards) alongside the existing terminal output. The
|
|
103
|
+
terminal line now includes a `by reason:` breakdown
|
|
104
|
+
(`12 Files changed · 3 Whole-suite invalidator changed · ...`)
|
|
105
|
+
and a cache size + delta suffix (`14.4 MiB; +6.7 KiB vs prev
|
|
106
|
+
run`).
|
|
4
107
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
108
|
+
### Changed
|
|
109
|
+
|
|
110
|
+
- **Ruby ≥ 3.1** is the floor (1.x supported Ruby 2.5+). 3.2, 3.3,
|
|
111
|
+
3.4, 4.0 + JRuby 9.4 are CI-gated. Rails 7.0 / 7.1 / 7.2 / 8.0 +
|
|
112
|
+
RSpec 3.12 / 3.13 are CI-gated.
|
|
113
|
+
- **SimpleCov branch coverage now works alongside rspec-tracer.**
|
|
114
|
+
The 1.x caveat ("SimpleCov would not report branch coverage
|
|
115
|
+
results even when enabled") is **no longer applicable** — the
|
|
116
|
+
coverage-stack rewrite decoupled rspec-tracer's line-only
|
|
117
|
+
emission from SimpleCov's branch-tracking. Users who turned
|
|
118
|
+
`enable_coverage :branch` off when adopting rspec-tracer 1.x can
|
|
119
|
+
re-enable in 2.0.
|
|
120
|
+
- **Cache schema bump.** First run on 2.0 is cold; subsequent runs
|
|
121
|
+
return to warm.
|
|
122
|
+
- **Coverage adapter** consolidated: a single
|
|
123
|
+
`Reporters::CoverageJsonReporter` owns `coverage.json` emission
|
|
124
|
+
(replacing the 1.x `CoverageReporter` + `CoverageWriter` pair).
|
|
125
|
+
Output shape preserved.
|
|
126
|
+
- **Parallel-tests reporter behavior:** terminal / JSON / HTML
|
|
127
|
+
reports now emit ONCE at the merged top-level location after
|
|
128
|
+
`merge_snapshot!` runs, instead of per-worker (where
|
|
129
|
+
`purge_worker_dirs!` then removed them and left users with no
|
|
130
|
+
usable output). Per-worker emission was a pre-2.0 behavior bug.
|
|
27
131
|
|
|
28
132
|
### Fixed
|
|
29
133
|
|
|
134
|
+
- **ERB template tracking via `render_template.action_view`** (closes
|
|
135
|
+
the issue behind upstream
|
|
136
|
+
[#66](https://github.com/avmnu-sng/rspec-tracer/issues/66)). The
|
|
137
|
+
Rails subscriber attributes rendered ERB partials to the example
|
|
138
|
+
that triggered the render.
|
|
139
|
+
- **Phantom `metadata[:file_path]` graceful skip** (closes the issue
|
|
140
|
+
behind upstream
|
|
141
|
+
[#72](https://github.com/avmnu-sng/rspec-tracer/issues/72)). Specs
|
|
142
|
+
whose `metadata[:file_path]` doesn't resolve to a readable file
|
|
143
|
+
(gem-generated examples, deleted-between-runs files) now log
|
|
144
|
+
debug + skip dependency registration instead of raising.
|
|
30
145
|
- **Default filter list now excludes rspec-tracer's own output
|
|
31
|
-
directories**
|
|
32
|
-
`rspec_tracer_report/`,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
effect only for fresh attributions on cold runs; previously-cached
|
|
47
|
-
paths matching the new filter persisted in `all_files` and
|
|
48
|
-
`dependency` until the next cold run. Filter additions now take
|
|
146
|
+
directories** — `rspec_tracer_cache/`, `rspec_tracer_coverage/`,
|
|
147
|
+
`rspec_tracer_report/`, `rspec_tracer.lock`. Previously, tests
|
|
148
|
+
that read the tracer's own cache files (e.g. integration specs
|
|
149
|
+
asserting on cache state after a fixture subprocess run) got
|
|
150
|
+
those paths attributed as deps. The tracer's output is
|
|
151
|
+
regenerated every run by design and should never invalidate a
|
|
152
|
+
test. Both `add_filter` (dep graph) and `add_coverage_filter`
|
|
153
|
+
(coverage report) lists were updated.
|
|
154
|
+
- **`add_filter` / `add_coverage_filter` now apply uniformly to
|
|
155
|
+
both fresh attributions AND prior-snapshot carry-forward.**
|
|
156
|
+
Previously, `Engine#seed_all_files_from_previous` and
|
|
157
|
+
`Engine#seed_graph_from_previous` seeded paths from the previous
|
|
158
|
+
run's snapshot WITHOUT re-applying the current filter list — so
|
|
159
|
+
a filter added between runs would NOT exclude already-cached
|
|
160
|
+
paths until a cold run wiped them. Filter additions now take
|
|
49
161
|
effect on the very next warm run.
|
|
50
162
|
|
|
51
|
-
|
|
163
|
+
### Deprecated
|
|
52
164
|
|
|
53
|
-
|
|
165
|
+
The 1.x configuration surface keeps working; each deprecated entry
|
|
166
|
+
fires one `logger.warn` at first use pointing at the replacement.
|
|
167
|
+
The deprecated values still resolve semantically. All four are slated
|
|
168
|
+
for removal in 3.0.
|
|
169
|
+
|
|
170
|
+
- **`reports_s3_path(uri)`** → use **`remote_cache_uri(uri)`**.
|
|
171
|
+
- **`use_local_aws(bool)`** → use **`remote_cache_backend :s3,
|
|
172
|
+
local: true`**.
|
|
173
|
+
- **`RSPEC_TRACER_REPORTS_S3_PATH`** → use
|
|
174
|
+
**`RSPEC_TRACER_REMOTE_CACHE_URI`**.
|
|
175
|
+
- **`RSPEC_TRACER_USE_LOCAL_AWS`** → fold into
|
|
176
|
+
`remote_cache_backend` params.
|
|
177
|
+
|
|
178
|
+
### Removed
|
|
54
179
|
|
|
55
|
-
- **
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
`
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
`
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
180
|
+
- **Cucumber feature-file integration suite.** Contributor-facing
|
|
181
|
+
only; users see no change. Replaced by RSpec subprocess
|
|
182
|
+
integration specs under `spec/integration/`. The `bundle exec
|
|
183
|
+
rake` legacy entry point is removed; `task` (Taskfile) is the
|
|
184
|
+
canonical dev loop.
|
|
185
|
+
- **Ruby ≤ 3.0 and Rails ≤ 6.x support** (already dropped in 1.1.0;
|
|
186
|
+
re-stated here for clarity at the major boundary).
|
|
187
|
+
- **Windows support** (no CI gate; never actively maintained).
|
|
188
|
+
|
|
189
|
+
### Deferred to 2.1
|
|
190
|
+
|
|
191
|
+
- **Per-example dependency attribution under Rails
|
|
192
|
+
`config.eager_load = true`.** When `eager_load = true` (Rails
|
|
193
|
+
default for CI tests to mirror prod), all `app/` files load at
|
|
194
|
+
boot and land in the boot-set; the whole-suite invalidator fires
|
|
195
|
+
on any `app/` edit, re-running every example. This is SAFE (never
|
|
196
|
+
misses a dep) but coarser than per-example attribution. The 2.1
|
|
197
|
+
enhancement will install a class-attribution mechanism (working
|
|
198
|
+
name: `track_class_attribution`) using `TracePoint(:class)` at
|
|
199
|
+
boot + `TracePoint(:call)` per example to trim the invalidator
|
|
200
|
+
scope to only examples that touched the changed file's class /
|
|
201
|
+
method surface. Opt-in by default; designed from scratch on the
|
|
202
|
+
user-shape problem (not a resurrection of any 1.x DSL name).
|
|
203
|
+
Today's escape hatches: set `config.eager_load = false` in test
|
|
204
|
+
env for full per-example precision, or use `tracks: { files:
|
|
205
|
+
'...' }` for per-example narrowing on specific groups.
|
|
79
206
|
|
|
80
207
|
## [1.2.0] - 2026-04-24
|
|
81
208
|
|