kettle-jem 7.1.28 → 7.1.29
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 +183 -1
- data/README.md +18 -2
- data/lib/kettle/jem/maintenance_changelog.rb +1 -1
- data/lib/kettle/jem/relative_paths.rb +61 -0
- data/lib/kettle/jem/tasks/install_task.rb +9 -5
- data/lib/kettle/jem/tasks/prepare_task.rb +29 -10
- data/lib/kettle/jem/tasks/template_task.rb +18 -3
- data/lib/kettle/jem/templates/.git-hooks/prepare-commit-msg.example +3 -4
- data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/current.yml.example +8 -13
- data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +5 -5
- data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +3 -63
- data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example +22 -1
- data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/style.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +14 -1
- data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +2 -2
- data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +1 -1
- data/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +19 -0
- data/lib/kettle/jem/templates/Appraisal.root.gemfile.example +2 -1
- data/lib/kettle/jem/templates/Appraisals.example +4 -1
- data/lib/kettle/jem/templates/CHANGELOG.transfer.md +6 -0
- data/lib/kettle/jem/templates/Gemfile.example +12 -3
- data/lib/kettle/jem/templates/README.md.example +5 -5
- data/lib/kettle/jem/templates/Rakefile.example +2 -0
- data/lib/kettle/jem/templates/bin/turbo_tests2.example +14 -0
- data/lib/kettle/jem/templates/gem.gemspec.example +6 -6
- data/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example +1 -1
- data/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +10 -12
- data/lib/kettle/jem/templates/gemfiles/modular/documentation.gemfile.example +5 -5
- data/lib/kettle/jem/templates/gemfiles/modular/ostruct/r4/v0.6.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example +15 -8
- data/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +7 -1
- data/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +3 -2
- data/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +18 -19
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r4/libs.gemfile.example +1 -0
- data/lib/kettle/jem/templates/mise.toml.example +1 -1
- data/lib/kettle/jem/templates/mise.toml.no-osc.example +1 -1
- data/lib/kettle/jem/templates/readme/partials/configuration.md.example +4 -3
- data/lib/kettle/jem/templates/shim/Gemfile.example +9 -3
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +3 -3
- data/lib/kettle/jem/version.rb +1 -1
- data/lib/kettle/jem.rb +1156 -705
- data.tar.gz.sig +0 -0
- metadata +28 -67
- metadata.gz.sig +0 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example +0 -92
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_0.gemfile.example +0 -6
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
source "https://gem.coop"
|
|
10
10
|
|
|
11
|
-
git_source(:github) { |repo_name| "git@github.com:#{repo_name}.git" }
|
|
12
11
|
git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" }
|
|
13
12
|
git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" }
|
|
14
13
|
|
|
@@ -25,8 +24,18 @@ gemspec
|
|
|
25
24
|
|
|
26
25
|
{KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK}
|
|
27
26
|
|
|
28
|
-
# Templating
|
|
29
|
-
|
|
27
|
+
# Templating and the StructuredMerge family share this modular Gemfile.
|
|
28
|
+
# kettle-jem needs StructuredMerge to template, and kettle-changelog needs it at
|
|
29
|
+
# runtime (ast-crispr-markdown-markly -> markdown-merge -> tree_haver), so the
|
|
30
|
+
# test, lint, and release bundles resolve the family too. While the family is
|
|
31
|
+
# only partially released, registry copies pin the last published version exactly
|
|
32
|
+
# and cannot be satisfied alongside a local lockstep version, so a partial local
|
|
33
|
+
# wiring fails version solving for every command in the bundle.
|
|
34
|
+
#
|
|
35
|
+
# (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths)
|
|
36
|
+
eval_gemfile "gemfiles/modular/templating.gemfile" if
|
|
37
|
+
ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? ||
|
|
38
|
+
ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0
|
|
30
39
|
|
|
31
40
|
# Debugging
|
|
32
41
|
eval_gemfile "gemfiles/modular/debug.gemfile"
|
|
@@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta
|
|
|
35
35
|
| Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
|
|
36
36
|
|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
37
37
|
| Works with JRuby | [![JRuby 9.1 Compat][💎jruby-9.1i]][🚎jruby-9.1-wf] [![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] |
|
|
38
|
-
| Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.
|
|
38
|
+
| 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] |
|
|
39
39
|
| Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
|
|
40
40
|
| 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] |
|
|
41
41
|
| 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] |
|
|
@@ -64,6 +64,10 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
|
|
|
64
64
|
|
|
65
65
|
{KJ|README:FAMILY_INTRO_BACKEND_MATRIX}
|
|
66
66
|
|
|
67
|
+
### Runtime and Platform Support
|
|
68
|
+
|
|
69
|
+
{KJ|README:PLATFORM_SUPPORT_TABLE}
|
|
70
|
+
|
|
67
71
|
### Federated DVCS
|
|
68
72
|
|
|
69
73
|
<details markdown="1">
|
|
@@ -441,8 +445,6 @@ Thanks for RTFM. ☺️
|
|
|
441
445
|
[🚎jruby-10.0-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/jruby-10.0.yml/badge.svg
|
|
442
446
|
[🚎truby-22.3-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-22.3.yml
|
|
443
447
|
[🚎truby-22.3-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-22.3.yml/badge.svg
|
|
444
|
-
[🚎truby-23.0-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.0.yml
|
|
445
|
-
[🚎truby-23.0-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.0.yml/badge.svg
|
|
446
448
|
[🚎truby-23.1-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.1.yml
|
|
447
449
|
[🚎truby-23.1-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.1.yml/badge.svg
|
|
448
450
|
[🚎truby-24.2-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-24.2.yml
|
|
@@ -490,13 +492,11 @@ Thanks for RTFM. ☺️
|
|
|
490
492
|
[💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
|
|
491
493
|
[💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
|
|
492
494
|
[💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
493
|
-
[💎truby-23.0i]: https://img.shields.io/badge/Truffle_Ruby-23.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
494
495
|
[💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
495
496
|
[💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
496
497
|
[💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
497
498
|
[💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
498
499
|
[💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
|
|
499
|
-
[💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
|
|
500
500
|
[💎jruby-9.1i]: https://img.shields.io/badge/JRuby-9.1-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
501
501
|
[💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
502
502
|
[💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
#
|
|
5
|
+
# This file is generated by Kettle Jem.
|
|
6
|
+
# It loads turbo_tests2 from the active bundle for Windows CI.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
|
10
|
+
|
|
11
|
+
require "rubygems"
|
|
12
|
+
require "bundler/setup"
|
|
13
|
+
|
|
14
|
+
load Gem.bin_path("turbo_tests2", "turbo_tests2")
|
|
@@ -118,7 +118,7 @@ Gem::Specification.new do |spec|
|
|
|
118
118
|
# and preferably a modular one (see gemfiles/modular/*.gemfile).
|
|
119
119
|
|
|
120
120
|
# Dev, Test, & Release Tasks
|
|
121
|
-
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.
|
|
121
|
+
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.11") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
122
122
|
|
|
123
123
|
# Security
|
|
124
124
|
spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0
|
|
@@ -132,13 +132,13 @@ Gem::Specification.new do |spec|
|
|
|
132
132
|
# Testing
|
|
133
133
|
# Loads version files in anonymous namespaces for coverage without constant redefinition warnings.
|
|
134
134
|
spec.add_development_dependency("anonymous_loader", "~> 0.1", ">= 0.1.3") # ruby >= 2.2.0
|
|
135
|
-
spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.
|
|
136
|
-
spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.
|
|
137
|
-
spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.
|
|
135
|
+
spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.5") # ruby >= 1.8.7, for testing against multiple versions of dependencies
|
|
136
|
+
spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.24") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
137
|
+
spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.14") # ruby >= 2.4.0, default kettle-test runner
|
|
138
138
|
|
|
139
139
|
# Releasing
|
|
140
140
|
spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0
|
|
141
|
-
spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.
|
|
141
|
+
spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.9") # ruby >= 2.2.0
|
|
142
142
|
|
|
143
143
|
# Git integration (optional)
|
|
144
144
|
# The 'git' gem is optional; {KJ|GEM_NAME} falls back to shelling out to `git` if it is not present.
|
|
@@ -150,7 +150,7 @@ Gem::Specification.new do |spec|
|
|
|
150
150
|
# This means we have no choice but to use the erb that shipped with Ruby 2.3
|
|
151
151
|
# /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError)
|
|
152
152
|
# spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch.
|
|
153
|
-
spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.
|
|
153
|
+
spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.15") # ruby >= 2.4
|
|
154
154
|
|
|
155
155
|
# HTTP recording for deterministic specs
|
|
156
156
|
# In Ruby 3.5 (HEAD) the CGI library has been pared down, so we also need to depend on gem "cgi" for ruby@head
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero?
|
|
8
8
|
# Coverage (remote/released)
|
|
9
9
|
platform :mri do
|
|
10
|
-
gem "kettle-soup-cover", "~> 3.0", ">= 3.0.
|
|
10
|
+
gem "kettle-soup-cover", "~> 3.0", ">= 3.0.12", require: false
|
|
11
11
|
end
|
|
12
12
|
else
|
|
13
13
|
eval_gemfile "coverage_local.gemfile"
|
|
@@ -6,6 +6,14 @@
|
|
|
6
6
|
{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP}
|
|
7
7
|
|
|
8
8
|
local_gems = %w[{KJ|KETTLE_DEV_LOCAL_GEMS}]
|
|
9
|
+
kettle_dev_nomono_options = {
|
|
10
|
+
prefix: "KETTLE_DEV",
|
|
11
|
+
path_env: "KETTLE_DEV_DEV",
|
|
12
|
+
vendored_gems_env: "VENDORED_GEMS",
|
|
13
|
+
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
14
|
+
debug_env: "KETTLE_DEV_DEBUG",
|
|
15
|
+
root: ["src", "my", "kettle-dev"]
|
|
16
|
+
}
|
|
9
17
|
|
|
10
18
|
# export KETTLE_DEV_DEV=/path/to/my
|
|
11
19
|
platform :mri do
|
|
@@ -14,12 +22,7 @@ platform :mri do
|
|
|
14
22
|
kettle_dev_dependency = instance_variable_get(:@dependencies).to_a.find { |dependency| dependency.name == "kettle-dev" }
|
|
15
23
|
kettle_dev_local_path = nomono_gems(
|
|
16
24
|
gems: %w[kettle-dev],
|
|
17
|
-
|
|
18
|
-
path_env: "KETTLE_DEV_DEV",
|
|
19
|
-
vendored_gems_env: "VENDORED_GEMS",
|
|
20
|
-
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
21
|
-
debug_env: "KETTLE_DEV_DEBUG",
|
|
22
|
-
root: ["src", "my", "kettle-dev"]
|
|
25
|
+
**kettle_dev_nomono_options
|
|
23
26
|
).fetch("kettle-dev", nil)
|
|
24
27
|
if kettle_dev_dependency && kettle_dev_local_path
|
|
25
28
|
instance_variable_get(:@dependencies).delete(kettle_dev_dependency)
|
|
@@ -31,12 +34,7 @@ platform :mri do
|
|
|
31
34
|
|
|
32
35
|
eval_nomono_gems(
|
|
33
36
|
gems: local_gems_to_eval,
|
|
34
|
-
|
|
35
|
-
path_env: "KETTLE_DEV_DEV",
|
|
36
|
-
vendored_gems_env: "VENDORED_GEMS",
|
|
37
|
-
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
38
|
-
debug_env: "KETTLE_DEV_DEBUG",
|
|
39
|
-
root: ["src", "my", "kettle-dev"]
|
|
37
|
+
**kettle_dev_nomono_options
|
|
40
38
|
)
|
|
41
39
|
|
|
42
40
|
if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0
|
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
# Documentation
|
|
10
10
|
gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5
|
|
11
11
|
gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3
|
|
12
|
-
gem "yaml-converter", "~> 0.2", ">= 0.2.
|
|
12
|
+
gem "yaml-converter", "~> 0.2", ">= 0.2.7", require: false # Ruby >= 3.2
|
|
13
13
|
gem "yard", "~> 0.9", ">= 0.9.45", require: false
|
|
14
14
|
gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1
|
|
15
|
-
gem "yard-lint", "~> 1.
|
|
15
|
+
gem "yard-lint", "~> 1.12", ">= 1.12.0", require: false # Ruby >= 3.3
|
|
16
16
|
gem "yard-relative_markdown_links", "~> 0.6", require: false
|
|
17
17
|
|
|
18
18
|
if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero?
|
|
19
|
-
gem "yard-fence", "~> 0.9", ">= 0.9.
|
|
20
|
-
gem "yard-timekeeper", "~> 0.2", ">= 0.2.
|
|
21
|
-
gem "yard-yaml", "~> 0.2", ">= 0.2.
|
|
19
|
+
gem "yard-fence", "~> 0.9", ">= 0.9.10", require: false # Ruby >= 3.2
|
|
20
|
+
gem "yard-timekeeper", "~> 0.2", ">= 0.2.9", require: false
|
|
21
|
+
gem "yard-yaml", "~> 0.2", ">= 0.2.6", require: false
|
|
22
22
|
else
|
|
23
23
|
eval_gemfile "documentation_local.gemfile"
|
|
24
24
|
end
|
|
@@ -9,23 +9,30 @@
|
|
|
9
9
|
# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility
|
|
10
10
|
# rules for the configured Ruby floor independently from task dependency floors.
|
|
11
11
|
|
|
12
|
-
gem "reek", "~> 6.
|
|
12
|
+
gem "reek", "~> 6.6", ">= 6.6.0"
|
|
13
13
|
|
|
14
14
|
platform :mri do
|
|
15
|
-
gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.
|
|
15
|
+
gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.4", require: false
|
|
16
16
|
gem "rubocop-gradual", "~> 0.4", ">= 0.4.0"
|
|
17
|
+
# rubocop-minitest floor held at 0.40: 0.41.0 requires rubocop >= 1.89.0,
|
|
18
|
+
# but standard (~> 1.56) caps rubocop at ~> 1.88.0, making the pair
|
|
19
|
+
# unsatisfiable. This gem is registered in KettleJemDepsFloor::FLOOR_HOLDS,
|
|
20
|
+
# so kettle-jem-deps-floor will not auto-raise it. Remove the hold (and
|
|
21
|
+
# raise the floor) once standard supports rubocop >= 1.89.
|
|
17
22
|
gem "rubocop-minitest", "~> 0.40", ">= 0.40.0"
|
|
18
|
-
|
|
23
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3.0")
|
|
24
|
+
gem "rubocop-on-rbs", "~> 2.2", ">= 2.2.0" # ruby >= 3.3.0
|
|
25
|
+
end
|
|
19
26
|
# gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard
|
|
20
|
-
gem "
|
|
21
|
-
github: "pboling/rubocop-packaging",
|
|
22
|
-
ref: "3539ba858d379740d638566faee9e56b2b854145"
|
|
23
|
-
gem "standard", "~> 1.56", ">= 1.56.0"
|
|
27
|
+
gem "standard", "~> 1.57", ">= 1.57.0"
|
|
24
28
|
|
|
25
29
|
if ENV.fetch("RUBOCOP_LTS_DEV", "false").casecmp("false").zero?
|
|
30
|
+
gem "rubocop-packaging",
|
|
31
|
+
github: "pboling/rubocop-packaging",
|
|
32
|
+
ref: "3539ba858d379740d638566faee9e56b2b854145"
|
|
26
33
|
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
27
34
|
gem "rubocop-lts", {KJ|RUBOCOP_LTS_CONSTRAINT} unless declared_gems.include?("rubocop-lts")
|
|
28
|
-
gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.
|
|
35
|
+
gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.7" unless declared_gems.include?("rubocop-lts-rspec")
|
|
29
36
|
gem "{KJ|RUBOCOP_RUBY_GEM}", {KJ|RUBOCOP_RUBY_CONSTRAINT} unless declared_gems.include?("{KJ|RUBOCOP_RUBY_GEM}")
|
|
30
37
|
else
|
|
31
38
|
eval_gemfile("style_local.gemfile")
|
|
@@ -12,6 +12,12 @@ local_gems = %w[rubocop-lts rubocop-lts-rspec {KJ|RUBOCOP_RUBY_GEM} standard-rub
|
|
|
12
12
|
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
13
13
|
local_gems_to_eval = local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems
|
|
14
14
|
|
|
15
|
+
# The generated RuboCop config loads this plugin in both local and released
|
|
16
|
+
# style modes, so the local bundle must provide it too.
|
|
17
|
+
gem "rubocop-packaging",
|
|
18
|
+
github: "pboling/rubocop-packaging",
|
|
19
|
+
ref: "3539ba858d379740d638566faee9e56b2b854145"
|
|
20
|
+
|
|
15
21
|
# export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,{KJ|RUBOCOP_RUBY_GEM},standard-rubocop-lts
|
|
16
22
|
platform :mri do
|
|
17
23
|
eval_nomono_gems(
|
|
@@ -21,6 +27,6 @@ platform :mri do
|
|
|
21
27
|
vendored_gems_env: "VENDORED_GEMS",
|
|
22
28
|
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
23
29
|
debug_env: "RUBOCOP_LTS_DEBUG",
|
|
24
|
-
root: ["src", "rubocop-lts"]
|
|
30
|
+
root: ["src", "my", "rubocop-lts"]
|
|
25
31
|
)
|
|
26
32
|
end
|
|
@@ -17,13 +17,14 @@ if structuredmerge_remote || !tslp_dev.to_s.empty?
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
if structuredmerge_remote
|
|
20
|
-
#
|
|
20
|
+
# Keep the released floor when templating with local StructuredMerge paths;
|
|
21
|
+
# kettle-jem-deps-floor advances this requirement from published versions.
|
|
21
22
|
gem "kettle-jem", {KJ|KETTLE_JEM_DEPENDENCY_ARGUMENTS}
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
if kettle_remote
|
|
25
26
|
# Template/plugin checks for released installs.
|
|
26
|
-
gem "kettle-drift", "~> 1.0", ">= 1.0.
|
|
27
|
+
gem "kettle-drift", "~> 1.0", ">= 1.0.16", require: false
|
|
27
28
|
end
|
|
28
29
|
|
|
29
30
|
# Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies.
|
|
@@ -13,14 +13,12 @@ structuredmerge_local_gems = %w[
|
|
|
13
13
|
ast-template
|
|
14
14
|
bash-merge
|
|
15
15
|
binary-merge
|
|
16
|
-
commonmarker-merge
|
|
17
16
|
citrus-toml-merge
|
|
18
17
|
dotenv-merge
|
|
19
18
|
go-merge
|
|
20
19
|
html-merge
|
|
21
20
|
json-merge
|
|
22
21
|
kettle-jem
|
|
23
|
-
kramdown-merge
|
|
24
22
|
markdown-merge
|
|
25
23
|
markly-merge
|
|
26
24
|
parslet-toml-merge
|
|
@@ -43,16 +41,27 @@ structuredmerge_local_gems = %w[
|
|
|
43
41
|
kettle_dev_local_gems = %w[
|
|
44
42
|
{KJ|KETTLE_DEV_LOCAL_GEMS}
|
|
45
43
|
]
|
|
44
|
+
shared_nomono_options = {
|
|
45
|
+
vendored_gems_env: "VENDORED_GEMS",
|
|
46
|
+
vendor_gem_dir_env: "VENDOR_GEM_DIR"
|
|
47
|
+
}
|
|
48
|
+
kettle_dev_nomono_options = shared_nomono_options.merge(
|
|
49
|
+
prefix: "KETTLE_DEV",
|
|
50
|
+
path_env: "KETTLE_DEV_DEV",
|
|
51
|
+
debug_env: "KETTLE_DEV_DEBUG",
|
|
52
|
+
root: ["src", "my", "kettle-dev"]
|
|
53
|
+
)
|
|
54
|
+
structuredmerge_nomono_options = shared_nomono_options.merge(
|
|
55
|
+
prefix: "STRUCTUREDMERGE",
|
|
56
|
+
path_env: "STRUCTUREDMERGE_DEV",
|
|
57
|
+
debug_env: "STRUCTUREDMERGE_DEBUG"
|
|
58
|
+
)
|
|
46
59
|
structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[{KJ|PACKAGE_NAME}]
|
|
47
60
|
|
|
48
61
|
if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0
|
|
49
62
|
eval_nomono_gems(
|
|
50
63
|
gems: structuredmerge_local_gems_to_eval,
|
|
51
|
-
|
|
52
|
-
path_env: "STRUCTUREDMERGE_DEV",
|
|
53
|
-
vendored_gems_env: "VENDORED_GEMS",
|
|
54
|
-
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
55
|
-
debug_env: "STRUCTUREDMERGE_DEBUG"
|
|
64
|
+
**structuredmerge_nomono_options
|
|
56
65
|
)
|
|
57
66
|
end
|
|
58
67
|
|
|
@@ -62,12 +71,7 @@ if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0
|
|
|
62
71
|
kettle_dev_dependency = instance_variable_get(:@dependencies).to_a.find { |dependency| dependency.name == "kettle-dev" }
|
|
63
72
|
kettle_dev_local_path = nomono_gems(
|
|
64
73
|
gems: %w[kettle-dev],
|
|
65
|
-
|
|
66
|
-
path_env: "KETTLE_DEV_DEV",
|
|
67
|
-
vendored_gems_env: "VENDORED_GEMS",
|
|
68
|
-
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
69
|
-
debug_env: "KETTLE_DEV_DEBUG",
|
|
70
|
-
root: ["src", "my", "kettle-dev"]
|
|
74
|
+
**kettle_dev_nomono_options
|
|
71
75
|
).fetch("kettle-dev", nil)
|
|
72
76
|
if kettle_dev_dependency && kettle_dev_local_path
|
|
73
77
|
instance_variable_get(:@dependencies).delete(kettle_dev_dependency)
|
|
@@ -79,11 +83,6 @@ if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0
|
|
|
79
83
|
|
|
80
84
|
eval_nomono_gems(
|
|
81
85
|
gems: kettle_dev_local_gems_to_eval,
|
|
82
|
-
|
|
83
|
-
path_env: "KETTLE_DEV_DEV",
|
|
84
|
-
vendored_gems_env: "VENDORED_GEMS",
|
|
85
|
-
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
86
|
-
debug_env: "KETTLE_DEV_DEBUG",
|
|
87
|
-
root: ["src", "my", "kettle-dev"]
|
|
86
|
+
**kettle_dev_nomono_options
|
|
88
87
|
)
|
|
89
88
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
eval_gemfile "../../erb/r4/v5.0.gemfile"
|
|
2
2
|
eval_gemfile "../../mutex_m/r4/v0.3.gemfile"
|
|
3
|
+
eval_gemfile "../../ostruct/r4/v0.6.gemfile"
|
|
3
4
|
eval_gemfile "../../stringio/r4/v3.0.gemfile"
|
|
4
5
|
eval_gemfile "../../benchmark/r4/v0.5.gemfile"
|
|
5
6
|
eval_gemfile "../../cgi/r4/v0.5.gemfile"
|
|
@@ -12,7 +12,7 @@ project_emoji: "💎"
|
|
|
12
12
|
engines:
|
|
13
13
|
- ruby
|
|
14
14
|
ruby:
|
|
15
|
-
test_minimum: "
|
|
15
|
+
test_minimum: "{KJ|DEFAULT_TEST_MINIMUM_RUBY}"
|
|
16
16
|
licenses:
|
|
17
17
|
- MIT
|
|
18
18
|
templates:
|
|
@@ -106,8 +106,9 @@ application, and Rakefile scaffold cleanup.
|
|
|
106
106
|
`workflows.exec_cmd` sets the default command for generated test workflows
|
|
107
107
|
(default: `kettle-test`; ENV override: `KJ_EXEC_CMD`).
|
|
108
108
|
`ruby.test_minimum` sets the lowest MRI Ruby version used for generated CI
|
|
109
|
-
workflows and Appraisals. It defaults to `
|
|
110
|
-
floor is never lower than the gemspec
|
|
109
|
+
workflows and Appraisals. It defaults to `{KJ|DEFAULT_TEST_MINIMUM_RUBY}`, and
|
|
110
|
+
the effective generated floor is never lower than the gemspec
|
|
111
|
+
`required_ruby_version`.
|
|
111
112
|
`workflows.coverage` enables coverage workflow generation. Existing custom
|
|
112
113
|
workflows can receive pinned-action snippets without replacing the whole file.
|
|
113
114
|
|
|
@@ -6,9 +6,15 @@ shimmed_gem_path = ENV["KETTLE_JEM_SHIMMED_GEM_PATH"].to_s
|
|
|
6
6
|
gem "{KJ|SHIMMED_GEM_NAME}", path: shimmed_gem_path unless shimmed_gem_path.empty?
|
|
7
7
|
|
|
8
8
|
# Local workspace dependency wiring for templating_local.gemfile overrides.
|
|
9
|
-
gem "nomono", "~> 1.1", ">= 1.1.
|
|
9
|
+
gem "nomono", "~> 1.1", ">= 1.1.7", require: false # ruby >= 3.2.0
|
|
10
10
|
|
|
11
|
-
# Templating
|
|
12
|
-
|
|
11
|
+
# Templating and the StructuredMerge family share this modular Gemfile.
|
|
12
|
+
# kettle-jem needs StructuredMerge to template, and kettle-changelog needs it at
|
|
13
|
+
# runtime, so the test, lint, and release bundles resolve the family too.
|
|
14
|
+
#
|
|
15
|
+
# (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths)
|
|
16
|
+
eval_gemfile "gemfiles/modular/templating.gemfile" if
|
|
17
|
+
ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? ||
|
|
18
|
+
ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0
|
|
13
19
|
|
|
14
20
|
gemspec
|
|
@@ -30,16 +30,16 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.add_dependency "{KJ|SHIMMED_GEM_NAME}"
|
|
31
31
|
|
|
32
32
|
# Dev, Test, & Release Tasks
|
|
33
|
-
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.
|
|
33
|
+
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.11") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
34
34
|
|
|
35
35
|
# Tasks
|
|
36
36
|
spec.add_development_dependency "rake", "~> 13.0"
|
|
37
37
|
|
|
38
38
|
# Testing
|
|
39
|
-
spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.
|
|
39
|
+
spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.24") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
40
40
|
spec.add_development_dependency "rspec", "~> 3.12"
|
|
41
41
|
|
|
42
42
|
# Releasing
|
|
43
43
|
spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0
|
|
44
|
-
spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.
|
|
44
|
+
spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.9") # ruby >= 2.2.0
|
|
45
45
|
end
|
data/lib/kettle/jem/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "7.1.
|
|
8
|
+
VERSION = "7.1.29"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|