kettle-soup-cover 3.0.3 → 3.0.5
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 +0 -0
- data/CHANGELOG.md +51 -1
- data/LICENSE.md +1 -1
- data/README.md +8 -6
- data/exe/kettle-soup-cover +15 -0
- data/lib/kettle/soup/cover/version.rb +1 -1
- data/lib/kettle/soup/cover.rb +21 -0
- data.tar.gz.sig +0 -0
- metadata +7 -7
- 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: f2cab70ab3f9e1e85974e719bb6dd704ba4d4626f4fb747921d06d1610816d0c
|
|
4
|
+
data.tar.gz: 3d168113fdd9abdd21058e74062cc82092eb0dee897713ab81f4efa846340da5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 28b7c4f8fc0623d46affb22731a83a07ca4ea29382552f2ec6b395463af701fe30f238e0c34c6de3d0edf0bb09bad63e62607152b781cc0e669da84a5488c66e
|
|
7
|
+
data.tar.gz: ceeb87044089392d5d3b1fc71e90013c3a4ae108522c18e3a73971f54e556b06ee3d30b966b2a3ba64e657c9f60c1e3e502b7f3deeb44a248346d65415bcc946
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,52 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [3.0.5] - 2026-07-25
|
|
34
|
+
|
|
35
|
+
- TAG: [v3.0.5][3.0.5t]
|
|
36
|
+
- COVERAGE: 100.00% -- 257/257 lines in 12 files
|
|
37
|
+
- BRANCH COVERAGE: 93.24% -- 69/74 branches in 12 files
|
|
38
|
+
- 16.90% documented
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- The `kettle-soup-cover` executable now supports `-v` / `--version` and prints
|
|
43
|
+
a standard startup header on normal runs.
|
|
44
|
+
|
|
45
|
+
- kettle-jem-template-20260725-001 - Generated JRuby and TruffleRuby workflow
|
|
46
|
+
files now run when pull request head branches start with `feature/release`,
|
|
47
|
+
so release CI monitoring does not report intentionally skipped engine
|
|
48
|
+
workflows as failures.
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- The `kettle-soup-cover` executable now uses normal `require` loading for its
|
|
53
|
+
version file, avoiding `require_relative` lint drift in shipped executables.
|
|
54
|
+
|
|
55
|
+
- Turbo test coverage collation now disables SimpleCov's process-exit formatter
|
|
56
|
+
after the explicit collate report, preventing duplicate coverage reports from
|
|
57
|
+
one `turbo_tests2` run.
|
|
58
|
+
|
|
59
|
+
## [3.0.4] - 2026-07-21
|
|
60
|
+
|
|
61
|
+
- TAG: [v3.0.4][3.0.4t]
|
|
62
|
+
- COVERAGE: 100.00% -- 243/243 lines in 12 files
|
|
63
|
+
- BRANCH COVERAGE: 94.12% -- 64/68 branches in 12 files
|
|
64
|
+
- 16.18% documented
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
|
|
68
|
+
- kettle-jem-template-20260720-001 - Generated READMEs can now render
|
|
69
|
+
template-managed corporate sponsor logos from project or family config.
|
|
70
|
+
- kettle-jem-template-20260720-002 - Generated development Gemfiles now use the
|
|
71
|
+
released `tree_sitter_language_pack` gem 1.13.3 or newer by default.
|
|
72
|
+
- kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver
|
|
73
|
+
config now uses the installed `smorg-rb` Ruby driver name.
|
|
74
|
+
- kettle-jem-template-20260720-004 - Generated multi-engine workflow files now
|
|
75
|
+
omit JRuby and TruffleRuby jobs when project config declares MRI-only engines.
|
|
76
|
+
- kettle-jem-template-20260720-005 - Generated README Support & Community rows
|
|
77
|
+
now include a RubyForum help badge.
|
|
78
|
+
|
|
33
79
|
## [3.0.3] - 2026-07-19
|
|
34
80
|
|
|
35
81
|
- TAG: [v3.0.3][3.0.3t]
|
|
@@ -576,7 +622,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
576
622
|
|
|
577
623
|
- Initial release
|
|
578
624
|
|
|
579
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.
|
|
625
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.5...HEAD
|
|
626
|
+
[3.0.5]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.4...v3.0.5
|
|
627
|
+
[3.0.5t]: https://github.com/kettle-dev/kettle-soup-cover/releases/tag/v3.0.5
|
|
628
|
+
[3.0.4]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.3...v3.0.4
|
|
629
|
+
[3.0.4t]: https://github.com/kettle-dev/kettle-soup-cover/releases/tag/v3.0.4
|
|
580
630
|
[3.0.3]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.2...v3.0.3
|
|
581
631
|
[3.0.3t]: https://github.com/kettle-dev/kettle-soup-cover/releases/tag/v3.0.3
|
|
582
632
|
[3.0.2]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.1...v3.0.2
|
data/LICENSE.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
This project is made available under the following license.
|
|
4
4
|
Choose the option that best fits your use case:
|
|
5
5
|
|
|
6
|
-
- [AGPL-3.0-only](AGPL-3.0-only.md)
|
|
6
|
+
- [AGPL-3.0-only](https://github.com/kettle-dev/kettle-soup-cover/blob/main/AGPL-3.0-only.md)
|
|
7
7
|
|
|
8
8
|
If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
|
|
9
9
|
|
data/README.md
CHANGED
|
@@ -85,8 +85,8 @@ where this library is considered a package of [SOUP](https://en.wikipedia.org/wi
|
|
|
85
85
|
| Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] [![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]|
|
|
86
86
|
| Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
|
|
87
87
|
| Works with MRI Ruby 3 | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
|
|
88
|
-
| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork] [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor] |
|
|
89
|
-
| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on
|
|
88
|
+
| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Get help from RubyForum][✉️ruby-forum-img]][✉️ruby-forum] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork] [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor] |
|
|
89
|
+
| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on GitHub.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
|
|
90
90
|
| Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
|
|
91
91
|
| Compliance | [![License: AGPL-3.0-only][📄license-img]][📄license] [![Apache license compatibility: Category X][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
|
|
92
92
|
| Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
|
|
@@ -613,7 +613,7 @@ See [CHANGELOG.md][📌changelog] for a list of releases.
|
|
|
613
613
|
|
|
614
614
|
## 📄 License
|
|
615
615
|
|
|
616
|
-
The gem is available under the following license: [AGPL-3.0-only](AGPL-3.0-only.md).
|
|
616
|
+
The gem is available under the following license: [AGPL-3.0-only](https://github.com/kettle-dev/kettle-soup-cover/blob/main/AGPL-3.0-only.md).
|
|
617
617
|
See [LICENSE.md][📄license] for details.
|
|
618
618
|
|
|
619
619
|
If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
|
|
@@ -683,6 +683,8 @@ Thanks for RTFM. ☺️
|
|
|
683
683
|
[✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
|
|
684
684
|
[✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
|
|
685
685
|
[✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
|
|
686
|
+
[✉️ruby-forum-img]: https://img.shields.io/badge/RubyForum-Help-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
687
|
+
[✉️ruby-forum]: https://www.rubyforum.org/c/help/8
|
|
686
688
|
|
|
687
689
|
[✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
688
690
|
[⛳️gem-namespace]: https://github.com/kettle-dev/kettle-soup-cover
|
|
@@ -728,7 +730,7 @@ Thanks for RTFM. ☺️
|
|
|
728
730
|
[📜src-gl]: https://gitlab.com/kettle-dev/kettle-soup-cover
|
|
729
731
|
[📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
|
|
730
732
|
[📜src-cb]: https://codeberg.org/kettle-dev/kettle-soup-cover
|
|
731
|
-
[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=
|
|
733
|
+
[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=GitHub&logoColor=green
|
|
732
734
|
[📜src-gh]: https://github.com/kettle-dev/kettle-soup-cover
|
|
733
735
|
[📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
|
|
734
736
|
[📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
|
|
@@ -812,12 +814,12 @@ Thanks for RTFM. ☺️
|
|
|
812
814
|
[📌gitmoji]: https://gitmoji.dev
|
|
813
815
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
814
816
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
815
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.
|
|
817
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.257-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
816
818
|
[🔐security]: https://github.com/kettle-dev/kettle-soup-cover/blob/main/SECURITY.md
|
|
817
819
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
818
820
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
819
821
|
[📄license]: LICENSE.md
|
|
820
|
-
[📄license-ref]: AGPL-3.0-only.md
|
|
822
|
+
[📄license-ref]: https://github.com/kettle-dev/kettle-soup-cover/blob/main/AGPL-3.0-only.md
|
|
821
823
|
[📄license-img]: https://img.shields.io/badge/License-AGPL--3.0--only-259D6C.svg
|
|
822
824
|
[📄license-compat]: https://www.apache.org/legal/resolved.html#category-x
|
|
823
825
|
[📄license-compat-img]: https://img.shields.io/badge/Apache_Incompatible:_Category_X-%E2%9C%97-C0392B.svg?style=flat&logo=Apache
|
data/exe/kettle-soup-cover
CHANGED
|
@@ -15,6 +15,17 @@
|
|
|
15
15
|
|
|
16
16
|
require "json"
|
|
17
17
|
require "optparse"
|
|
18
|
+
|
|
19
|
+
script_basename = File.basename(__FILE__)
|
|
20
|
+
repo_lib = File.expand_path("../lib", __dir__)
|
|
21
|
+
$LOAD_PATH.unshift(repo_lib) if File.directory?(repo_lib) && !$LOAD_PATH.include?(repo_lib)
|
|
22
|
+
|
|
23
|
+
require "kettle/soup/cover/version"
|
|
24
|
+
if ARGV.any? { |arg| arg == "-v" || arg == "--version" }
|
|
25
|
+
puts Kettle::Soup::Cover::Version::VERSION
|
|
26
|
+
exit(0)
|
|
27
|
+
end
|
|
28
|
+
|
|
18
29
|
require "kettle/soup/cover"
|
|
19
30
|
|
|
20
31
|
file_filter = nil
|
|
@@ -38,6 +49,7 @@ opts = OptionParser.new do |opt|
|
|
|
38
49
|
puts opt
|
|
39
50
|
exit
|
|
40
51
|
end
|
|
52
|
+
opt.on("-v", "--version", "Show version") {}
|
|
41
53
|
opt.on("-l", "--lines", "Show only line coverage") { @show_lines = true }
|
|
42
54
|
opt.on("-b", "--branches", "Show only branch coverage") { @show_branches = true }
|
|
43
55
|
opt.on("--no-lines", "Don't include line coverage") { @show_lines = false }
|
|
@@ -45,6 +57,9 @@ opts = OptionParser.new do |opt|
|
|
|
45
57
|
end
|
|
46
58
|
|
|
47
59
|
opts.parse!(ARGV)
|
|
60
|
+
|
|
61
|
+
puts "== #{script_basename} v#{Kettle::Soup::Cover::Version::VERSION} =="
|
|
62
|
+
|
|
48
63
|
# If a positional arg is present (leftover after parsing) treat it as coverage json path
|
|
49
64
|
project_root = Dir.pwd
|
|
50
65
|
coverage_dir = File.expand_path(Kettle::Soup::Cover::COVERAGE_DIR, project_root)
|
data/lib/kettle/soup/cover.rb
CHANGED
|
@@ -81,11 +81,16 @@ module Kettle
|
|
|
81
81
|
Dir[File.join(turbo_tests_coverage_dir(coverage_dir, project_root: project_root), "*", "coverage.json")]
|
|
82
82
|
end
|
|
83
83
|
|
|
84
|
+
def turbo_tests_collation_marker_path(coverage_dir = Constants::COVERAGE_ROOT_DIR, project_root: Dir.pwd)
|
|
85
|
+
File.expand_path(File.join(coverage_dir, ".turbo_tests_collated"), project_root)
|
|
86
|
+
end
|
|
87
|
+
|
|
84
88
|
def collate_turbo_tests_coverage!(coverage_dir = Constants::COVERAGE_ROOT_DIR, project_root: Dir.pwd)
|
|
85
89
|
return :disabled unless turbo_tests_coverage?
|
|
86
90
|
|
|
87
91
|
resultsets = turbo_tests_resultset_paths(coverage_dir, project_root: project_root)
|
|
88
92
|
return :empty if resultsets.empty?
|
|
93
|
+
return :already_collated if turbo_tests_collated?(resultsets, coverage_dir, project_root: project_root)
|
|
89
94
|
|
|
90
95
|
require "simplecov"
|
|
91
96
|
|
|
@@ -106,11 +111,27 @@ module Kettle
|
|
|
106
111
|
end
|
|
107
112
|
end
|
|
108
113
|
|
|
114
|
+
SimpleCov.external_at_exit = true if SimpleCov.respond_to?(:external_at_exit=)
|
|
109
115
|
publish_turbo_tests_json_coverage!(coverage_dir, project_root: project_root)
|
|
116
|
+
mark_turbo_tests_collated!(coverage_dir, project_root: project_root)
|
|
110
117
|
|
|
111
118
|
:collated
|
|
112
119
|
end
|
|
113
120
|
|
|
121
|
+
def turbo_tests_collated?(resultsets, coverage_dir = Constants::COVERAGE_ROOT_DIR, project_root: Dir.pwd)
|
|
122
|
+
marker_path = turbo_tests_collation_marker_path(coverage_dir, project_root: project_root)
|
|
123
|
+
return false unless File.file?(marker_path)
|
|
124
|
+
|
|
125
|
+
marker_mtime = File.mtime(marker_path)
|
|
126
|
+
resultsets.all? { |path| File.file?(path) && File.mtime(path) <= marker_mtime }
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def mark_turbo_tests_collated!(coverage_dir = Constants::COVERAGE_ROOT_DIR, project_root: Dir.pwd)
|
|
130
|
+
marker_path = turbo_tests_collation_marker_path(coverage_dir, project_root: project_root)
|
|
131
|
+
FileUtils.mkdir_p(File.dirname(marker_path))
|
|
132
|
+
FileUtils.touch(marker_path)
|
|
133
|
+
end
|
|
134
|
+
|
|
114
135
|
def publish_turbo_tests_json_coverage!(coverage_dir = Constants::COVERAGE_ROOT_DIR, project_root: Dir.pwd)
|
|
115
136
|
paths = turbo_tests_json_paths(coverage_dir, project_root: project_root)
|
|
116
137
|
return :empty if paths.empty?
|
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.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -248,7 +248,7 @@ dependencies:
|
|
|
248
248
|
version: '2.0'
|
|
249
249
|
- - ">="
|
|
250
250
|
- !ruby/object:Gem::Version
|
|
251
|
-
version: 2.0.
|
|
251
|
+
version: 2.0.15
|
|
252
252
|
type: :development
|
|
253
253
|
prerelease: false
|
|
254
254
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -258,7 +258,7 @@ dependencies:
|
|
|
258
258
|
version: '2.0'
|
|
259
259
|
- - ">="
|
|
260
260
|
- !ruby/object:Gem::Version
|
|
261
|
-
version: 2.0.
|
|
261
|
+
version: 2.0.15
|
|
262
262
|
- !ruby/object:Gem::Dependency
|
|
263
263
|
name: turbo_tests2
|
|
264
264
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -367,10 +367,10 @@ licenses:
|
|
|
367
367
|
- AGPL-3.0-only
|
|
368
368
|
metadata:
|
|
369
369
|
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.
|
|
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
|
|
372
372
|
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.
|
|
373
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-soup-cover/3.0.5
|
|
374
374
|
funding_uri: https://github.com/sponsors/pboling
|
|
375
375
|
wiki_uri: https://github.com/kettle-dev/kettle-soup-cover/wiki
|
|
376
376
|
news_uri: https://www.railsbling.com/tags/kettle-soup-cover
|
|
@@ -400,7 +400,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
400
400
|
- !ruby/object:Gem::Version
|
|
401
401
|
version: '0'
|
|
402
402
|
requirements: []
|
|
403
|
-
rubygems_version: 4.0.
|
|
403
|
+
rubygems_version: 4.0.17
|
|
404
404
|
specification_version: 4
|
|
405
405
|
summary: "\U0001F958 kettle-dev OOTB SimpleCov config supporting every CI platform
|
|
406
406
|
& coverage tool"
|
metadata.gz.sig
CHANGED
|
Binary file
|