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 +4 -4
- checksums.yaml.gz.sig +3 -1
- data/CHANGELOG.md +48 -1
- data/README.md +2 -1
- data/exe/kettle-soup-cover +3 -1
- data/lib/kettle/soup/cover/constants.rb +2 -0
- data/lib/kettle/soup/cover/version.rb +4 -1
- data/lib/kettle/soup/cover.rb +52 -14
- data.tar.gz.sig +0 -0
- metadata +30 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 268a85dce488669857679360088a676efa2c4687a94e2c2c0c9b6744ea0a0b08
|
|
4
|
+
data.tar.gz: 58f75380d4e5408691b068885698382654898be5d09b2e80330f0639fcb69447
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f1cc03808a7caf562808cb7a1ba574c55477587a814df31f80212cdcb44430416beb9f858a3541adbe83ff3a781ab42fa83b3cd10da1f8b5557686bdb3e7f377
|
|
7
|
+
data.tar.gz: add520b491aab1167ab2399349168b35597c95e1355c17ae43594b393a47412ea2d3b6b5e7cae922f28f765e296f8072ad9e2d4bdea0e9b9e3e5d6ceff8442b1
|
checksums.yaml.gz.sig
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
g
|
|
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.
|
|
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.
|
|
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
|
data/exe/kettle-soup-cover
CHANGED
|
@@ -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
|
-
|
|
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
|
data/lib/kettle/soup/cover.rb
CHANGED
|
@@ -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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
371
|
-
changelog_uri: https://github.com/kettle-dev/kettle-soup-cover/blob/v3.0.
|
|
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.
|
|
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
|