turbo_tests2 3.1.12 → 3.1.14

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: 4a0a7e07ce58d3ba90c7f356ec58e2b633cd5ce9d2c0a597f8752c6dd1249862
4
- data.tar.gz: 55ae018f050654cbabf5a2be45fcfaf311e1357be48804c399e721de63335770
3
+ metadata.gz: b4031f877288b31974b622b8dffb0acffb1361ee96347d695ea69dd9c47a5950
4
+ data.tar.gz: 8bc186019f3b056c15dc2f68cf42b2062a68f4dc9d1fa34c397446933ac37999
5
5
  SHA512:
6
- metadata.gz: 11477777a8a100f2a9cf65880ab421350750ef5e88b9c60abcfb07385e2b07012b510fe9e2c9ab187c797a927be37b6c88eb562daff901350d31e8ab53404388
7
- data.tar.gz: 4cfa0228f397db7723076b1f77540e87f554866052eda68ceee4ce9a6b9f8ea70dc192c1407462a2d2601d5e3556ff8bd6ad07da2c772e6b7dc2f7414a55964d
6
+ metadata.gz: 9a28f75223e3bd926d6cc5ebf4e94bd0de1efa10b82eab792e595cedc73aa1a6bb398e2093058f170c4c7a2d5a76d4b7dc1e8edcc0d01971e4d03d7406d97170
7
+ data.tar.gz: 4eed7b464c8e3d26419a2822bdeed6c60084c5e25968352af3a053d728f25004b18383b4fed4ab13994f3dfcb28a02e23542560c51c1a1c73fbb3a03ffa90755
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,33 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [3.1.14] - 2026-07-17
34
+
35
+ - TAG: [v3.1.14][3.1.14t]
36
+ - COVERAGE: 97.30% -- 758/779 lines in 10 files
37
+ - BRANCH COVERAGE: 88.26% -- 188/213 branches in 10 files
38
+ - 35.11% documented
39
+
40
+ ### Fixed
41
+
42
+ - Worker commands now override RSpec's default options file, then explicitly
43
+ pass filtered project `.rspec` options. File-discovery options such as
44
+ `--pattern` are dropped after `turbo_tests2` has already selected each shard,
45
+ preventing aggregate suite patterns from making every worker run the full
46
+ suite while preserving options like `--require spec_helper`.
47
+
48
+ ## [3.1.13] - 2026-07-16
49
+
50
+ - TAG: [v3.1.13][3.1.13t]
51
+ - COVERAGE: 97.50% -- 741/760 lines in 10 files
52
+ - BRANCH COVERAGE: 88.35% -- 182/206 branches in 10 files
53
+ - 35.87% documented
54
+
55
+ ### Fixed
56
+
57
+ - Duplicate RSpec `Run options:` messages from parallel workers are now
58
+ collapsed so they no longer interrupt progress formatter output repeatedly.
59
+
33
60
  ## [3.1.12] - 2026-07-16
34
61
 
35
62
  - TAG: [v3.1.12][3.1.12t]
@@ -275,7 +302,11 @@ Please file a bug if you notice a violation of semantic versioning.
275
302
 
276
303
  - Initial release
277
304
 
