kettle-soup-cover 3.0.4 → 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 +29 -1
- data/LICENSE.md +1 -1
- data/README.md +5 -5
- 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,32 @@ 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
|
+
|
|
33
59
|
## [3.0.4] - 2026-07-21
|
|
34
60
|
|
|
35
61
|
- TAG: [v3.0.4][3.0.4t]
|
|
@@ -596,7 +622,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
596
622
|
|
|
597
623
|
- Initial release
|
|
598
624
|
|
|
599
|
-
[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
|
|
600
628
|
[3.0.4]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.3...v3.0.4
|
|
601
629
|
[3.0.4t]: https://github.com/kettle-dev/kettle-soup-cover/releases/tag/v3.0.4
|
|
602
630
|
[3.0.3]: https://github.com/kettle-dev/kettle-soup-cover/compare/v3.0.2...v3.0.3
|
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
|
@@ -86,7 +86,7 @@ where this library is considered a package of [SOUP](https://en.wikipedia.org/wi
|
|
|
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
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
|
|
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.
|
|
@@ -730,7 +730,7 @@ Thanks for RTFM. ☺️
|
|
|
730
730
|
[📜src-gl]: https://gitlab.com/kettle-dev/kettle-soup-cover
|
|
731
731
|
[📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
|
|
732
732
|
[📜src-cb]: https://codeberg.org/kettle-dev/kettle-soup-cover
|
|
733
|
-
[📜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
|
|
734
734
|
[📜src-gh]: https://github.com/kettle-dev/kettle-soup-cover
|
|
735
735
|
[📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
|
|
736
736
|
[📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
|
|
@@ -814,12 +814,12 @@ Thanks for RTFM. ☺️
|
|
|
814
814
|
[📌gitmoji]: https://gitmoji.dev
|
|
815
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
|
|
816
816
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
817
|
-
[🧮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
|
|
818
818
|
[🔐security]: https://github.com/kettle-dev/kettle-soup-cover/blob/main/SECURITY.md
|
|
819
819
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
820
820
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
821
821
|
[📄license]: LICENSE.md
|
|
822
|
-
[📄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
|
|
823
823
|
[📄license-img]: https://img.shields.io/badge/License-AGPL--3.0--only-259D6C.svg
|
|
824
824
|
[📄license-compat]: https://www.apache.org/legal/resolved.html#category-x
|
|
825
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
|