kettle-dev 2.0.0 → 2.0.2

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: 1c27526850f356cd31b634aa7a0ea70c4f96664c2979629ecfdabcf128f6b437
4
- data.tar.gz: dca1af6fba35002062780e10688a42181eeb577804d48f3a367399fcf8da3262
3
+ metadata.gz: c3bad017c27149d9c7bf639bf70347f639d9301b3ce355c9a20eb7466f959df0
4
+ data.tar.gz: 8c96fb38ea79b64d55d2813725120518e1e3bcf2dda8396c8b2da1e3aa699d23
5
5
  SHA512:
6
- metadata.gz: 16221f6055e6d28aa959d11a8b57c047218565538b55b6066a0656b5b8c45273c78f7ee1521369c247b9c8b296a485da22e4fa99c92ed276a67e39997281a14e
7
- data.tar.gz: 71f4a045813776fba247aa28b728aaef9b4bfcc9013a806fdd9f5b49d99551aae505b34e8278c591e3a9c1d65bfb9581718460c10cf9a2354f17839fe0e6e191
6
+ metadata.gz: 21ad36073bf15fd42f052958148f8129138e4ab79195d524457ba5c29e206fd261f283b9b6616e7a41cc46b6455c27e1d763167f8b8e75655acf2cdaa1a5c713
7
+ data.tar.gz: fcef88758871ad5eb760e0671972c6ef389dd3d9037f5006ddd65d2d07c651c7778a86dd344e86815b37b0451833544ba10ef895db28c6fa5dd0221502013d95
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,95 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.0.2] - 2026-05-27
34
+
35
+ - TAG: [v2.0.2][2.0.2t]
36
+ - COVERAGE: 94.71% -- 2937/3101 lines in 23 files
37
+ - BRANCH COVERAGE: 78.23% -- 1200/1534 branches in 23 files
38
+ - 76.40% documented
39
+
40
+ ### Changed
41
+
42
+ - **BREAKING**: Raised the minimum Ruby version to 2.4.0, matching
43
+ `kettle-test` 2.x and its runtime `turbo_tests2` dependency.
44
+ - `kettle-test` is now declared as a runtime dependency because the shipped rake
45
+ and changelog tasks invoke `bundle exec kettle-test`.
46
+ - Refreshed generated template output for README badge formatting and
47
+ Ruby 2.4-targeted RuboCop LTS style dependencies.
48
+
49
+ ### Removed
50
+
51
+ - Removed Ruby 2.3 and JRuby 9.1 CI workflows and appraisal gemfiles.
52
+
53
+ ### Fixed
54
+
55
+ - `ci:act` and release CI monitoring now detect GitHub and GitLab repositories
56
+ when remotes use `git+ssh://` or `ssh://` URLs.
57
+ - Appraisal-based CI gemfiles now load the version-appropriate VCR/WebMock
58
+ recording dependencies required by the spec helper without falling back to the
59
+ root Gemfile.
60
+ - Reek, RuboCop-LTS, and coverage task specs now run in coverage CI without
61
+ requiring style-only dependencies.
62
+ - Reek rake task specs no longer change the process working directory, avoiding
63
+ cross-spec project root leakage under turbo workers.
64
+ - `rake reek:update` now raises a normal task error on unexpected reek exits
65
+ instead of calling `Kernel.abort`, so specs can assert the failure path without
66
+ poisoning the process exit status.
67
+ - Coverage CI thresholds now match the repository `mise.toml` thresholds instead
68
+ of requiring unreachable 100% line and branch coverage.
69
+ - `kettle-changelog` now fails closed when `kettle-test` does not produce the
70
+ expected collated `coverage/coverage.json`, instead of merging worker coverage
71
+ files itself and hiding a coverage integration failure.
72
+ - Regenerated templating now keeps `kettle-test` as a runtime dependency only
73
+ instead of duplicating it as both runtime and development dependency.
74
+ - Replaced non-capturing `=~` checks with `Regexp#match?` so unlocked/style CI
75
+ stays clean with newer RuboCop performance cops.
76
+ - Cleared the remaining `rubocop_gradual` backlog and removed the lock file.
77
+
78
+ ## [2.0.1] - 2026-05-25
79
+
80
+ - TAG: [v2.0.1][2.0.1t]
81
+ - COVERAGE: 94.88% -- 2911/3068 lines in 21 files
82
+ - BRANCH COVERAGE: 78.43% -- 1200/1530 branches in 21 files
83
+ - 76.25% documented
84
+
85
+ ### Added
86
+
87
+ - Added `kettle-changelog --update-prep` to refresh the most recent prepared
88
+ release section in place, including date, coverage, documentation stats, and
89
+ any follow-up Unreleased notes.
90
+
91
+ ### Changed
92
+
93
+ - `kettle-changelog` now generates strict coverage data with
94
+ `bundle exec kettle-test`, preserving the faster `turbo_tests2` runner.
95
+ - `kettle-changelog` now treats configured coverage thresholds as a changelog
96
+ preparation gate by default; use `--no-coverage-threshold` or
97
+ `K_CHANGELOG_COVERAGE_HARD=false` to generate changelog metadata without
98
+ threshold enforcement.
99
+ - The shared `rake spec` task now delegates to `bundle exec kettle-test`, so
100
+ projects using kettle-dev automatically pick up kettle-test's default
101
+ `turbo_tests2` runner and summary output.
102
+ - The shared `:yard` task now installs `yard-fence` and `yard-timekeeper` integrations explicitly so documentation prep and post-processing only run during `rake yard`
103
+
104
+ - Refreshed generated kettle-jem templates, CI workflows, curated binstubs, and
105
+ local modular Gemfile wiring.
106
+ - `kettle-changelog` now auto-selects the correct no-argument action by
107
+ comparing `version.rb`, the latest live release, and the most recent
108
+ CHANGELOG.md release section before prompting for confirmation.
109
+ - Updated the development dependency on `kettle-test` to require 2.0.1 or newer.
110
+
111
+ ### Fixed
112
+
113
+ - Loading YARD during unrelated rake tasks no longer triggers documentation plugin side effects that rewrite or clear `docs/`
114
+
115
+ - `rake reek:update` now resolves the Reek gem executable directly instead of
116
+ shelling through `bundle exec reek`, avoiding stale project binstubs, and no
117
+ longer fails the default task solely because Reek reported smells while
118
+ refreshing the `REEK` backlog file.
119
+ - `rake reek:update` now keeps `REEK` zero-byte when Reek reports no smells
120
+ instead of writing a single blank line.
121
+
33
122
  ## [2.0.0] - 2026-02-25
