kettle-test 1.0.10 → 2.0.1

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: 79fc981181a8f3b48ffa133eeeea78ad356c5f1bc2816facd7890196b818ca4a
4
- data.tar.gz: 301dffb357aa9de2b960e8b7e8026f10d9d3d3770f39beda8856fdecf3e68828
3
+ metadata.gz: 29bb20818a80f275c15b25bef0078baca3d702d7a37e192c58ef9b5cf6363f07
4
+ data.tar.gz: 9c57bdc7c6fe26a0c2f2889c07c1575042cfeb1eb4bf378669551d84d01c453f
5
5
  SHA512:
6
- metadata.gz: 5f71ae20e1df354bd9a7df27798bcbcbbc72c18e2d37675887a4b5fae0c71f61d4303963147cad26c3bbc6e236a318f478f60f961416069d895f471b2c481cc4
7
- data.tar.gz: 3e49306564d004d2660f7c097a65dcb193bd475de691f43e960eb54229db76af340b55d2b28a080257761a45ae2af805098dd7f35d2079029e99ff38ddf5c0dc
6
+ metadata.gz: 82aa8c0ce12527b49efc55f43ee3d6354ef14b0839b0bc234ef20779c6a6cb780ad536793fbc86229940f44671d288d43bdc902dcb64d336530bd54d7a6f20ba
7
+ data.tar.gz: de92fabfcfc30947573b6b68ce1818794256d565a06149e2b69d57e7b7327b9f45b474c039c2f0228641cebb5ebb755887178a7b06ebc3fc7062b94b3982b941
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,62 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.0.1] - 2026-05-25
34
+
35
+ - TAG: [v2.0.1][2.0.1t]
36
+ - COVERAGE: 100.00% -- 91/91 lines in 15 files
37
+ - BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
38
+ - 90.00% documented
39
+
40
+ ### Changed
41
+
42
+ - Refreshed generated project templates and CI workflows.
43
+ - Refreshed project templating and generated documentation after the 2.0.0
44
+ release.
45
+ - Pruned generated binstubs to the current curated kettle-jem set.
46
+ - Updated local modular Gemfile sibling wiring for coverage, documentation, and templating.
47
+ - Updated the coverage bundle to require `kettle-soup-cover` 1.1.3 or newer.
48
+
49
+ ### Fixed
50
+
51
+ - `kettle-test` now invokes `kettle-soup-cover`'s turbo coverage setup and
52
+ cleanup APIs directly around the default `turbo_tests2` runner, so collated
53
+ coverage artifacts are published even when the host Rakefile does not load the
54
+ optional turbo coverage rake tasks.
55
+ - `kettle-test --help` now prints usage and exits without creating
56
+ `tmp/kettle-test` logs or invoking the configured test runner.
57
+
58
+ ## [2.0.0] - 2026-05-23
59
+
60
+ - TAG: [v2.0.0][2.0.0t]
61
+ - COVERAGE: 100.00% -- 91/91 lines in 15 files
62
+ - BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
63
+ - 90.00% documented
64
+
65
+ ### Added
66
+
67
+ - Added the `kettle-test` executable, which runs RSpec through Bundler, captures
68
+ full output under `tmp/kettle-test/`, and prints a compact failure, seed,
69
+ timing, and coverage summary.
70
+ - Added default `kettle/test/rspec` integration coverage for exported RSpec
71
+ helpers and configuration constants.
72
+
73
+ ### Changed
74
+
75
+ - `kettle-test` now runs specs through `turbo_tests2` by default, with
76
+ `KETTLE_TEST_RUNNER=rspec` available as an opt-out for direct RSpec runs.
77
+ - Added `KETTLE_TEST_TURBO_PROCESSES`, `KETTLE_TEST_TURBO_RUNTIME_LOG`, and
78
+ `KETTLE_TEST_TURBO_NICE` controls for the default `turbo_tests2` runner.
79
+ - Switched the coverage test stack to `turbo_tests2 ~> 3.0`.
80
+ - Migrated local development dependency wiring to the current nomono-based
81
+ modular Gemfile pattern used by the kettle-rb template.
82
+ - Refreshed project templating, CI workflows, and release support files from the
83
+ current kettle-jem full template.
84
+ - Changed the project license metadata and generated license files to
85
+ `AGPL-3.0-only`.
86
+ - Dropped support for Ruby 2.3 because `turbo_tests2` is now a runtime
87
+ dependency and requires Ruby 2.4 or newer.
88
+
33
89
  ## [1.0.10] - 2026-02-06
