kettle-rb 0.1.17 → 0.1.18

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: d3a67dee10c54ea715bd24c351409646fcc8b2f878e3eda3b5187f4380840bf8
4
- data.tar.gz: 8e8007ca4447fdc5d52020aadf39bb2acc9b15c68a62641575f28652ec39f557
3
+ metadata.gz: 638c9c41bd338ec9c02c5b28242455a9363ffc074c9eea27d56b80f52bd3ef45
4
+ data.tar.gz: dc85a325a0656c0758f2b28c43f6ffc6d08f617a3158d3d19893f8ef9734645d
5
5
  SHA512:
6
- metadata.gz: 8e2a12df501f74a1df78cd89fe41c6351c0277277b200aa6d28bd50bca3e6e5a5bb91e784f654f902efd16f6b0d659f87a59980386c01bc9adbfb51f808fb8cf
7
- data.tar.gz: 183398084b775b5fb1ccc58fd78b5aa549fb052b1dce814fd3f2dcb6187bce242868959d80768baf49c7c1434122b0675e3d9696e1cdae5c890149bfe9d8dbd7
6
+ metadata.gz: ff3a5080c2909dd76134ca64888d976b6de43c7266df8b98b90035adb587a72bd4029fb28c19d6c051ce97e515784e08bc458374b166f67d292bcf3a6eaf6bae
7
+ data.tar.gz: d48a0590cd5c61339ff4f99a7b973f1dab67338b2b88dc8512c2d2b002a77f4c4a780487091c8a2f885bb36df7ca4428c69ccf444eb1bd9f86ba6adf9870f4e0
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,25 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [0.1.18] - 2026-10-15
34
+
35
+ - TAG: [v0.1.18][0.1.18t]
36
+ - COVERAGE: 100.00% -- 362/362 lines in 10 files
37
+ - BRANCH COVERAGE: 97.62% -- 41/42 branches in 10 files
38
+ - 61.90% documented
39
+
40
+ ### Changed
41
+
42
+ - [kc] kettle-jem/prepare: updated 19 project files:
43
+ - configuration (1)
44
+ - dependencies (18)
45
+
46
+ - [kc] kettle-jem/template: updated 33 project files:
47
+ - code and tests (2)
48
+ - documentation (1)
49
+ - other (1)
50
+ - workflows (29)
51
+
33
52
  ## [0.1.17] - 2026-10-10
34
53
 
35
54
  - TAG: [v0.1.17][0.1.17t]
@@ -363,7 +382,9 @@ Please file a bug if you notice a violation of semantic versioning.
363
382
  - Add `Kettle::Rb::CompatMatrix` as the shared Ruby, engine, Rails, RuboCop,
364
383
  and RuboCop LTS compatibility source of truth for kettle-dev tooling.
365
384
 
366
- [Unreleased]: https://github.com/kettle-dev/kettle-rb/compare/v0.1.17...HEAD
385
+ [Unreleased]: https://github.com/kettle-dev/kettle-rb/compare/v0.1.18...HEAD
386
+ [0.1.18]: https://github.com/kettle-dev/kettle-rb/compare/v0.1.17...v0.1.18
387
+ [0.1.18t]: https://github.com/kettle-dev/kettle-rb/releases/tag/v0.1.18
367
388
  [0.1.17]: https://github.com/kettle-dev/kettle-rb/compare/v0.1.15...v0.1.17
368
389
  [0.1.17t]: https://github.com/kettle-dev/kettle-rb/releases/tag/v0.1.17
369
390
  [0.1.15]: https://github.com/kettle-dev/kettle-rb/compare/v0.1.14...v0.1.15
data/README.md CHANGED
@@ -21,7 +21,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta
21
21
 
22
22
  ## 🌻 Synopsis <a href="https://discord.gg/3qme4XHNKN"><img alt="Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="8%" align="right"/></a> <a href="https://ruby-toolbox.com"><img alt="ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5" src="https://logos.galtzo.com/assets/images/ruby-lang/avatar-128px.svg" width="8%" align="right"/></a>
23
23
 
24
- `kettle-dev` is the small shared Ruby library for the kettle-dev toolchain.
24
+ `kettle-rb` is the small shared Ruby library for the kettle-dev toolchain.
25
25
 
26
26
  Its first public responsibility is `Kettle::Rb::CompatMatrix`: a single source
27
27
  of truth for Ruby engine compatibility data used by `kettle-jem`,
@@ -29,19 +29,34 @@ of truth for Ruby engine compatibility data used by `kettle-jem`,
29
29
  JRuby, and TruffleRuby versions, workflow Ruby buckets, RubyGems/Bundler
30
30
  policy, Rails appraisal hints, and RuboCop LTS selection data.
31
31
 