278
- [Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.12...HEAD
305
+ [Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.14...HEAD
306
+ [3.1.14]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.13...v3.1.14
307
+ [3.1.14t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.14
308
+ [3.1.13]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.12...v3.1.13
309
+ [3.1.13t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.13
279
310
  [3.1.12]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.11...v3.1.12
280
311
  [3.1.12t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.12
281
312
  [3.1.11]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.10...v3.1.11
data/README.md CHANGED
@@ -666,7 +666,7 @@ Thanks for RTFM. ☺️
666
666
  [📌gitmoji]: https://gitmoji.dev
667
667
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
668
668
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
669
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.744-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
669
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.779-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
670
670
  [🔐security]: https://github.com/galtzo-floss/turbo_tests2/blob/main/SECURITY.md
671
671
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
672
672
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -3,6 +3,7 @@
3
3
  require "json"
4
4
  require "parallel_tests/rspec/runner"
5
5
  require "rspec/core"
6
+ require "shellwords"
6
7
  require "tempfile"
7
8
 
8
9
  require_relative "../utils/hash_extension"
@@ -142,6 +143,39 @@ module TurboTests
142
143
  path.start_with?(root) ? path[root.length..-1] : path
143
144
  end
144
145
  end
146
+
147
+ def worker_spec_opts(spec_opts)
148
+ args = project_rspec_options + Array(spec_opts)
149
+ filtered = []
150
+ skip_next = false
151
+
152
+ args.each do |arg|
153
+ if skip_next
154
+ skip_next = false
155
+ next
156
+ end
157
+
158
+ case arg
159
+ when "--pattern", "-P", "--default-path"
160
+ skip_next = true
161
+ when /\A--pattern=/, /\A-P.+/, /\A--default-path=/
162
+ next
163
+ else
164
+ filtered << arg
165
+ end
166
+ end
167
+
168
+ filtered
169
+ end
170
+
171
+ def project_rspec_options(root = Dir.pwd)
172
+ %w[.rspec .rspec-local].flat_map do |path|
173
+ option_file = File.join(root, path)
174
+ next [] unless File.file?(option_file)
175
+
176
+ Shellwords.split(File.read(option_file))
177
+ end
178
+ end
145
179
  end
146
180
 
147
181
  def initialize(**opts)
@@ -177,6 +211,7 @@ module TurboTests
177
211
  @exited_process_ids = []
178
212
  @worker_output = Hash.new { |hash, process_id| hash[process_id] = {stdout: +"", stderr: +""} }
179
213
  @worker_output_mutex = Mutex.new
214
+ @deferred_run_options_messages = Hash.new { |hash, message| hash[message] = [] }
180
215
  @error = false
181
216
  @print_failed_group = opts[:print_failed_group]
182
217
  end
@@ -324,10 +359,12 @@ module TurboTests
324
359
  []
325
360
  end
326
361
 
327
- spec_opts = ParallelTests::RSpec::Runner.send(:spec_opts)
362
+ spec_opts = self.class.worker_spec_opts(ParallelTests::RSpec::Runner.send(:spec_opts))
328
363
 
329
364
  command = [
330
365
  *command_name,
366
+ "--options",
367
+ File::NULL,
331
368
  *extra_args,
332
369
  *seed_option,
333
370
  "--format",
@@ -544,6 +581,8 @@ module TurboTests
544
581
  if message[:message].include?("An error occurred") || message[:message].include?("occurred outside of examples")
545
582
  @reporter.error_outside_of_examples(message[:message])
546
583
  @error = true
584
+ elsif run_options_message?(message[:message])
585
+ defer_run_options_message(message[:message], message[:process_id])
547
586
  else
548
587
  @reporter.message(message[:message])
549
588
  end
@@ -567,9 +606,33 @@ module TurboTests
567
606
 
568
607
  $stdout.flush
569
608
  end
609
+
610
+ flush_deferred_run_options_messages
570
611
  rescue Interrupt
571
612
  end
572
613
 
614
+ def run_options_message?(message)
615
+ message.to_s.start_with?("Run options:")
616
+ end
617
+
618
+ def defer_run_options_message(message, process_id)
619
+ @deferred_run_options_messages[message] << process_id
620
+ end
621
+
622
+ def flush_deferred_run_options_messages
623
+ return if @deferred_run_options_messages.empty?
624
+
625
+ if @deferred_run_options_messages.one?
626
+ @reporter.message(@deferred_run_options_messages.keys.first)
627
+ else
628
+ lines = @deferred_run_options_messages.map do |message, process_ids|
629
+ " workers #{process_ids.uniq.sort.join(", ")}: #{message}"
630
+ end
631
+ @reporter.message(["Run options by worker:", *lines].join("\n"))
632
+ end
633
+ @deferred_run_options_messages.clear
634
+ end
635
+
573
636
  def close_io(io)
574
637
  io.close unless io.closed?
575
638
  rescue IOError
@@ -2,7 +2,7 @@
2
2
 
3
3
  module TurboTests
4
4
  module Version
5
- VERSION = "3.1.12"
5
+ VERSION = "3.1.14"
6
6
  end
7
7
  VERSION = Version::VERSION # Traditional Constant Location
8
8
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo_tests2
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.12
4
+ version: 3.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Illia
@@ -312,10 +312,10 @@ licenses:
312
312
  - MIT
313
313
  metadata:
314
314
  homepage_uri: https://turbo-tests2.galtzo.com
315
- source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.12
316
- changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.12/CHANGELOG.md
315
+ source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.14
316
+ changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.14/CHANGELOG.md
317
317
  bug_tracker_uri: https://github.com/galtzo-floss/turbo_tests2/issues
318
- documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.12
318
+ documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.14
319
319
  funding_uri: https://github.com/sponsors/pboling
320
320
  wiki_uri: https://github.com/galtzo-floss/turbo_tests2/wiki
321
321
  news_uri: https://www.railsbling.com/tags/turbo_tests2
metadata.gz.sig CHANGED
Binary file