kettle-soup-cover 3.0.5 → 3.0.6

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: f2cab70ab3f9e1e85974e719bb6dd704ba4d4626f4fb747921d06d1610816d0c
4
- data.tar.gz: 3d168113fdd9abdd21058e74062cc82092eb0dee897713ab81f4efa846340da5
3
+ metadata.gz: 268a85dce488669857679360088a676efa2c4687a94e2c2c0c9b6744ea0a0b08
4
+ data.tar.gz: 58f75380d4e5408691b068885698382654898be5d09b2e80330f0639fcb69447
5
5
  SHA512:
6
- metadata.gz: 28b7c4f8fc0623d46affb22731a83a07ca4ea29382552f2ec6b395463af701fe30f238e0c34c6de3d0edf0bb09bad63e62607152b781cc0e669da84a5488c66e
7
- data.tar.gz: ceeb87044089392d5d3b1fc71e90013c3a4ae108522c18e3a73971f54e556b06ee3d30b966b2a3ba64e657c9f60c1e3e502b7f3deeb44a248346d65415bcc946
6
+ metadata.gz: f1cc03808a7caf562808cb7a1ba574c55477587a814df31f80212cdcb44430416beb9f858a3541adbe83ff3a781ab42fa83b3cd10da1f8b5557686bdb3e7f377
7
+ data.tar.gz: add520b491aab1167ab2399349168b35597c95e1355c17ae43594b393a47412ea2d3b6b5e7cae922f28f765e296f8072ad9e2d4bdea0e9b9e3e5d6ceff8442b1
checksums.yaml.gz.sig CHANGED
@@ -1 +1,3 @@
1
- g��/�t�ŭkZ�@�a)�.��ϛ��`��b
1
+ ��g����:�h�0���[\v�7AU�C#`8��{3�U2�5`)�\z��6�f��c�LG��)g�S-��Gr_ьyD�
2
+ �����}��;vn�F��U� ���`�(����#���c����g��6uc�U��]@U�����������=,۠sO<�VKL��u��D��Em�`�_|s��3����)�΋���q��p��l'�l��w�d�䂡!^�a�xX���[�|���!,�|C�
3
+ (z��vG=@R9�Th]#;�u�D{v�S�!�Ǜ�3����pB[�Y�M��Q�b@�q| � 턷X���0x�!�I�u8iVqa�fR�a!�M���C��6b��4e(�����iU��7�
data/CHANGELOG.md CHANGED
@@ -30,6 +30,51 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [3.0.6] - 2026-07-28
34
+
35
+ - TAG: [v3.0.6][3.0.6t]
36
+ - COVERAGE: 98.58% -- 278/282 lines in 12 files
37
+ - BRANCH COVERAGE: 91.67% -- 77/84 branches in 12 files
38
+ - 20.00% documented
39
+
40
+ ### Added
41
+
42
+ - kettle-jem-template-20260726-001 - Projects now include YARD lint
43
+ configuration and documentation dependencies so documentation issues fail
44
+ before generated docs are refreshed.
45
+
46
+ - kettle-jem-template-20260727-001 - Spec harness documentation now lists the
47
+ RSpec helpers provided by `kettle-test`.
48
+
49
+ ### Changed
50
+
51
+ - The `kettle-soup-cover` executable startup header is now shown only when
52
+ `--verbose` is passed; `-v` and `--version` still print just the executable
53
+ version and exit.
54
+ - Turbo test parent collation now runs every configured SimpleCov formatter
55
+ while suppressing repeated formatter status lines, keeping default task
56
+ coverage output compact without reducing formatter coverage.
57
+
58
+ - kettle-jem-template-20260725-002 - Version specs now use `anonymous_loader` to
59
+ cover `version.rb` without redefining constants, or are removed when version
60
+ specs are not managed for the project.
61
+
62
+ - kettle-jem-template-20260728-001 - Generated Ruby workflows now use clearer
63
+ setup-ruby-flash planning and can prepare appraisal-only jobs without
64
+ installing the main Gemfile bundle.
65
+
66
+ ### Fixed
67
+
68
+ - kettle-jem-template-20260726-002 - Generated version files now document their
69
+ version namespace and constants, reducing warning-only YARD lint output.
70
+
71
+ - kettle-jem-template-20260726-003 - Coverage upload steps now treat Coveralls,
72
+ QLTY, and Codecov as optional, so provider outages do not fail CI when local
73
+ coverage thresholds still pass.
74
+ - kettle-jem-template-20260728-002 - Generated RuboCop configs now ignore the
75
+ same `gemfiles/vendor/bundle` tree as `.gitignore`, so vendored dependency
76
+ installs are not reported as project lint debt.
77
+
33
78
  ## [3.0.5] - 2026-07-25
34
79
 
35
80
  - TAG: [v3.0.5][3.0.5t]
@@ -622,7 +667,9 @@ Please file a bug if you notice a violation of semantic versioning.
622
667
 
623
668
  - Initial release
624
669
 
625
- [Unreleased]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.5...HEAD
670
+ [Unreleased]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.6...HEAD
671
+ [3.0.6]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.5...v3.0.6
672
+ [3.0.6t]: https://github.com/kettle-dev/kettle-soup-cover/releases/tag/v3.0.6
626
673
  [3.0.5]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.4...v3.0.5
627
674
  [3.0.5t]: https://github.com/kettle-dev/kettle-soup-cover/releases/tag/v3.0.5
628
675
  [3.0.4]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.3...v3.0.4
data/README.md CHANGED
@@ -196,6 +196,7 @@ setting is read from `K_SOUP_COV_DIR`.
196
196
  | `K_SOUP_COV_MULTI_FORMATTERS` | `true` on CI; otherwise `true` when any formatter is configured | Uses SimpleCov's multi-formatter support. |
197
197
  | `K_SOUP_COV_OPEN_BIN` | `open` on macOS, `xdg-open` elsewhere | Browser-opening command for `rake coverage`. Set empty to only print the report path. |
198
198
  | `K_SOUP_COV_PREFIX` | `K_SOUP_COV_` | Alternate namespace for all `K_SOUP_COV_*` variables. |
199
+ | `K_SOUP_COV_QUIET_COLLATION` | `true` | Suppresses repeated SimpleCov formatter status lines during turbo_tests2 parent collation while still running all configured formatters. Set `false` to debug formatter output. |
199
200
  | `K_SOUP_COV_TURBO_TESTS` | `true` | Enables turbo_tests2 worker coverage isolation when `TEST_ENV_NUMBER` is present. |
200
201
  | `K_SOUP_COV_TURBO_TESTS_DIR` | `turbo_tests` | Subdirectory for worker coverage under `K_SOUP_COV_DIR`. |
201
202
  | `K_SOUP_COV_USE_MERGING` | `true` | Enables SimpleCov result merging. |
@@ -814,7 +815,7 @@ Thanks for RTFM. ☺️
814
815
  [📌gitmoji]: https://gitmoji.dev
815
816
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
816
817
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
817
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.257-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
818
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.282-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
818
819
  [🔐security]: https://github.com/kettle-dev/kettle-soup-cover/blob/main/SECURITY.md
819
820
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
820
821
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -33,6 +33,7 @@ max_details = 20
33
33
  show_detail = false
34
34
  coverage_path = nil
35
35
  explicit_coverage_path = false
36
+ show_header = false
36
37
 
37
38
  opts = OptionParser.new do |opt|
38
39
  opt.banner = "Usage: kettle-soup-cover [options] [coverage.json path]"
@@ -49,6 +50,7 @@ opts = OptionParser.new do |opt|
49
50
  puts opt
50
51
  exit
51
52
  end
53
+ opt.on("--verbose", "Show startup header") { show_header = true }
52
54
  opt.on("-v", "--version", "Show version") {}
53
55
  opt.on("-l", "--lines", "Show only line coverage") { @show_lines = true }
54
56
  opt.on("-b", "--branches", "Show only branch coverage") { @show_branches = true }
@@ -58,7 +60,7 @@ end
58
60
 
59
61
  opts.parse!(ARGV)
60
62
 
61
- puts "== #{script_basename} v#{Kettle::Soup::Cover::Version::VERSION} =="
63
+ puts "== #{script_basename} v#{Kettle::Soup::Cover::Version::VERSION} ==" if show_header
62
64
 
63
65
  # If a positional arg is present (leftover after parsing) treat it as coverage json path
64
66
  project_root = Dir.pwd
@@ -125,6 +125,7 @@ module Kettle
125
125
  # Default merge timeout of 1 hour (3600 seconds) - enough for most test suites
126
126
  # Set K_SOUP_COV_MERGE_TIMEOUT to override
127
127
  MERGE_TIMEOUT = ENV_GET.call("MERGE_TIMEOUT", "3600").to_i
128
+ QUIET_COLLATION = ENV_GET.call("QUIET_COLLATION", Constants::TRUE).casecmp?(Constants::TRUE)
128
129
  VERBOSE = ENV_GET.call("VERBOSE", Constants::FALSE).casecmp?(Constants::TRUE)
129
130
 
130
131
  WASHED_CONSTANTS = {
@@ -152,6 +153,7 @@ module Kettle
152
153
  MULTI_FORMATTERS
153
154
  OPEN_BIN
154
155
  PREFIX
156
+ QUIET_COLLATION
155
157
  SIMPLECOV_COMMAND_NAME
156
158
  TRUE
157
159
  TEST_ENV_NUMBER
@@ -3,9 +3,12 @@
3
3
  module Kettle
4
4
  module Soup
5
5
  module Cover
6
+ # Version namespace for this gem.
6
7
  module Version
7
- VERSION = "3.0.5"
8
+ # Current gem version.
9
+ VERSION = "3.0.6"
8
10
  end
11
+ # Current gem version exposed at the traditional constant location.
9
12
  VERSION = Version::VERSION # Traditional Constant Location
10
13
  end
11
14
  end
@@ -22,6 +22,7 @@
22
22
  require "fileutils"
23
23
  require "json"
24
24
  require "rbconfig"
25
+ require "stringio"
25
26
 
26
27
  # This gem
27
28
  require_relative "cover/version"
@@ -94,20 +95,22 @@ module Kettle
94
95
 
95
96
  require "simplecov"
96
97
 
97
- SimpleCov.collate(resultsets) do
98
- command_name("#{Constants::COMMAND_NAME} (turbo_tests2)")
99
- enable_coverage(:branch)
100
- primary_coverage(:branch)
101
- skip(Constants::FILTER_DIRS)
102
- coverage_dir(File.expand_path(coverage_dir, project_root))
103
-
104
- Kettle::Soup::Cover.configure_formatters!
105
-
106
- if Constants::MIN_COVERAGE_HARD
107
- minimum_coverage(
108
- branch: Constants::MIN_COVERAGE_BRANCH,
109
- line: Constants::MIN_COVERAGE_LINE
110
- )
98
+ with_quiet_collation_output do
99
+ SimpleCov.collate(resultsets) do
100
+ command_name("#{Constants::COMMAND_NAME} (turbo_tests2)")
101
+ enable_coverage(:branch)
102
+ primary_coverage(:branch)
103
+ skip(Constants::FILTER_DIRS)
104
+ coverage_dir(File.expand_path(coverage_dir, project_root))
105
+
106
+ Kettle::Soup::Cover.configure_formatters!
107
+
108
+ if Constants::MIN_COVERAGE_HARD
109
+ minimum_coverage(
110
+ branch: Constants::MIN_COVERAGE_BRANCH,
111
+ line: Constants::MIN_COVERAGE_LINE
112
+ )
113
+ end
111
114
  end
112
115
  end
113
116
 
@@ -190,6 +193,41 @@ module Kettle
190
193
  right
191
194
  end
192
195
 
196
+ def with_quiet_collation_output
197
+ return yield unless Constants::QUIET_COLLATION && !Constants::VERBOSE
198
+
199
+ stdout = StringIO.new
200
+ stderr = StringIO.new
201
+ original_stdout = $stdout
202
+ original_stderr = $stderr
203
+
204
+ begin
205
+ $stdout = stdout
206
+ $stderr = stderr
207
+ yield
208
+ ensure
209
+ $stdout = original_stdout
210
+ $stderr = original_stderr
211
+ replay_quiet_collation_output(stdout.string, original_stdout)
212
+ replay_quiet_collation_output(stderr.string, original_stderr)
213
+ end
214
+ end
215
+
216
+ def replay_quiet_collation_output(output, io)
217
+ output.each_line do |line|
218
+ io.print(line) unless quiet_collation_formatter_line?(line)
219
+ end
220
+ end
221
+
222
+ def quiet_collation_formatter_line?(line)
223
+ stripped = line.strip
224
+ return true if stripped.empty?
225
+ return true if stripped.match?(/coverage report generated/i)
226
+ return true if stripped.match?(/\A(?:Line|Branch) coverage:/i)
227
+
228
+ false
229
+ end
230
+
193
231
  def coverage_task_env(coverage_dir = Constants::COVERAGE_DIR, project_root: Dir.pwd)
194
232
  resolved_coverage_dir = File.expand_path(coverage_dir, project_root)
195
233
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-soup-cover
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.5
4
+ version: 3.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -219,6 +219,26 @@ dependencies:
219
219
  - - ">="
220
220
  - !ruby/object:Gem::Version
221
221
  version: 1.0.4
222
+ - !ruby/object:Gem::Dependency
223
+ name: anonymous_loader
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '0.1'
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: 0.1.3
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - "~>"
237
+ - !ruby/object:Gem::Version
238
+ version: '0.1'
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: 0.1.3
222
242
  - !ruby/object:Gem::Dependency
223
243
  name: appraisal2
224
244
  requirement: !ruby/object:Gem::Requirement
@@ -268,7 +288,7 @@ dependencies:
268
288
  version: '3.2'
269
289
  - - ">="
270
290
  - !ruby/object:Gem::Version
271
- version: 3.2.0
291
+ version: 3.2.3
272
292
  type: :development
273
293
  prerelease: false
274
294
  version_requirements: !ruby/object:Gem::Requirement
@@ -278,7 +298,7 @@ dependencies:
278
298
  version: '3.2'
279
299
  - - ">="
280
300
  - !ruby/object:Gem::Version
281
- version: 3.2.0
301
+ version: 3.2.3
282
302
  - !ruby/object:Gem::Dependency
283
303
  name: ruby-progressbar
284
304
  requirement: !ruby/object:Gem::Requirement
@@ -302,7 +322,7 @@ dependencies:
302
322
  version: '1.0'
303
323
  - - ">="
304
324
  - !ruby/object:Gem::Version
305
- version: 1.0.6
325
+ version: 1.0.7
306
326
  type: :development
307
327
  prerelease: false
308
328
  version_requirements: !ruby/object:Gem::Requirement
@@ -312,7 +332,7 @@ dependencies:
312
332
  version: '1.0'
313
333
  - - ">="
314
334
  - !ruby/object:Gem::Version
315
- version: 1.0.6
335
+ version: 1.0.7
316
336
  - !ruby/object:Gem::Dependency
317
337
  name: gitmoji-regex
318
338
  requirement: !ruby/object:Gem::Requirement
@@ -322,7 +342,7 @@ dependencies:
322
342
  version: '2.0'
323
343
  - - ">="
324
344
  - !ruby/object:Gem::Version
325
- version: 2.0.4
345
+ version: 2.0.6
326
346
  type: :development
327
347
  prerelease: false
328
348
  version_requirements: !ruby/object:Gem::Requirement
@@ -332,7 +352,7 @@ dependencies:
332
352
  version: '2.0'
333
353
  - - ">="
334
354
  - !ruby/object:Gem::Version
335
- version: 2.0.4
355
+ version: 2.0.6
336
356
  description: "\U0001F958 A Covered Kettle of Test Coverage SOUP (Software of Unknown
337
357
  Provenance)\nFour-line SimpleCov config, w/ curated, opinionated, pre-configured,
338
358
  dependencies\nfor every CI platform, batteries included.\nFund overlooked open source
@@ -367,10 +387,10 @@ licenses:
367
387
  - AGPL-3.0-only
368
388
  metadata:
369
389
  homepage_uri: https://kettle-soup-cover.galtzo.com/
370
- source_code_uri: https://github.com/kettle-dev/kettle-soup-cover/tree/v3.0.5
371
- changelog_uri: https://github.com/kettle-dev/kettle-soup-cover/blob/v3.0.5/CHANGELOG.md
390
+ source_code_uri: https://github.com/kettle-dev/kettle-soup-cover/tree/v3.0.6
391
+ changelog_uri: https://github.com/kettle-dev/kettle-soup-cover/blob/v3.0.6/CHANGELOG.md
372
392
  bug_tracker_uri: https://github.com/kettle-dev/kettle-soup-cover/issues
373
- documentation_uri: https://www.rubydoc.info/gems/kettle-soup-cover/3.0.5
393
+ documentation_uri: https://www.rubydoc.info/gems/kettle-soup-cover/3.0.6
374
394
  funding_uri: https://github.com/sponsors/pboling
375
395
  wiki_uri: https://github.com/kettle-dev/kettle-soup-cover/wiki
376
396
  news_uri: https://www.railsbling.com/tags/kettle-soup-cover
metadata.gz.sig CHANGED
Binary file