32
+ Its second public responsibility is `Kettle::Rb::PlatformSupport`: the
33
+ evidenced source of truth for OS-platform support claims. It names CI OS
34
+ families (`linux`, `macos`, `windows` — a fourth platform vocabulary, distinct
35
+ from Gemfile DSL platform symbols, `Gem::Platform` strings, and GitHub runner
36
+ labels), maps each family to a runner label, and records per-engine OS
37
+ support where every claim carries a citation. Data is regenerated from the
38
+ GitHub releases API and `ruby/setup-ruby` with
39
+ `rake kettle:rb:platform_support:generate`; unknown engine/OS pairs resolve
40
+ as unsupported so a missing claim can never invent CI coverage. These values
41
+ select runner labels only — they must never be passed to
42
+ `bundle lock --add-platform` or a Gemfile `platforms:` DSL without
43
+ translation.
44
+
32
45
  Use it when tooling needs to answer questions like:
33
46
 
34
47
  - Which Ruby workflow should represent this engine?
35
48
  - Which RuboCop LTS family matches a minimum supported Ruby?
36
49
  - Which `rubocop-rubyN_N` gem and rubocop-lts branch belong together?
37
50
  - Which Rails appraisal version is the newest stable target for a Ruby bucket?
51
+ - Which GitHub runner label does a CI OS family select, and which engines
52
+ are supported on that OS?
38
53
 
39
54
  ## 💡 Info you can shake a stick at
40
55
 
41
56
  | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
42
57
  |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
43
58
  | Works with JRuby | [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎jruby-9.2-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎jruby-9.3-wf] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎jruby-9.4-wf] [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
44
- | Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.0 Compat][💎truby-23.0i]][🚎truby-23.0-wf] [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![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]|
59
+ | Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![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]|
45
60
  | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
46
61
  | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![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]|
47
62
  | Works with MRI Ruby 2 | ![Ruby 2.0 Compat][💎ruby-2.0i] ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i] <br/> [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf]|
@@ -82,6 +97,23 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
82
97
 
83
98
  </details>
84
99
 