34
90
 
35
91
  - TAG: [v1.0.10][1.0.10t]
@@ -200,7 +256,11 @@ Please file a bug if you notice a violation of semantic versioning.
200
256
  - silent_stream
201
257
  - timecop-rspec
202
258
 
203
- [Unreleased]: https://github.com/kettle-rb/kettle-test/compare/v1.0.10...HEAD
259
+ [Unreleased]: https://github.com/kettle-rb/kettle-test/compare/v2.0.1...HEAD
260
+ [2.0.1]: https://github.com/kettle-rb/kettle-test/compare/v2.0.0...v2.0.1
261
+ [2.0.1t]: https://github.com/kettle-rb/kettle-test/releases/tag/v2.0.1
262
+ [2.0.0]: https://github.com/kettle-rb/kettle-test/compare/v1.0.10...v2.0.0
263
+ [2.0.0t]: https://github.com/kettle-rb/kettle-test/releases/tag/v2.0.0
204
264
  [1.0.10]: https://github.com/kettle-rb/kettle-test/compare/v1.0.9...v1.0.10
205
265
  [1.0.10t]: https://github.com/kettle-rb/kettle-test/releases/tag/v1.0.10
206
266
  [1.0.9]: https://github.com/kettle-rb/kettle-test/compare/v1.0.8...v1.0.9
data/CITATION.cff CHANGED
@@ -1,19 +1,19 @@
1
1
  cff-version: 1.2.0
2
- title: kettle-test
2
+ title: "kettle-test"
3
3
  message: >-
4
4
  If you use this work and you want to cite it,
5
5
  then you can use the metadata from this file.
6
6
  type: software
7
7
  authors:
8
- - given-names: Peter Hurn
9
- family-names: Boling
10
- email: peter@railsbling.com
11
- affiliation: railsbling.com
8
+ - given-names: "Peter H."
9
+ family-names: "Boling"
10
+ email: "floss@galtzo.com"
11
+ affiliation: "galtzo.com"
12
12
  orcid: 'https://orcid.org/0009-0008-8519-441X'
13
13
  identifiers:
14
14
  - type: url
15
15
  value: 'https://github.com/kettle-rb/kettle-test'
16
- description: kettle-test
16
+ description: "kettle-test"
17
17
  repository-code: 'https://github.com/kettle-rb/kettle-test'
18
18
  abstract: >-
19
19
  kettle-test
data/CONTRIBUTING.md CHANGED
@@ -8,19 +8,27 @@ To submit a patch, please fork the project, create a patch with tests, and send
8
8
 
9
9
  Remember to [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] if you make changes.
10
10
 
