turbo_tests2 3.1.1 → 3.1.3

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: 60ede4cd429a0a25151b01cd9f0bcddbafb8002e048e55b4aef4dbb47d5fa5d8
4
- data.tar.gz: 7b64b241458249d78ff9b632ecc7679fc5e27620f8f36aea0d1f4170236c9cd9
3
+ metadata.gz: cfd673d6ae8cb509b581990ab4fc6290d4108c5e3af0cf8a6e9fffe90cd373dc
4
+ data.tar.gz: d145b26cd8c021afcb4a3bc7c9f4f94d6885ccdd4e8d8da500f7cb9855ba461a
5
5
  SHA512:
6
- metadata.gz: a24112e4b8d4280f937aa5b9617cfa6367c4aef082750e819ac76a12681ab596ad8bf2f72c5701833f4efe29e33de89a4eed316422e4b341fb781f2addba3ef5
7
- data.tar.gz: 34da19c8fbeee18e9541c488c34c8045f8a9ea5f2628b679339c6cbb0160e492fa7b9b21231ca6ecb30685826c27206788d58c6512a4ffc18e7f34728ca625df
6
+ metadata.gz: a21f56a935b9189674f79fd83c6acb4426c96c44d9616090dc6b6ebac6d7e020745991e8ba7853e006b3e7005cde2469be0cefc784c6519e338bf9c433a06e08
7
+ data.tar.gz: c94630c64ff389d5e8f1b6ec8ecd2a1d86307581e4bd740d6847449719142dde4557ad601a381d6338ac30a1a6a9d8dd29c0da14cc556ab6814fb86b2246f5b5
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,10 +28,33 @@ Please file a bug if you notice a violation of semantic versioning.
28
28
 
29
29
  ### Fixed
30
30
 
31
- - Worker PID cleanup now uses the `parallel_tests` pid file path captured when the subprocess starts, avoiding JRuby failures after the pid-file environment is restored.
32
-
33
31
  ### Security
34
32
 
33
+ ## [3.1.3] - 2026-06-14
34
+
35
+ - TAG: [v3.1.3][3.1.3t]
36
+ - COVERAGE: 94.62% -- 651/688 lines in 16 files
37
+ - BRANCH COVERAGE: 79.33% -- 119/150 branches in 16 files
38
+ - 37.08% documented
39
+
40
+ ### Fixed
41
+
42
+ - Restored `docs/CNAME` so the generated documentation site keeps its custom domain.
43
+
44
+ ## [3.1.2] - 2026-06-08
45
+
46
+ - TAG: [v3.1.2][3.1.2t]
47
+ - COVERAGE: 94.62% -- 651/688 lines in 16 files
48
+ - BRANCH COVERAGE: 79.33% -- 119/150 branches in 16 files
49
+ - 37.08% documented
50
+
51
+ ### Fixed
52
+
53
+ - `turbo_tests2` now generates and reports a global random seed by default,
54
+ passes it to every worker process, and supports `--order defined` /
55
+ `--no-random` for ordered runs without a seed.
56
+ - Worker PID cleanup now uses the `parallel_tests` pid file path captured when the subprocess starts, avoiding JRuby failures after the pid-file environment is restored.
57
+
35
58
  ## [3.1.1] - 2026-06-02
36
59
 
37
60
  - TAG: [v3.1.1][3.1.1t]
@@ -114,7 +137,11 @@ Please file a bug if you notice a violation of semantic versioning.
114
137
 
115
138
  - Initial release
116
139
 