100
+ ### Runtime and Platform Support
101
+
102
+ Support tiers describe what this project's CI actually exercises, not what may
103
+ work in an untested environment:
104
+
105
+ - **Parallel support**: CI runs the test suite with multiple workers available.
106
+ - **Unsupported**: the engine/platform combination is not covered by CI and is
107
+ not a project compatibility claim.
108
+
109
+ | Ruby engine/version | Linux | macOS | Windows | Notes |
110
+ |---------------------|-------|-------|---------|-------|
111
+ | MRI 3.1-3.4 | Parallel support | Unsupported | Unsupported | Versioned Ruby workflows run on Linux. |
112
+ | MRI current | Parallel support | Parallel support | Unsupported | Current Ruby workflow covers the declared OS platforms. |
113
+ | MRI head | Parallel support | Unsupported | Unsupported | CI is allowed to fail while Ruby is in development. |
114
+ | JRuby (all CI lanes) | Parallel support | Unsupported | Unsupported | Engine workflows run on Linux; macOS and Windows are not exercised by CI. |
115
+ | TruffleRuby (all CI lanes) | Parallel support | Unsupported | Unsupported | Never shipped a Windows build (zero Windows assets across 66 releases scanned 2026-10-10); setup-ruby hard-fails ([source](https://github.com/ruby/setup-ruby/blob/master/README.md)) |
116
+
85
117
  ### Federated DVCS
86
118
 
87
119
  <details markdown="1">
@@ -190,6 +222,52 @@ Kettle::Rb::CompatMatrix.rubocop_lts_branch_for_gem("rubocop-ruby3_2")
190
222
  # => "r3_2-even-v24"
191
223
  ```
192
224
 
225
+ Map a CI OS family to its GitHub runner label:
226
+
227
+ ```ruby
228
+ Kettle::Rb::PlatformSupport.os_family?("macos")
229
+ # => true
230
+
231
+ Kettle::Rb::PlatformSupport.os_family?("x86_64-linux")
232
+ # => false -- that is a Gem::Platform string, not a CI OS family
233
+
234
+ Kettle::Rb::PlatformSupport.runner_label("windows")
235
+ # => "windows-latest"
236
+
237
+ Kettle::Rb::PlatformSupport.runner_label("plan9")
238
+ # => nil
239
+ ```
240
+
241
+ Check engine support per OS family (fail-closed: unknown pairs are
242
+ unsupported, never assumed covered):
243
+
244
+ ```ruby
245
+ Kettle::Rb::PlatformSupport.engine_supports_os?("truffleruby", "windows")
246
+ # => false -- no Windows build has ever shipped (66 releases scanned)
247
+
248
+ Kettle::Rb::PlatformSupport.engine_supports_os?("jruby", "linux")
249
+ # => true
250
+
251
+ Kettle::Rb::PlatformSupport.supported_os_families("jruby")
252
+ # => ["linux", "macos", "windows"]
253
+
254
+ Kettle::Rb::PlatformSupport.supported_engines("linux")
255
+ # => ["ruby", "jruby", "truffleruby"]
256
+
257
+ entry = Kettle::Rb::PlatformSupport.engine_os_entry("truffleruby", "macos")
258
+ entry.support # => "supported"
259
+ entry.note # => "darwin-aarch64 since 22.2.0; macOS Intel removed in 34.0, ..."
260
+ entry.citation # => "https://github.com/truffleruby/truffleruby/releases/tag/graal-34.0.0"
261
+ ```
262
+
263
+ Every entry carries its evidence. Regenerate the data table from live
264
+ sources (GitHub releases API, `ruby/setup-ruby`) when a platform claim
265
+ changes:
266
+
267
+ ```console
268
+ bundle exec rake kettle:rb:platform_support:generate
269
+ ```
270
+
193
271
  ## 🦷 FLOSS Funding
194
272
 
195
273
  While kettle-dev tools are free software and will always be, the project would benefit immensely from some funding.
@@ -469,7 +547,6 @@ Thanks for RTFM. ☺️
469
547
  [🚎jruby-9.4-wf]: https://github.com/kettle-dev/kettle-rb/actions/workflows/jruby-9.4.yml
470
548
  [🚎jruby-10.0-wf]: https://github.com/kettle-dev/kettle-rb/actions/workflows/jruby-10.0.yml
471
549
  [🚎truby-22.3-wf]: https://github.com/kettle-dev/kettle-rb/actions/workflows/truffleruby-22.3.yml
472
- [🚎truby-23.0-wf]: https://github.com/kettle-dev/kettle-rb/actions/workflows/truffleruby-23.0.yml
473
550
  [🚎truby-23.1-wf]: https://github.com/kettle-dev/kettle-rb/actions/workflows/truffleruby-23.1.yml
474
551
  [🚎truby-24.2-wf]: https://github.com/kettle-dev/kettle-rb/actions/workflows/truffleruby-24.2.yml
475
552
  [🚎truby-25.0-wf]: https://github.com/kettle-dev/kettle-rb/actions/workflows/truffleruby-25.0.yml
@@ -512,13 +589,11 @@ Thanks for RTFM. ☺️
512
589
  [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
513
590
  [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
514
591
  [💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
515
- [💎truby-23.0i]: https://img.shields.io/badge/Truffle_Ruby-23.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
516
592
  [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
517
593
  [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
518
594
  [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
519
595
  [💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
520
596
  [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
521
- [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
522
597
  [💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2-FBE742?style=for-the-badge&logo=ruby&logoColor=red
523
598
  [💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3-FBE742?style=for-the-badge&logo=ruby&logoColor=red
524
599
  [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "0.1.17"
8
+ VERSION = "0.1.18"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '3.1'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 3.1.9
49
+ version: 3.1.13
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +56,7 @@ dependencies:
56
56
  version: '3.1'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 3.1.9
59
+ version: 3.1.13
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: bundler-audit
62
62
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ dependencies:
154
154
  version: '2.0'
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 2.0.23
157
+ version: 2.0.25
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
@@ -164,27 +164,27 @@ dependencies:
164
164
  version: '2.0'
165
165
  - - ">="
166
166
  - !ruby/object:Gem::Version
167
- version: 2.0.23
167
+ version: 2.0.25
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: turbo_tests2
170
170
  requirement: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: '3.2'
174
+ version: '4.0'
175
175
  - - ">="
176
176
  - !ruby/object:Gem::Version
177
- version: 3.2.14
177
+ version: 4.0.0
178
178
  type: :development
179
179
  prerelease: false
180
180
  version_requirements: !ruby/object:Gem::Requirement
181
181
  requirements:
182
182
  - - "~>"
183
183
  - !ruby/object:Gem::Version
184
- version: '3.2'
184
+ version: '4.0'
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: 3.2.14
187
+ version: 4.0.0
188
188
  - !ruby/object:Gem::Dependency
189
189
  name: ruby-progressbar
190
190
  requirement: !ruby/object:Gem::Requirement
@@ -266,10 +266,10 @@ licenses:
266
266
  - MIT
267
267
  metadata:
268
268
  homepage_uri: https://kettle-rb.galtzo.com
269
- source_code_uri: https://github.com/kettle-dev/kettle-rb/tree/v0.1.17
270
- changelog_uri: https://github.com/kettle-dev/kettle-rb/blob/v0.1.17/CHANGELOG.md
269
+ source_code_uri: https://github.com/kettle-dev/kettle-rb/tree/v0.1.18
270
+ changelog_uri: https://github.com/kettle-dev/kettle-rb/blob/v0.1.18/CHANGELOG.md
271
271
  bug_tracker_uri: https://github.com/kettle-dev/kettle-rb/issues
272
- documentation_uri: https://www.rubydoc.info/gems/kettle-rb/0.1.17
272
+ documentation_uri: https://www.rubydoc.info/gems/kettle-rb/0.1.18
273
273
  funding_uri: https://github.com/sponsors/pboling
274
274
  wiki_uri: https://github.com/kettle-dev/kettle-rb/wiki
275
275
  news_uri: https://www.railsbling.com/tags/kettle-rb
metadata.gz.sig CHANGED
Binary file