11
+ ## Developer Certificate of Origin
12
+
13
+ In order to protect users of this project, we require all contributors to comply with the
14
+ [Developer Certificate of Origin](https://developercertificate.org/).
15
+ This ensures that all contributions are properly licensed and attributed.
16
+
11
17
  ## Help out!
12
18
 
13
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
19
+ Take a look at the open issues and pull requests, or use the gem and find something to improve.
14
20
 
15
21
  Follow these instructions:
16
22
 
17
- 1. Fork the repository
18
- 2. Create a feature branch (`git checkout -b my-new-feature`)
19
- 3. Make some fixes.
20
- 4. Commit changes (`git commit -am 'Added some feature'`)
21
- 5. Push to the branch (`git push origin my-new-feature`)
22
- 6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
23
- 7. Create new Pull Request.
23
+ 1. Join the Discord: [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]
24
+ 2. Fork the repository
25
+ 3. Create your feature branch (`git checkout -b my-new-feature`)
26
+ 4. Make some fixes.
27
+ 5. Commit your changes (`git commit -am 'Added some feature'`)
28
+ 6. Push to the branch (`git push origin my-new-feature`)
29
+ 7. Make sure to add tests for it. This is important, so it doesn't break in a future release.
30
+ 8. Create new Pull Request.
31
+ 9. Announce it in the channel for this org in the [Discord][✉️discord-invite]!
24
32
 
25
33
  ## Executables vs Rake tasks
26
34
 
@@ -42,6 +50,22 @@ There are many Rake tasks available as well. You can see them by running:
42
50
  bin/rake -T
43
51
  ```
44
52
 
53
+ ## Code quality checks
54
+
55
+ Run the Reek task when you want a smell check that fails on current findings:
56
+
57
+ ```shell
58
+ bin/rake reek
59
+ ```
60
+
61
+ Refresh the checked-in `REEK` backlog through the rake task, not by redirecting
62
+ the raw `reek` executable output. The rake task uses the project bundle and
63
+ avoids stale generated binstubs shadowing the Reek gem executable:
64
+
65
+ ```shell
66
+ bin/rake reek:update
67
+ ```
68
+
45
69
  ## Environment Variables for Local Development
46
70
 
47
71
  Below are the primary environment variables recognized by stone_checksums (and its integrated tools). Unless otherwise noted, set boolean values to the string "true" to enable.
@@ -52,7 +76,7 @@ General/runtime
52
76
  - CI: When set to true, adjusts default rake tasks toward CI behavior
53
77
 
54
78
  Coverage (kettle-soup-cover / SimpleCov)
55
- - K_SOUP_COV_DO: Enable coverage collection (default: true in .envrc)
79
+ - K_SOUP_COV_DO: Enable coverage collection (default: true in `mise.toml`)
56
80
  - K_SOUP_COV_FORMATTERS: Comma-separated list of formatters (html, xml, rcov, lcov, json, tty)
57
81
  - K_SOUP_COV_MIN_LINE: Minimum line coverage threshold (integer, e.g., 100)
58
82
  - K_SOUP_COV_MIN_BRANCH: Minimum branch coverage threshold (integer, e.g., 100)
@@ -78,7 +102,7 @@ Git hooks and commit message helpers (exe/kettle-commit-msg)
78
102
  - GIT_HOOK_FOOTER_SENTINEL: Required when footer append is enabled — a unique first-line sentinel to prevent duplicates
79
103
  - GIT_HOOK_FOOTER_APPEND_DEBUG: Extra debug output in the footer template (true/false)
80
104
 
81
- For a quick starting point, this repository’s `.envrc` shows sane defaults, and `.env.local` can override them locally.
105
+ For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
82
106
 
83
107
  ## Appraisals
84
108
 
@@ -97,22 +121,20 @@ bin/rake appraisal:reset
97
121
 
98
122
  When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
99
123
 
100
- ## The Reek List
101
-
102
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
124
+ ## Run Tests
103
125
 
104
- To refresh the `reek` list:
126
+ Run tests via `kettle-test` (provided by `kettle-test`). It runs RSpec, writes the full log to
127
+ `tmp/kettle-test/rspec-TIMESTAMP.log`, and prints a compact highlight block with timing, seed,
128
+ pass/fail count, failing example list, and SimpleCov coverage percentages.
105
129
 
106
130
  ```console
107
- bundle exec reek > REEK
131
+ bundle exec kettle-test
108
132
  ```
109
133
 
110
- ## Run Tests
111
-
112
- To run all tests
134
+ For targeted runs, disable the hard coverage threshold to avoid false failures:
113
135
 
114
136
  ```console
115
- bundle exec rake test
137
+ K_SOUP_COV_MIN_HARD=false bundle exec kettle-test spec/path/to/spec.rb
116
138
  ```
117
139
 
118
140
  ### Spec organization (required)
@@ -183,33 +205,34 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
183
205
  1. Run `bin/setup && bin/rake` as a "test, coverage, & linting" sanity check
184
206
  2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
185
207
  3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
186
- 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
187
- 5. Run `git push` to trigger the final CI pipeline before release, and merge PRs
208
+ 4. Run `bin/rake yard` to regenerate the docs site using the canonical docs task
209
+ 5. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
210
+ 6. Run `git push` to trigger the final CI pipeline before release, and merge PRs
188
211
  - NOTE: Remember to [check the build][🧪build].
189
- 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
190
- 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
191
- 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
192
- 9. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
212
+ 7. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
213
+ 8. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
214
+ 9. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
215
+ 10. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
193
216
  - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
194
217
  - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
195
218
  - If the echo above has no output, then it didn't work.
196
219
  - Note: `zsh/datetime` module is needed, if running `zsh`.
197
220
  - In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
198
- 10. Run `bundle exec rake build`
199
- 11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
221
+ 11. Run `bundle exec rake build`
222
+ 12. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
200
223
  to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
201
224
  [gem][💎stone_checksums].
202
225
  - The script automatically commits but does not push the checksums
203
- 12. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
226
+ 13. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
204
227
  - `sha256sum pkg/<gem name>-<version>.gem`
205
- 13. Run `bundle exec rake release` which will create a git tag for the version,
228
+ 14. Run `bundle exec rake release` which will create a git tag for the version,
206
229
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
207
230
 
208
- [📜src-gl]: https://gitlab.com/kettle-rb/kettle-test/
231
+ [📜src-gl]: https://gitlab.com/kettle-rb/kettle-test
209
232
  [📜src-cb]: https://codeberg.org/kettle-rb/kettle-test
210
233
  [📜src-gh]: https://github.com/kettle-rb/kettle-test
211
234
  [🧪build]: https://github.com/kettle-rb/kettle-test/actions
212
- [🤝conduct]: https://gitlab.com/kettle-rb/kettle-test/-/blob/main/CODE_OF_CONDUCT.md
235
+ [🤝conduct]: https://github.com/kettle-rb/kettle-test/blob/main/CODE_OF_CONDUCT.md
213
236
  [🖐contrib-rocks]: https://contrib.rocks
214
237
  [🖐contributors]: https://github.com/kettle-rb/kettle-test/graphs/contributors
215
238
  [🚎contributors-gl]: https://gitlab.com/kettle-rb/kettle-test/-/graphs/main
@@ -225,3 +248,4 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
225
248
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
226
249
  [🚎appraisal2]: https://github.com/appraisal-rb/appraisal2
227
250
  [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache
251
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
data/FUNDING.md CHANGED
@@ -19,7 +19,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
19
19
  [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
20
  [🖇polar]: https://polar.sh/pboling
21
21
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
22
+ [🖇kofi]: https://ko-fi.com/pboling
23
23
  [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
24
  [🖇patreon]: https://patreon.com/galtzo
25
25
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
data/LICENSE.md ADDED
@@ -0,0 +1,13 @@
1
+ # License
2
+
3
+ This project is made available under the following licenses.
4
+ Choose the option that best fits your use case:
5
+
6
+ - [AGPL-3.0-only](AGPL-3.0-only.md)
7
+ - [PolyForm-Small-Business-1.0.0](PolyForm-Small-Business-1.0.0.md)
8
+
9
+ If none of the above licenses fit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
10
+
11
+ ## Copyright Notice
12
+
13
+ Required Notice: Copyright (c) 2023, 2025-2026 Peter H. Boling