117
- [Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.1...HEAD
140
+ [Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.3...HEAD
141
+ [3.1.3]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.2...v3.1.3
142
+ [3.1.3t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.3
143
+ [3.1.2]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.1...v3.1.2
144
+ [3.1.2t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.2
118
145
  [3.1.1]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.0...v3.1.1
119
146
  [3.1.1t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.1
120
147
  [3.1.0]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.0.0...v3.1.0
data/LICENSE.md CHANGED
@@ -7,16 +7,16 @@ Choose the option that best fits your use case:
7
7
 
8
8
  ## Copyright Notice
9
9
 
10
- Copyright (c) 2020-2023 Illia
11
- Copyright (c) 2020 Ilya Zub
12
- Copyright (c) 2021 AMHOL
13
- Copyright (c) 2021 Serge Bedzhyk
14
- Copyright (c) 2023 Bo Anderson
15
- Copyright (c) 2023 Dmitiry Zub☀️
16
- Copyright (c) 2023-2024 Illia
17
- Copyright (c) 2023 mrudzki
18
- Copyright (c) 2023-2024 Sebastien Savater
19
- Copyright (c) 2024 David Rodriguez
20
- Copyright (c) 2024 Hiroshi SHIBATA
21
- Copyright (c) 2025-2026 Gareth Jones
22
- Copyright (c) 2025-2026 Peter H. Boling
10
+ - Copyright (c) 2020-2023 Illia
11
+ - Copyright (c) 2020 Ilya Zub
12
+ - Copyright (c) 2021 AMHOL
13
+ - Copyright (c) 2021 Serge Bedzhyk
14
+ - Copyright (c) 2023 Bo Anderson
15
+ - Copyright (c) 2023 Dmitiry Zub☀️
16
+ - Copyright (c) 2023-2024 Illia
17
+ - Copyright (c) 2023 mrudzki
18
+ - Copyright (c) 2023-2024 Sebastien Savater
19
+ - Copyright (c) 2024 David Rodriguez
20
+ - Copyright (c) 2024 Hiroshi SHIBATA
21
+ - Copyright (c) 2025-2026 Gareth Jones
22
+ - Copyright (c) 2025-2026 Peter H. Boling
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <a href="https://github.com/galtzo-floss"><img alt="galtzo-floss Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="12%" align="right"/></a> <a href="https://github.com/galtzo-floss/turbo_tests2"><img alt="turbo_tests2 Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/turbo_tests2/avatar-128px.svg" width="12%" align="right"/></a>
1
+ <a href="https://github.com/galtzo-floss/turbo_tests2"><img alt="turbo_tests2 Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/turbo_tests2/avatar-128px.svg" width="20%" align="right"/></a>
2
2
 
3
3
  # 🚀 TurboTests
4
4
 
@@ -181,20 +181,28 @@ Usage: turbo_tests2 [options]
181
181
  turbo_tests2 spec/bar spec/baz/xxx_spec.rb
182
182
 
183
183
  Options:
184
- -n [PROCESSES] How many processes to use, default: available CPUs
184
+ -n, -w, --workers [PROCESSES] How many processes to use, default: available CPUs
185
185
  -r, --require PATH Require a file.
186
186
  -f, --format FORMATTER Choose a formatter. Available formatters: progress (p), documentation (d). Default: progress
187
187
  -t, --tag TAG Run examples with the specified tag.
188
188
  -o, --out FILE Write output to a file instead of $stdout
189
189
  --runtime-log FILE Location of previously recorded test runtimes
190
+ --example-status-log FILE Use RSpec example status persistence timings for grouping
190
191
  -v, --verbose More output
191
192
  --fail-fast=[N]
192
193
  --seed SEED Seed for rspec
193
- --create Create test databases
194
+ --order ORDER RSpec example order: random (default) or defined
195
+ --no-random Run examples in defined order without passing a seed
196
+ --create Create databases
194
197
  --print_failed_group Prints group that had failures in it
198
+ --nice execute test commands with low priority
195
199
  ```
196
200
 
197
- To pass any options supported by paralell_tests, use `--`:
201
+ By default, `turbo_tests2` generates one random RSpec seed, prints it, and passes
202
+ that same seed to every worker process. Use `--seed SEED` to replay a run, or
203
+ `--order defined` / `--no-random` when you want ordered examples without a seed.
204
+
205
+ To pass any options supported by parallel_tests, use `--`:
198
206
 
199
207
  ```bash
200
208
  bundle exec turbo_tests2 -n 4 -- --only-group 1 --pattern spec/system
@@ -644,7 +652,7 @@ Thanks for RTFM. ☺️
644
652
  [📌gitmoji]: https://gitmoji.dev
645
653
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
646
654
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
647
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.670-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
655
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.688-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
648
656
  [🔐security]: https://github.com/galtzo-floss/turbo_tests2/blob/main/SECURITY.md
649
657
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
650
658
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -672,7 +680,7 @@ Thanks for RTFM. ☺️
672
680
  | Package | turbo_tests2 |
673
681
  | Description | 🚀 turbo_tests2` is a drop-in replacement for `serpapi/turbo_tests` and `grosser/parallel_tests` with incremental summarized output. Source code of `turbo_test2` gem is based on Discourse and Rubygems work in this area (see README.md). |
674
682
  | Homepage | https://github.com/galtzo-floss/turbo_tests2 |
675
- | Source | https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.1 |
683
+ | Source | https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.3 |
676
684
  | License | `MIT` |
677
685
  | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/galtzo-floss, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/turbo_tests2, https://www.buymeacoffee.com/pboling |
678
686
  <!-- kettle-jem:metadata:end -->
data/SECURITY.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |----------|-----------|
7
- | 1.latest | ✅ |
7
+ | 3.1.latest | ✅ |
8
8
 
9
9
  ## Security contact information
10
10
 
@@ -21,6 +21,7 @@ module TurboTests
21
21
  verbose = false
22
22
  fail_fast = nil
23
23
  seed = nil
24
+ order = nil
24
25
  print_failed_group = false
25
26
  create = false
26
27
  nice = false
@@ -99,6 +100,14 @@ module TurboTests
99
100
  seed = s
100
101
  end
101
102
 
103
+ opts.on("--order ORDER", "RSpec example order: random (default) or defined") do |value|
104
+ order = value
105
+ end
106
+
107
+ opts.on("--no-random", "Run examples in defined order without passing a seed") do
108
+ order = "defined"
109
+ end
110
+
102
111
  opts.on("--create", "Create databases") do
103
112
  create = true
104
113
  end
@@ -146,6 +155,7 @@ module TurboTests
146
155
  fail_fast: fail_fast,
147
156
  count: count,
148
157
  seed: seed,
158
+ order: order,
149
159
  nice: nice,
150
160
  print_failed_group: print_failed_group,
151
161
  parallel_options: parallel_options
@@ -34,8 +34,10 @@ module TurboTests
34
34
  verbose = opts.fetch(:verbose, false)
35
35
  fail_fast = opts.fetch(:fail_fast, nil)
36
36
  count = opts.fetch(:count, nil)
37
+ order = normalize_order(opts.fetch(:order, nil))
37
38
  seed = opts.fetch(:seed, nil)
38
- seed_used = !seed.nil?
39
+ seed_used = order != "defined"
40
+ seed = generate_seed if seed_used && seed.nil?
39
41
  print_failed_group = opts.fetch(:print_failed_group, false)
40
42
  nice = opts.fetch(:nice, false)
41
43
 
@@ -67,6 +69,7 @@ module TurboTests
67
69
  count: count,
68
70
  seed: seed,
69
71
  seed_used: seed_used,
72
+ order: order,
70
73
  print_failed_group: print_failed_group,
71
74
  use_runtime_info: use_runtime_info,
72
75
  parallel_options: parallel_options,
@@ -88,6 +91,18 @@ module TurboTests
88
91
  File.write(path, runtimes.sort.map { |file, runtime| "#{file}:#{runtime}" }.join("\n"))
89
92
  path
90
93
  end
94
+
95
+ def normalize_order(order)
96
+ order = order.to_s.strip.downcase
97
+ return "random" if order.empty?
98
+ return order if %w[random defined].include?(order)
99
+
100
+ raise ArgumentError, "Unsupported order #{order.inspect}; use random or defined"
101
+ end
102
+
103
+ def generate_seed
104
+ (Random.new_seed % 65_535).to_s
105
+ end
91
106
  end
92
107
 
93
108
  def initialize(**opts)
@@ -101,6 +116,7 @@ module TurboTests
101
116
  @count = opts[:count]
102
117
  @seed = opts[:seed]
103
118
  @seed_used = opts[:seed_used]
119
+ @order = opts[:order]
104
120
  @nice = opts[:nice]
105
121
  @use_runtime_info = opts[:use_runtime_info]
106
122
 
@@ -241,6 +257,10 @@ module TurboTests
241
257
  [
242
258
  "--seed", @seed
243
259
  ]
260
+ elsif @order
261
+ [
262
+ "--order", @order
263
+ ]
244
264
  else
245
265
  []
246
266
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module TurboTests
4
4
  module Version
5
- VERSION = "3.1.1"
5
+ VERSION = "3.1.3"
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.1
4
+ version: 3.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Illia
@@ -10,7 +10,6 @@ authors:
10
10
  - Serge Bedzhyk
11
11
  - Bo Anderson
12
12
  - Dmitiry Zub☀️
13
- - Illia
14
13
  - mrudzki
15
14
  - Sebastien Savater
16
15
  - David Rodriguez
@@ -92,7 +91,7 @@ dependencies:
92
91
  version: '1.1'
93
92
  - - ">="
94
93
  - !ruby/object:Gem::Version
95
- version: 1.1.9
94
+ version: 1.1.11
96
95
  type: :runtime
97
96
  prerelease: false
98
97
  version_requirements: !ruby/object:Gem::Requirement
@@ -102,27 +101,27 @@ dependencies:
102
101
  version: '1.1'
103
102
  - - ">="
104
103
  - !ruby/object:Gem::Version
105
- version: 1.1.9
104
+ version: 1.1.11
106
105
  - !ruby/object:Gem::Dependency
107
106
  name: kettle-dev
108
107
  requirement: !ruby/object:Gem::Requirement
109
108
  requirements:
110
109
  - - "~>"
111
110
  - !ruby/object:Gem::Version
112
- version: '2.0'
111
+ version: '2.2'
113
112
  - - ">="
114
113
  - !ruby/object:Gem::Version
115
- version: 2.0.7
114
+ version: 2.2.8
116
115
  type: :development
117
116
  prerelease: false
118
117
  version_requirements: !ruby/object:Gem::Requirement
119
118
  requirements:
120
119
  - - "~>"
121
120
  - !ruby/object:Gem::Version
122
- version: '2.0'
121
+ version: '2.2'
123
122
  - - ">="
124
123
  - !ruby/object:Gem::Version
125
- version: 2.0.7
124
+ version: 2.2.8
126
125
  - !ruby/object:Gem::Dependency
127
126
  name: bundler-audit
128
127
  requirement: !ruby/object:Gem::Requirement
@@ -177,20 +176,20 @@ dependencies:
177
176
  requirements:
178
177
  - - "~>"
179
178
  - !ruby/object:Gem::Version
180
- version: '3.0'
179
+ version: '3.1'
181
180
  - - ">="
182
181
  - !ruby/object:Gem::Version
183
- version: 3.0.6
182
+ version: 3.1.2
184
183
  type: :development
185
184
  prerelease: false
186
185
  version_requirements: !ruby/object:Gem::Requirement
187
186
  requirements:
188
187
  - - "~>"
189
188
  - !ruby/object:Gem::Version
190
- version: '3.0'
189
+ version: '3.1'
191
190
  - - ">="
192
191
  - !ruby/object:Gem::Version
193
- version: 3.0.6
192
+ version: 3.1.2
194
193
  - !ruby/object:Gem::Dependency
195
194
  name: kettle-test
196
195
  requirement: !ruby/object:Gem::Requirement
@@ -200,7 +199,7 @@ dependencies:
200
199
  version: '2.0'
201
200
  - - ">="
202
201
  - !ruby/object:Gem::Version
203
- version: 2.0.2
202
+ version: 2.0.5
204
203
  type: :development
205
204
  prerelease: false
206
205
  version_requirements: !ruby/object:Gem::Requirement
@@ -210,7 +209,7 @@ dependencies:
210
209
  version: '2.0'
211
210
  - - ">="
212
211
  - !ruby/object:Gem::Version
213
- version: 2.0.2
212
+ version: 2.0.5
214
213
  - !ruby/object:Gem::Dependency
215
214
  name: ruby-progressbar
216
215
  requirement: !ruby/object:Gem::Requirement
@@ -311,10 +310,10 @@ licenses:
311
310
  - MIT
312
311
  metadata:
313
312
  homepage_uri: https://turbo-tests2.galtzo.com
314
- source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.1
315
- changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.1/CHANGELOG.md
313
+ source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.3
314
+ changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.3/CHANGELOG.md
316
315
  bug_tracker_uri: https://github.com/galtzo-floss/turbo_tests2/issues
317
- documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.1
316
+ documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.3
318
317
  funding_uri: https://github.com/sponsors/pboling
319
318
  wiki_uri: https://github.com/galtzo-floss/turbo_tests2/wiki
320
319
  news_uri: https://www.railsbling.com/tags/turbo_tests2
metadata.gz.sig CHANGED
Binary file