kettle-soup-cover 1.0.6 → 1.0.8
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 +33 -6
- data/LICENSE.txt +1 -1
- data/README.md +192 -45
- data/lib/kettle/soup/cover/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +9 -8
- 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: 845a2a9551817f3a48c4f590ffa8a71d0e5879adf8ca8a2aa0201570419594b6
|
4
|
+
data.tar.gz: 7a1cf496ef62a3f5bc7239f065aedd3aea9deacabfd3447b5532e26c0b254428
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8eaab2e494480a4f45b9c12ecd6bdc3c4cf08e5b8b0d8682b306b675b3f8e665c3bde45e721d214b1f40e12f691eb2471947e6f8779cf55287908fbc94c50ac
|
7
|
+
data.tar.gz: e5af690d297e7b9a09fbe638c4fe312f9dd36c748a1693f7fdaccc84d42be6211213cfe3c390826660fd1a3ed882228c466526f162eeba40b38bf074631b3dba
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -11,9 +11,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
11
11
|
### Fixed
|
12
12
|
### Removed
|
13
13
|
|
14
|
+
## [1.0.8] - 2025-05-20
|
15
|
+
- COVERAGE: 93.43% -- 128/137 lines in 10 files
|
16
|
+
- BRANCH COVERAGE: 50.00% -- 16/32 branches in 10 files
|
17
|
+
- 11.11% documented
|
18
|
+
### Added
|
19
|
+
- Link to discussions on GitHub
|
20
|
+
### Changed
|
21
|
+
- Fixed `spec.homepage` and `spec.source_code_uri` in gemspec
|
22
|
+
|
23
|
+
## [1.0.7] - 2025-05-20
|
24
|
+
- COVERAGE: 93.43% -- 128/137 lines in 10 files
|
25
|
+
- BRANCH COVERAGE: 50.00% -- 16/32 branches in 10 files
|
26
|
+
- 11.11% documented
|
27
|
+
### Added
|
28
|
+
- Document usage with minitest
|
29
|
+
- Document usage with https://github.com/irongut/CodeCoverageSummary
|
30
|
+
- Document usage with https://github.com/marocchino/sticky-pull-request-comment
|
31
|
+
- More documentation improvements
|
32
|
+
- Link to Discord
|
33
|
+
### Changed
|
34
|
+
- Gem build: Don't check for cert if SKIP_GEM_SIGNING is set
|
35
|
+
- Allows linux packaging systems to build gem without signing via rubygems
|
36
|
+
- Update homepage in gemspec
|
37
|
+
- Improved loading of version.rb in gemspec
|
38
|
+
|
14
39
|
## [1.0.6] - 2025-05-04
|
15
|
-
- COVERAGE:
|
16
|
-
- BRANCH COVERAGE:
|
40
|
+
- COVERAGE: 93.43% -- 128/137 lines in 10 files
|
41
|
+
- BRANCH COVERAGE: 50.00% -- 16/32 branches in 10 files
|
17
42
|
- 11.11% documented
|
18
43
|
### Added
|
19
44
|
- Support for linux, and other OSes, in `coverage` rake task
|
@@ -22,13 +47,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
22
47
|
- Set `export K_SOUP_COV_OPEN_BIN=open` to use macOS' `open` command in `coverage` task
|
23
48
|
- Set `export K_SOUP_COV_OPEN_BIN=xdg-open` to use Linux' `xdg-open` command in `coverage` task
|
24
49
|
- Set `export K_SOUP_COV_OPEN_BIN=` to just print the path to the HTML coverage report in `coverage` task
|
25
|
-
- Test coverage increased from 55 =>
|
26
|
-
- Test coverage increased from 25 =>
|
50
|
+
- Test coverage increased from 55 => 93 for lines
|
51
|
+
- Test coverage increased from 25 => 50 for branches
|
27
52
|
### Changed
|
28
53
|
- Refactored internals in ways that should not affect public APIs
|
29
54
|
- allows much greater test coverage
|
30
55
|
- report a bug if anything breaks!
|
31
|
-
- Going forward all releases will be signed by my key that expires 2045-
|
56
|
+
- Going forward all releases will be signed by my key that expires 2045-04-29
|
32
57
|
### Fixed
|
33
58
|
- require hooks such that both work equally well:
|
34
59
|
- `require "kettle/soup/cover"`
|
@@ -105,7 +130,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
105
130
|
## [0.1.0] - 2023-10-17
|
106
131
|
- Initial release
|
107
132
|
|
108
|
-
[Unreleased]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/compare/v1.0.
|
133
|
+
[Unreleased]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/compare/v1.0.8...HEAD
|
134
|
+
[1.0.8]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/compare/v1.0.7...v1.0.8
|
135
|
+
[1.0.7]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/compare/v1.0.6...v1.0.7
|
109
136
|
[1.0.6]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/compare/v1.0.5...v1.0.6
|
110
137
|
[1.0.5]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/compare/v1.0.4...v1.0.5
|
111
138
|
[1.0.4]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/compare/v1.0.3...v1.0.4
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2023 - 2025 Peter Boling (railsbling.com)
|
3
|
+
Copyright (c) 2023 - 2025 Peter H. Boling (railsbling.com)
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
</a>
|
5
5
|
</p>
|
6
6
|
|
7
|
-
# Kettle::Soup::Cover
|
7
|
+
# 🥘 Kettle::Soup::Cover
|
8
8
|
|
9
9
|
[![Version][👽versioni]][👽version]
|
10
10
|
[![License: MIT][📄license-img]][📄license-ref]
|
@@ -13,8 +13,8 @@
|
|
13
13
|
[![Depfu][🔑depfui♻️]][🔑depfu]
|
14
14
|
[![CodeCov Test Coverage][🔑codecovi♻️]][🔑codecov]
|
15
15
|
[![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls]
|
16
|
-
[![
|
17
|
-
[![Maintainability][🔑
|
16
|
+
[![QLTY Test Coverage][🔑qlty-covi♻️]][🔑qlty-cov]
|
17
|
+
[![QLTY Maintainability][🔑qlty-mnti♻️]][🔑qlty-mnt]
|
18
18
|
[![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf]
|
19
19
|
[![CI Current][🚎11-c-wfi]][🚎11-c-wf]
|
20
20
|
[![CI Supported][🚎6-s-wfi]][🚎6-s-wf]
|
@@ -22,6 +22,7 @@
|
|
22
22
|
[![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf]
|
23
23
|
[![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf]
|
24
24
|
[![CI Style][🚎5-st-wfi]][🚎5-st-wf]
|
25
|
+
[![CodeQL][🖐codeQL-img]][🖐codeQL]
|
25
26
|
|
26
27
|
---
|
27
28
|
|
@@ -32,15 +33,35 @@
|
|
32
33
|
[![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
|
33
34
|
[![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
|
34
35
|
|
35
|
-
Four lines of code to get a configured, curated, opinionated, set of dependencies for Test Coverage.
|
36
|
+
Four lines of code to get a configured, curated, opinionated, set of dependencies for Test Coverage, and that's *including* the two lines for `require "simplecov"`, and `SimpleCov.start`.
|
36
37
|
|
37
|
-
Configured for what? To work out of the box on every CI
|
38
|
+
Configured for what? To work out of the box on every CI*. Batteries included.
|
39
|
+
For apps and libraries. Any test framework. Many code coverage related GitHub Actions (example configs [1](#marocchinosticky-pull-request-comment), [2](#irongutcodecoveragesummary)).
|
40
|
+
|
41
|
+
| Test Framework | Helper | Config |
|
42
|
+
|----------------|-----------------------------|-------------------------------|
|
43
|
+
| MiniTest | [test helper][mini-helper] | [.simplecov][mini-simplecov] |
|
44
|
+
| RSpec | [spec helper][rpsec-helper] | [.simplecov][rspec-simplecov] |
|
45
|
+
|
46
|
+
[mini-helper]: https://github.com/pboling/silent_stream/blob/master/tests/test_silent_stream.rb
|
47
|
+
[mini-simplecov]: https://github.com/pboling/silent_stream/blob/master/.simplecov
|
48
|
+
[rpsec-helper]: https://github.com/oauth-xx/oauth2/blob/main/spec/spec_helper.rb
|
49
|
+
[rspec-simplecov]: https://github.com/oauth-xx/oauth2/blob/main/.simplecov
|
50
|
+
|
51
|
+
| Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
|
52
|
+
|--------------------------------------------------------|-------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
|
53
|
+
| 🧪 [kettle-rb/kettle-soup-cover on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜wiki] | 🏀 Tiny Matrix | ➖ |
|
54
|
+
| 🧊 [kettle-rb/kettle-soup-cover on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | ➖ | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
|
55
|
+
| 🐙 [kettle-rb/kettle-soup-cover on GitHub][📜src-gh] | A Dirty Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | ➖ | 💯 Full Matrix | [💚][gh-discussions] |
|
56
|
+
| 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
|
57
|
+
|
58
|
+
[gh-discussions]: https://github.com/kettle-rb/kettle-soup-cover/discussions
|
38
59
|
|
39
60
|
One of the major benefits of using this library is not having to figure
|
40
61
|
out how to get multiple coverage output formats working. I did that for you,
|
41
62
|
and I got all of them working, at the same time together, or al la carte. Kum-ba-ya.
|
42
63
|
|
43
|
-
A quick shot of
|
64
|
+
A quick shot of 12-factor coverage power, straight to your brain:
|
44
65
|
|
45
66
|
```shell
|
46
67
|
export K_SOUP_COV_DO=true # Means you want code coverage
|
@@ -63,19 +84,60 @@ where this library is considered a package of [SOUP](https://en.wikipedia.org/wi
|
|
63
84
|
|
64
85
|
</details>
|
65
86
|
|
87
|
+
## Format / Library x CI Matrix
|
88
|
+
|
89
|
+
This tool leverages other tools to make hard things easier, but sometimes those other tools break...
|
90
|
+
I'll try to track that here.
|
91
|
+
|
92
|
+
| Format | Library | Status | Web | Circle<br/>CI | Git<br/>Lab | Travis<br/>CI | Jenkins<br/>X | Jenkins | Hudson | Semaphore | Bit<br/>Bucket | Team<br/>City | 🤓<br/>Nerds |
|
93
|
+
|--------|----------------------------|-----------------------------------------------|-----|---------------|-------------|---------------|---------------|---------|--------|-----------|----------------|---------------|--------------|
|
94
|
+
| `html` | `simplecov-html` | ✅ | ✅ | | | | | | | | | | ✅ |
|
95
|
+
| `xml` | `simplecov-cobertura` | ⚠️ [works (with warnings); upvote #30!][sc30] | | | ✅ | | | ✅ | | | | | ✅ |
|
96
|
+
| `rcov` | `simplecov-rcov` | ✅ | | | | | | | ✅ | | | | ✅ |
|
97
|
+
| `lcov` | `simplecov-lcov` | ✅ | | ✅ | | ✅ | ✅ | | | ✅ | | ✅ | ✅ |
|
98
|
+
| `json` | `simplecov_json_formatter` | ✅ | | ✅ | | ✅ | ✅ | | | | ✅ | | ✅ |
|
99
|
+
| `tty` | `simplecov-console` | ✅ | | | | | | | | | | | ✅ |
|
100
|
+
|
101
|
+
If you find this working/not working different than above please open an issue / PR!
|
102
|
+
|
103
|
+
## ☝️ Not actually *every CI*
|
104
|
+
|
105
|
+
This gem does not add coverage parsing to CI's that don't have it, since that's impossible.
|
106
|
+
Vendor-specific formats which are not shared by other vendors are also not supported (e.g. BuildKite).
|
107
|
+
|
108
|
+
You'll have to configure them manually if you use them:
|
109
|
+
|
110
|
+
* BuildKite's custom [simplecov extension][buildkite-ext]
|
111
|
+
* GitHub Actions doesn't parse test output, but...
|
112
|
+
* I configure my `coverage` workflow ([see example][example-cov-wf]) to upload coverage reports to SaaS services like:
|
113
|
+
* [codecov.io][🔑codecov] (needs token for upload)
|
114
|
+
* [QLTY.sh][🔑cc-cov] (needs token for upload)
|
115
|
+
* [coveralls.io][🔑coveralls]
|
116
|
+
* This gem helps me configure my `coverage` workflow to use Github Actions designed to report coverage like:
|
117
|
+
* Repo: [irongut/CodeCoverageSummary][GHA-ccs-repo]
|
118
|
+
* Repo: [marocchino/sticky-pull-request-comment][GHA-sprc-repo]
|
119
|
+
|
120
|
+
|
121
|
+
[buildkite-ext]: https://github.com/buildkite/simplecov-buildkite
|
122
|
+
[example-cov-wf]: https://github.com/kettle-rb/kettle-soup-cover/blob/main/.github/workflows/coverage.yml
|
123
|
+
[sc30]: https://github.com/dashingrocket/simplecov-cobertura/issues/30
|
124
|
+
|
125
|
+
This library is based on ideas I originally introduced in the gem _[rspec-stubbed_env](https://github.com/pboling/rspec-stubbed_env)_.
|
126
|
+
|
66
127
|
## 💡 Info you can shake a stick at
|
67
128
|
|
68
|
-
| Tokens to Remember
|
69
|
-
|
70
|
-
| Works with MRI Ruby 3
|
71
|
-
| Works with MRI Ruby 2
|
72
|
-
| Source
|
73
|
-
| Documentation
|
74
|
-
| Compliance
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
129
|
+
| Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
|
130
|
+
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
131
|
+
| Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎6-s-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
|
132
|
+
| Works with MRI Ruby 2 | [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎7-us-wf] |
|
133
|
+
| 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] |
|
134
|
+
| Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![HEAD on RubyDoc.info][📜docs-head-rd-img]][🚎yard-head] [![BDFL Blog][🚂bdfl-blog-img]][🚂bdfl-blog] [![Wiki][📜wiki-img]][📜wiki] |
|
135
|
+
| Compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
|
136
|
+
| Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] |
|
137
|
+
| Support | [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite] [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork] [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor] |
|
138
|
+
| Enterprise Support | [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]<br/>💡Subscribe for support guarantees covering _all_ FLOSS dependencies!<br/>💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]!<br/>💡Tidelift pays maintainers to maintain the software you depend on!<br/>📊`@`Pointy Haired Boss: An [enterprise support][🏙️entsup-tidelift] subscription is "[never gonna let you down][🧮kloc]", and *supports* open source maintainers! |
|
139
|
+
| Comrade BDFL 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact BDFL][🚂bdfl-contact-img]][🚂bdfl-contact] [![My technical writing][💖💁🏼♂️devto-img]][💖💁🏼♂️devto] |
|
140
|
+
| `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼♂️aboutme-img]][💖💁🏼♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
|
79
141
|
|
80
142
|
## ✨ Installation
|
81
143
|
|
@@ -89,9 +151,11 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
89
151
|
|
90
152
|
### 🔒 Secure Installation
|
91
153
|
|
92
|
-
`kettle-soup-cover` is cryptographically signed
|
154
|
+
`kettle-soup-cover` is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
|
155
|
+
[stone_checksums][💎stone_checksums]. Be sure the gem you install hasn’t been tampered with
|
156
|
+
by following the instructions below.
|
93
157
|
|
94
|
-
Add my public key (if you haven’t already, expires 2045-
|
158
|
+
Add my public key (if you haven’t already, expires 2045-04-29) as a trusted certificate:
|
95
159
|
|
96
160
|
```shell
|
97
161
|
gem cert --add <(curl -Ls https://raw.github.com/kettle-rb/kettle-soup-cover/main/certs/pboling.pem)
|
@@ -103,9 +167,9 @@ You only need to do that once. Then proceed to install with:
|
|
103
167
|
gem install kettle-soup-cover -P MediumSecurity
|
104
168
|
```
|
105
169
|
|
106
|
-
The MediumSecurity trust profile will verify signed gems, but allow the installation of unsigned dependencies.
|
170
|
+
The `MediumSecurity` trust profile will verify signed gems, but allow the installation of unsigned dependencies.
|
107
171
|
|
108
|
-
This is necessary because not all of `kettle-soup-cover`’s dependencies are signed, so we cannot use HighSecurity
|
172
|
+
This is necessary because not all of `kettle-soup-cover`’s dependencies are signed, so we cannot use `HighSecurity`.
|
109
173
|
|
110
174
|
If you want to up your security game full-time:
|
111
175
|
|
@@ -117,21 +181,46 @@ NOTE: Be prepared to track down certs for signed gems and add them the same way
|
|
117
181
|
|
118
182
|
## 🔧 Basic Usage
|
119
183
|
|
120
|
-
|
184
|
+
### RSpec or MiniTest
|
185
|
+
|
186
|
+
In your `spec/spec_helper.rb` or `tests/test_helper.rb`, just before loading the library under test,
|
187
|
+
add two lines of code:
|
188
|
+
|
189
|
+
### With Ruby 2.7+
|
121
190
|
|
122
191
|
```ruby
|
123
|
-
# This does not require "simplecov",
|
124
|
-
# because that has a side effect of running `.simplecov`
|
125
192
|
require "kettle-soup-cover"
|
193
|
+
require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here!
|
194
|
+
# IMPORTANT: If you are using MiniTest instead of RSpec, also do this (and not in .simplecov):
|
195
|
+
# SimpleCov.external_at_exit = true
|
196
|
+
```
|
126
197
|
|
127
|
-
|
128
|
-
|
198
|
+
### Projects that run tests against older Ruby versions, e.g. with Appraisals
|
199
|
+
|
200
|
+
```ruby
|
201
|
+
# NOTE: Gemfiles for older rubies won't have kettle-soup-cover.
|
202
|
+
# The rescue LoadError handles that scenario.
|
203
|
+
begin
|
204
|
+
require "kettle-soup-cover"
|
205
|
+
|
206
|
+
if Kettle::Soup::Cover::DO_COV
|
207
|
+
require "simplecov" # `.simplecov` is run here!
|
208
|
+
|
209
|
+
# IMPORTANT: If you are using MiniTest instead of RSpec, also do this (and not in .simplecov):
|
210
|
+
# SimpleCov.external_at_exit = true
|
211
|
+
end
|
212
|
+
rescue LoadError => error
|
213
|
+
# check the error message, if you are so inclined, and re-raise if not what is expected
|
214
|
+
raise error unless error.message.include?("kettle")
|
215
|
+
end
|
129
216
|
```
|
130
217
|
|
218
|
+
### All projects
|
219
|
+
|
131
220
|
In your `.simplecov` file, add 2 lines of code:
|
132
221
|
|
133
222
|
```ruby
|
134
|
-
require "kettle/soup/cover/config"
|
223
|
+
require "kettle/soup/cover/config" # 12-factor, ENV-based configuration, with good defaults!
|
135
224
|
# you could do this somewhere else, up to you, but you do have to do it somewhere
|
136
225
|
SimpleCov.start
|
137
226
|
```
|
@@ -209,6 +298,53 @@ have their own complete suite of ENV variables you can configure.
|
|
209
298
|
[env-constants]: /lib/kettle/soup/cover.rb
|
210
299
|
[simplecov-console]: https://github.com/chetan/simplecov-console#options
|
211
300
|
|
301
|
+
#### Compatible with GitHub Actions for Code Coverage feedback in pull requests
|
302
|
+
|
303
|
+
If you don't want to configure a SaaS service to update your pull requests with
|
304
|
+
code coverage there are alternatives.
|
305
|
+
|
306
|
+
After the step that runs your test suite use one or more of the following.
|
307
|
+
|
308
|
+
##### irongut/CodeCoverageSummary
|
309
|
+
|
310
|
+
Repo: [irongut/CodeCoverageSummary][GHA-ccs-repo]
|
311
|
+
|
312
|
+
[GHA-ccs-repo]: https://github.com/irongut/CodeCoverageSummary
|
313
|
+
|
314
|
+
```yaml
|
315
|
+
|
316
|
+
- name: Code Coverage Summary Report
|
317
|
+
uses: irongut/CodeCoverageSummary@v1.3.0
|
318
|
+
if: ${{ github.event_name == 'pull_request' }}
|
319
|
+
with:
|
320
|
+
filename: ./coverage/coverage.xml
|
321
|
+
badge: true
|
322
|
+
fail_below_min: true
|
323
|
+
format: markdown
|
324
|
+
hide_branch_rate: false
|
325
|
+
hide_complexity: true
|
326
|
+
indicators: true
|
327
|
+
output: both
|
328
|
+
thresholds: '100 100' # '<MIN LINE COVERAGE> <MIN BRANCH COVERAGE>'
|
329
|
+
continue-on-error: ${{ matrix.experimental != 'false' }}
|
330
|
+
```
|
331
|
+
|
332
|
+
##### *marocchino/sticky-pull-request-comment*
|
333
|
+
|
334
|
+
Repo: [marocchino/sticky-pull-request-comment][GHA-sprc-repo]
|
335
|
+
|
336
|
+
[GHA-sprc-repo]: https://github.com/marocchino/sticky-pull-request-comment
|
337
|
+
|
338
|
+
```yaml
|
339
|
+
- name: Add Coverage PR Comment
|
340
|
+
uses: marocchino/sticky-pull-request-comment@v2
|
341
|
+
if: ${{ github.event_name == 'pull_request' }}
|
342
|
+
with:
|
343
|
+
recreate: true
|
344
|
+
path: code-coverage-results.md
|
345
|
+
continue-on-error: ${{ matrix.experimental != 'false' }}
|
346
|
+
```
|
347
|
+
|
212
348
|
### 🚀 Release Instructions
|
213
349
|
|
214
350
|
See [CONTRIBUTING.md][🤝contributing].
|
@@ -220,8 +356,7 @@ See [SECURITY.md][🔐security].
|
|
220
356
|
## 🤝 Contributing
|
221
357
|
|
222
358
|
If you need some ideas of where to help, you could work on adding more code coverage,
|
223
|
-
or if it is already 💯 (see [below](#code-coverage)) check
|
224
|
-
or check [issues][🤝issues], or [PRs][🤝pulls],
|
359
|
+
or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues], or [PRs][🤝gh-pulls],
|
225
360
|
or use the gem and think about how it could be better.
|
226
361
|
|
227
362
|
We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
|
@@ -322,7 +457,7 @@ or one of the others at the head of this README.
|
|
322
457
|
[![Buy me a latte][🖇buyme-img]][🖇buyme]
|
323
458
|
|
324
459
|
[✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
325
|
-
[⛳️gem-namespace]: https://github.com/kettle-rb/kettle-soup-cover
|
460
|
+
[⛳️gem-namespace]: https://github.com/kettle-rb/kettle-soup-cover
|
326
461
|
[⛳️namespace-img]: https://img.shields.io/badge/namespace-Kettle%3A%3ASoup%3A%3ACover-brightgreen.svg?style=flat&logo=ruby&logoColor=white
|
327
462
|
[⛳️gem-name]: https://rubygems.org/gems/kettle-soup-cover
|
328
463
|
[⛳️name-img]: https://img.shields.io/badge/name-kettle--soup--cover-brightgreen.svg?style=flat&logo=rubygems&logoColor=red
|
@@ -338,8 +473,8 @@ or one of the others at the head of this README.
|
|
338
473
|
[💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
|
339
474
|
[💖🐘ruby-mast]: https://ruby.social/@galtzo
|
340
475
|
[💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https%3A%2F%2Fruby.social&style=flat&logo=mastodon&label=Ruby%20%40galtzo
|
341
|
-
[💖🦋bluesky]: https://galtzo.
|
342
|
-
[💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.
|
476
|
+
[💖🦋bluesky]: https://bsky.app/profile/galtzo.com
|
477
|
+
[💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
|
343
478
|
[💖🌳linktree]: https://linktr.ee/galtzo
|
344
479
|
[💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
|
345
480
|
[💖💁🏼♂️devto]: https://dev.to/galtzo
|
@@ -375,10 +510,10 @@ or one of the others at the head of this README.
|
|
375
510
|
[👽oss-helpi]: https://www.codetriage.com/kettle-rb/kettle-soup-cover/badges/users.svg
|
376
511
|
[👽version]: https://rubygems.org/gems/kettle-soup-cover
|
377
512
|
[👽versioni]: https://img.shields.io/gem/v/kettle-soup-cover.svg
|
378
|
-
[🔑
|
379
|
-
[🔑
|
380
|
-
[🔑
|
381
|
-
[🔑
|
513
|
+
[🔑qlty-mnt]: https://qlty.sh/gh/kettle-rb/projects/kettle-soup-cover
|
514
|
+
[🔑qlty-mnti♻️]: https://qlty.sh/badges/75db1a51-b8ab-423a-b396-8b518067d8c3/maintainability.svg
|
515
|
+
[🔑qlty-cov]: https://qlty.sh/gh/kettle-rb/projects/kettle-soup-cover
|
516
|
+
[🔑qlty-covi♻️]: https://qlty.sh/badges/75db1a51-b8ab-423a-b396-8b518067d8c3/test_coverage.svg
|
382
517
|
[🔑codecov]: https://codecov.io/gh/kettle-rb/kettle-soup-cover
|
383
518
|
[🔑codecovi♻️]: https://codecov.io/gh/kettle-rb/kettle-soup-cover/branch/main/graph/badge.svg?token=0X5VEW9USD
|
384
519
|
[🔑coveralls]: https://coveralls.io/github/kettle-rb/kettle-soup-cover?branch=main
|
@@ -425,8 +560,13 @@ or one of the others at the head of this README.
|
|
425
560
|
[💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
426
561
|
[💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
|
427
562
|
[💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
|
428
|
-
[🤝issues]: https://github.com/kettle-rb/kettle-soup-cover/issues
|
429
|
-
[🤝pulls]: https://github.com/kettle-rb/kettle-soup-cover/pulls
|
563
|
+
[🤝gh-issues]: https://github.com/kettle-rb/kettle-soup-cover/issues
|
564
|
+
[🤝gh-pulls]: https://github.com/kettle-rb/kettle-soup-cover/pulls
|
565
|
+
[🤝gl-issues]: https://gitlab.com/oauth-xx/oauth2/-/issues
|
566
|
+
[🤝gl-pulls]: https://gitlab.com/oauth-xx/oauth2/-/merge_requests
|
567
|
+
[🤝cb-issues]: https://codeberg.org/oauth-xx/oauth2/issues
|
568
|
+
[🤝cb-pulls]: https://codeberg.org/oauth-xx/oauth2/pulls
|
569
|
+
[🤝cb-donate]: https://donate.codeberg.org/
|
430
570
|
[🤝contributing]: CONTRIBUTING.md
|
431
571
|
[🔑codecov-g♻️]: https://codecov.io/gh/kettle-rb/kettle-soup-cover/graphs/tree.svg?token=0X5VEW9USD
|
432
572
|
[🖐contrib-rocks]: https://contrib.rocks
|
@@ -434,26 +574,33 @@ or one of the others at the head of this README.
|
|
434
574
|
[🖐contributors-img]: https://contrib.rocks/image?repo=kettle-rb/kettle-soup-cover
|
435
575
|
[🚎contributors-gl]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/graphs/main
|
436
576
|
[🪇conduct]: CODE_OF_CONDUCT.md
|
437
|
-
[🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-
|
577
|
+
[🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
|
438
578
|
[📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
|
439
579
|
[📌semver]: https://semver.org/spec/v2.0.0.html
|
440
|
-
[📌semver-img]: https://img.shields.io/badge/semver-2.0.0-
|
580
|
+
[📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
|
441
581
|
[📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
|
442
582
|
[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
|
443
583
|
[📌changelog]: CHANGELOG.md
|
444
584
|
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
|
445
|
-
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-
|
585
|
+
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
|
446
586
|
[📌gitmoji]:https://gitmoji.dev
|
447
|
-
[📌gitmoji-img]:https://img.shields.io/badge/
|
587
|
+
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20😜%20😍-34495e.svg?style=flat-square
|
448
588
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
449
589
|
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.137-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
450
590
|
[🔐security]: SECURITY.md
|
451
|
-
[🔐security-img]: https://img.shields.io/badge/security-policy-
|
591
|
+
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
452
592
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
453
593
|
[📄license]: LICENSE.txt
|
454
594
|
[📄license-ref]: https://opensource.org/licenses/MIT
|
455
|
-
[📄license-img]: https://img.shields.io/badge/License-MIT-
|
595
|
+
[📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
|
456
596
|
[📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
|
457
|
-
[📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-
|
597
|
+
[📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
|
458
598
|
[🚎yard-current]: http://rubydoc.info/gems/kettle-soup-cover
|
459
599
|
[🚎yard-head]: https://rubydoc.info/github/kettle-rb/kettle-soup-cover/main
|
600
|
+
[💎stone_checksums]: https://github.com/pboling/stone_checksums
|
601
|
+
[💎SHA_checksums]: https://gitlab.com/kettle-rb/kettle-soup-cover/-/tree/main/checksums
|
602
|
+
[💎rlts]: https://github.com/rubocop-lts/rubocop-lts
|
603
|
+
[💎rlts-img]: https://img.shields.io/badge/code_style_%26_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
|
604
|
+
[💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
|
605
|
+
[✉️discord-invite]: https://discord.gg/3qme4XHNKN
|
606
|
+
[✉️discord-invite-img]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge
|
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: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Boling
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
|
36
36
|
L9nRqA==
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2025-05-
|
38
|
+
date: 2025-05-20 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: version_gem
|
@@ -432,17 +432,18 @@ files:
|
|
432
432
|
- lib/kettle/soup/cover/version.rb
|
433
433
|
- sig/kettle/soup/cover.rbs
|
434
434
|
- sig/kettle/soup/cover/version.rbs
|
435
|
-
homepage: https://
|
435
|
+
homepage: https://gitlab.com/kettle-rb/kettle-soup-cover
|
436
436
|
licenses:
|
437
437
|
- MIT
|
438
438
|
metadata:
|
439
439
|
homepage_uri: https://kettle-rb.gitlab.io/
|
440
|
-
source_code_uri: https://github.com/kettle-rb/kettle-soup-cover
|
441
|
-
changelog_uri: https://
|
442
|
-
bug_tracker_uri: https://
|
443
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-soup-cover/1.0.
|
444
|
-
wiki_uri: https://
|
440
|
+
source_code_uri: https://github.com/kettle-rb/kettle-soup-cover/-/tree/v1.0.8
|
441
|
+
changelog_uri: https://gitlab.com/kettle-rb/kettle-soup-cover/-/blob/v1.0.8/CHANGELOG.md
|
442
|
+
bug_tracker_uri: https://gitlab.com/kettle-rb/kettle-soup-cover/-/issues
|
443
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-soup-cover/1.0.8
|
444
|
+
wiki_uri: https://gitlab.com/kettle-rb/kettle-soup-cover/-/wiki
|
445
445
|
funding_uri: https://liberapay.com/pboling
|
446
|
+
news_uri: https://www.railsbling.com/tags/kettle-soup-cover
|
446
447
|
rubygems_mfa_required: 'true'
|
447
448
|
rdoc_options:
|
448
449
|
- "--title"
|
metadata.gz.sig
CHANGED
Binary file
|