34
123
 
35
124
  - TAG: [v2.0.0][2.0.0t]
@@ -1674,7 +1763,11 @@ Please file a bug if you notice a violation of semantic versioning.
1674
1763
  - Selecting will run the selected workflow via `act`
1675
1764
  - This may move to its own gem in the future.
1676
1765
 
1677
- [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.0...HEAD
1766
+ [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.2...HEAD
1767
+ [2.0.2]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.1...v2.0.2
1768
+ [2.0.2t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v2.0.2
1769
+ [2.0.1]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.0...v2.0.1
1770
+ [2.0.1t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v2.0.1
1678
1771
  [2.0.0]: https://github.com/kettle-rb/kettle-dev/compare/v1.2.5...v2.0.0
1679
1772
  [2.0.0t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v2.0.0
1680
1773
  [1.2.5]: https://github.com/kettle-rb/kettle-dev/compare/v1.2.4...v1.2.5
data/CITATION.cff CHANGED
@@ -1,19 +1,19 @@
1
1
  cff-version: 1.2.0
2
- title: kettle-dev
2
+ title: "kettle-dev"
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: floss@galtzo.com
11
- affiliation: galtzo.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-dev'
16
- description: kettle-dev
16
+ description: "kettle-dev"
17
17
  repository-code: 'https://github.com/kettle-rb/kettle-dev'
18
18
  abstract: >-
19
19
  kettle-dev
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,11 +102,16 @@ 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
 
85
109
  From time to time the [appraisal2][🚎appraisal2] gemfiles in `gemfiles/` will need to be updated.
110
+ Generated appraisal and CI workflow floors are controlled by `ruby.test_minimum`
111
+ in `.kettle-jem.yml`; this project was templated with `ruby.test_minimum: 2.4`.
112
+ That value describes the lowest Ruby version expected to run the test/development
113
+ toolchain, and it may be higher than the gemspec runtime floor.
114
+
86
115
  They are created and updated with the commands:
87
116
 
88
117
  ```console
@@ -97,22 +126,20 @@ bin/rake appraisal:reset
97
126
 
98
127
  When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
99
128
 
100
- ## The Reek List
101
-
102
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
129
+ ## Run Tests
103
130
 
104
- To refresh the `reek` list:
131
+ Run tests via `kettle-test` (provided by `kettle-test`). It runs RSpec, writes the full log to
132
+ `tmp/kettle-test/rspec-TIMESTAMP.log`, and prints a compact highlight block with timing, seed,
133
+ pass/fail count, failing example list, and SimpleCov coverage percentages.
105
134
 
106
135
  ```console
107
- bundle exec reek > REEK
136
+ bundle exec kettle-test
108
137
  ```
109
138
 
110
- ## Run Tests
111
-
112
- To run all tests
139
+ For targeted runs, disable the hard coverage threshold to avoid false failures:
113
140
 
114
141
  ```console
115
- bundle exec rake test
142
+ K_SOUP_COV_MIN_HARD=false bundle exec kettle-test spec/path/to/spec.rb
116
143
  ```
117
144
 
118
145
  ### Spec organization (required)
@@ -183,33 +210,34 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
183
210
  1. Run `bin/setup && bin/rake` as a "test, coverage, & linting" sanity check
184
211
  2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
185
212
  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
213
+ 4. Run `bin/rake yard` to regenerate the docs site using the canonical docs task
214
+ 5. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
215
+ 6. Run `git push` to trigger the final CI pipeline before release, and merge PRs
188
216
  - 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
217
+ 7. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
218
+ 8. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
219
+ 9. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
220
+ 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
221
  - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
194
222
  - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
195
223
  - If the echo above has no output, then it didn't work.
196
224
  - Note: `zsh/datetime` module is needed, if running `zsh`.
197
225
  - 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])
226
+ 11. Run `bundle exec rake build`
227
+ 12. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
200
228
  to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
201
229
  [gem][💎stone_checksums].
202
230
  - 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:
231
+ 13. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
204
232
  - `sha256sum pkg/<gem name>-<version>.gem`
205
- 13. Run `bundle exec rake release` which will create a git tag for the version,
233
+ 14. Run `bundle exec rake release` which will create a git tag for the version,
206
234
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
207
235
 
208
- [📜src-gl]: https://gitlab.com/kettle-rb/kettle-dev/
236
+ [📜src-gl]: https://gitlab.com/kettle-rb/kettle-dev
209
237
  [📜src-cb]: https://codeberg.org/kettle-rb/kettle-dev
210
238
  [📜src-gh]: https://github.com/kettle-rb/kettle-dev
211
239
  [🧪build]: https://github.com/kettle-rb/kettle-dev/actions
212
- [🤝conduct]: https://gitlab.com/kettle-rb/kettle-dev/-/blob/main/CODE_OF_CONDUCT.md
240
+ [🤝conduct]: https://github.com/kettle-rb/kettle-dev/blob/main/CODE_OF_CONDUCT.md
213
241
  [🖐contrib-rocks]: https://contrib.rocks
214
242
  [🖐contributors]: https://github.com/kettle-rb/kettle-dev/graphs/contributors
215
243
  [🚎contributors-gl]: https://gitlab.com/kettle-rb/kettle-dev/-/graphs/main
@@ -225,3 +253,4 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
225
253
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
226
254
  [🚎appraisal2]: https://github.com/appraisal-rb/appraisal2
227
255
  [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache
256
+ [✉️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,12 @@
1
+ # License
2
+
3
+ This project is made available under the following license.
4
+ Choose the option that best fits your use case:
5
+
6
+ - [AGPL-3.0-only](AGPL-3.0-only.md)
7
+
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
+
10
+ ## Copyright Notice
11
+
12
+ Copyright (c) 2023, 2025-2026 Peter H. Boling