rspec-tracer 1.2.1 → 1.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9bb2eb98496bfbfaf3582dd4fd91830e35dd9cfd54f242f53c2f445e9957c884
4
- data.tar.gz: a91f7c646270ec4e7402885d37702f65f3117497dc77ae66afd253075cf8a687
3
+ metadata.gz: 0f6c19e285b64650bd4f02c5820fed75c10806ebb97900e17607b84532dfb483
4
+ data.tar.gz: a4e17229c1efa3d43e1cc850b908cb9bbcb16fb6f217098348675ce2a798c993
5
5
  SHA512:
6
- metadata.gz: 1f205945ef89b10918091f2c2b01ca3634df82ccae6b30b4250053438890d8f8f513551b2b7f50814edfd4bd48f8bac47df97e1ad3758b78260784ec6034abe2
7
- data.tar.gz: 7ebf412bbce22cba94546e4935691e65cbc47e23304adf178a7cd8b44f3464b1194a6132badf48866d0562b7df4dda1ee4c56466c25d60f77e94067082c82369
6
+ metadata.gz: 25571686f98b2c1939a0497f3c34a7f0508d856ba94ac2aabd6f293815a4e61ad8cb2b56d8a22c4ff211692a6609c1f8671d6b55f35d2123301d15bf8d70649b
7
+ data.tar.gz: 1c86b20818bc6f18bc5a3faf69f6a7b7908b1ab6006a1301341883edb46f3d180db3cd6308978f9d12dbd6f9b427dcd478c3addc7888f78faa64dc1b325897ce
data/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ ## [1.2.2] - 2026-05-04
2
+
3
+ ### Fixed
4
+
5
+ - **Default filter list now excludes rspec-tracer's own output
6
+ directories** (`rspec_tracer_cache/`, `rspec_tracer_coverage/`,
7
+ `rspec_tracer_report/`, and the `rspec_tracer.lock` file). Prior
8
+ versions did not exclude these paths, so any spec that read a tracer
9
+ cache file (typical for outer integration specs that assert on cache
10
+ state after a fixture subprocess run) had those paths attributed as
11
+ dependencies. The user-visible symptom was reverse-dependency reports
12
+ showing tracer-self paths as deps of unrelated specs, plus
13
+ spurious files-changed re-runs whenever the tracer rewrote its own
14
+ cache. Both `add_filter` and `add_coverage_filter` defaults updated.
15
+
16
+ - **Carry-forward filter contract** — newly added filters now apply
17
+ uniformly to both fresh attribution AND prior-snapshot carry-forward.
18
+ Previously, `Cache#load_all_files_cache` and `load_dependency_cache`
19
+ read previous-run state without re-applying the current filter list.
20
+ A user adding a new filter mid-development saw the filter take
21
+ effect only for fresh attributions on cold runs; previously-cached
22
+ paths matching the new filter persisted in `all_files` and
23
+ `dependency` until the next cold run. Filter additions now take
24
+ effect on the very next warm run.
25
+
1
26
  ## [1.2.1] - 2026-05-01
2
27
 
3
28
  ### Fixed
@@ -171,9 +171,10 @@ module RSpecTracer
171
171
 
172
172
  return unless File.file?(file_name)
173
173
 
174
- @all_files = JSON.parse(File.read(file_name, encoding: 'UTF-8')).transform_values do |files|
174
+ raw = JSON.parse(File.read(file_name, encoding: 'UTF-8')).transform_values do |files|
175
175
  files.transform_keys(&:to_sym)
176
176
  end
177
+ @all_files = raw.reject { |fname, _| filtered_by_current_filters?(fname) }
177
178
  end
178
179
 
179
180
  def load_dependency_cache(cache_dir)
@@ -181,7 +182,18 @@ module RSpecTracer
181
182
 
182
183
  return unless File.file?(file_name)
183
184
 
184
- @dependency = JSON.parse(File.read(file_name, encoding: 'UTF-8')).transform_values(&:to_set)
185
+ raw = JSON.parse(File.read(file_name, encoding: 'UTF-8')).transform_values(&:to_set)
186
+ @dependency = raw.transform_values do |files|
187
+ files.reject { |fname| filtered_by_current_filters?(fname) }.to_set
188
+ end
189
+ end
190
+
191
+ # True iff `file_name` matches any currently-configured filter.
192
+ # Applied at carry-forward seed time so newly-added filters take
193
+ # effect on the very next warm run instead of waiting for a cold
194
+ # run.
195
+ def filtered_by_current_filters?(file_name)
196
+ RSpecTracer.filters.any? { |f| f.match?(file_name: file_name) }
185
197
  end
186
198
 
187
199
  def load_examples_coverage_cache(cache_dir)
@@ -16,6 +16,10 @@ RSpecTracer.configure do
16
16
  /.rbenv/versions/
17
17
  /.asdf/installs/ruby/
18
18
  /.rvm/
19
+ /rspec_tracer_cache/
20
+ /rspec_tracer_coverage/
21
+ /rspec_tracer_report/
22
+ rspec_tracer.lock
19
23
  ].freeze
20
24
 
21
25
  coverage_filters.clear
@@ -33,6 +37,10 @@ RSpecTracer.configure do
33
37
  /.rbenv/versions/
34
38
  /.asdf/installs/ruby/
35
39
  /.rvm/
40
+ /rspec_tracer_cache/
41
+ /rspec_tracer_coverage/
42
+ /rspec_tracer_report/
43
+ rspec_tracer.lock
36
44
  ].freeze
37
45
  end
38
46
  # rubocop:enable Metrics/BlockLength
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RSpecTracer
4
- VERSION = '1.2.1'
4
+ VERSION = '1.2.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abhimanyu Singh
@@ -111,7 +111,7 @@ licenses:
111
111
  - MIT
112
112
  metadata:
113
113
  homepage_uri: https://github.com/avmnu-sng/rspec-tracer
114
- source_code_uri: https://github.com/avmnu-sng/rspec-tracer/tree/v1.2.1
114
+ source_code_uri: https://github.com/avmnu-sng/rspec-tracer/tree/v1.2.2
115
115
  changelog_uri: https://github.com/avmnu-sng/rspec-tracer/blob/main/CHANGELOG.md
116
116
  bug_tracker_uri: https://github.com/avmnu-sng/rspec-tracer/issues
117
117
  rdoc_options: []