kettle-dev 1.1.7 โ 1.1.9
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/.aiignore.example +19 -0
- data/.github/workflows/dep-heads.yml +105 -0
- data/.gitlab-ci.yml.example +66 -4
- data/.junie/guidelines.md +1 -1
- data/.rubocop.yml +3 -9
- data/Appraisals +21 -41
- data/Appraisals.example +20 -22
- data/CHANGELOG.md +39 -2
- data/Gemfile +5 -9
- data/Gemfile.example +5 -9
- data/README.md +4 -2
- data/README.md.example +4 -2
- data/Rakefile.example +1 -1
- data/gemfiles/modular/debug.gemfile +13 -0
- data/gemfiles/modular/erb/r2/v3.0.gemfile +1 -0
- data/gemfiles/modular/erb/r2.3/default.gemfile +6 -0
- data/gemfiles/modular/erb/r2.6/v2.2.gemfile +3 -0
- data/gemfiles/modular/erb/r3/v5.0.gemfile +1 -0
- data/gemfiles/modular/erb/r3.1/v4.0.gemfile +2 -0
- data/gemfiles/modular/erb/vHEAD.gemfile +2 -0
- data/gemfiles/modular/mutex_m/r2/v0.3.gemfile +2 -0
- data/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile +3 -0
- data/gemfiles/modular/mutex_m/r3/v0.3.gemfile +2 -0
- data/gemfiles/modular/mutex_m/vHEAD.gemfile +2 -0
- data/gemfiles/modular/runtime_heads.gemfile +10 -0
- data/gemfiles/modular/runtime_heads.gemfile.example +8 -0
- data/gemfiles/modular/stringio/r2/v3.0.gemfile +5 -0
- data/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile +4 -0
- data/gemfiles/modular/stringio/r3/v3.0.gemfile +5 -0
- data/gemfiles/modular/stringio/vHEAD.gemfile +2 -0
- data/gemfiles/modular/x_std_libs/r2/libs.gemfile +3 -0
- data/gemfiles/modular/x_std_libs/r2.3/libs.gemfile +3 -0
- data/gemfiles/modular/x_std_libs/r2.4/libs.gemfile +3 -0
- data/gemfiles/modular/x_std_libs/r2.6/libs.gemfile +3 -0
- data/gemfiles/modular/x_std_libs/r3/libs.gemfile +3 -0
- data/gemfiles/modular/x_std_libs/r3.1/libs.gemfile +3 -0
- data/gemfiles/modular/x_std_libs/vHEAD.gemfile +3 -0
- data/gemfiles/modular/x_std_libs.gemfile +2 -0
- data/lib/kettle/dev/rakelib/spec_test.rake +35 -16
- data/lib/kettle/dev/tasks/template_task.rb +100 -59
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle/dev.rb +4 -0
- data.tar.gz.sig +0 -0
- metadata +31 -4
- metadata.gz.sig +0 -0
data/README.md
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
# ๐ฒ Kettle::Dev
|
11
11
|
|
12
|
-
[![Version][๐ฝversioni]][๐ฝversion] [![GitHub tag (latest SemVer)][โณ๏ธtag-img]][โณ๏ธtag] [![License: MIT][๐license-img]][๐license-ref] [![Downloads Rank][๐ฝdl-ranki]][๐ฝdl-rank] [![Open Source Helpers][๐ฝoss-helpi]][๐ฝoss-help] [![CodeCov Test Coverage][๐codecovi]][๐codecov] [![Coveralls Test Coverage][๐coveralls-img]][๐coveralls] [![QLTY Test Coverage][๐qlty-covi]][๐qlty-cov] [![QLTY Maintainability][๐qlty-mnti]][๐qlty-mnt] [![CI Heads][๐3-hd-wfi]][๐3-hd-wf] [![CI Current][๐11-c-wfi]][๐11-c-wf] [![CI Truffle Ruby][๐9-t-wfi]][๐9-t-wf] [![CI JRuby][๐10-j-wfi]][๐10-j-wf] [![Deps Locked][๐13-๐๏ธ-wfi]][๐13-๐๏ธ-wf] [![Deps Unlocked][๐14-๐๏ธ-wfi]][๐14-๐๏ธ-wf] [![CI Supported][๐6-s-wfi]][๐6-s-wf] [![CI Legacy][๐4-lg-wfi]][๐4-lg-wf] [![CI Unsupported][๐7-us-wfi]][๐7-us-wf] [![CI Ancient][๐1-an-wfi]][๐1-an-wf] [![CI Test Coverage][๐2-cov-wfi]][๐2-cov-wf] [![CI Style][๐5-st-wfi]][๐5-st-wf] [![CodeQL][๐codeQL-img]][๐codeQL]
|
12
|
+
[![Version][๐ฝversioni]][๐ฝversion] [![GitHub tag (latest SemVer)][โณ๏ธtag-img]][โณ๏ธtag] [![License: MIT][๐license-img]][๐license-ref] [![Downloads Rank][๐ฝdl-ranki]][๐ฝdl-rank] [![Open Source Helpers][๐ฝoss-helpi]][๐ฝoss-help] [![CodeCov Test Coverage][๐codecovi]][๐codecov] [![Coveralls Test Coverage][๐coveralls-img]][๐coveralls] [![QLTY Test Coverage][๐qlty-covi]][๐qlty-cov] [![QLTY Maintainability][๐qlty-mnti]][๐qlty-mnt] [![CI Heads][๐3-hd-wfi]][๐3-hd-wf] [![CI Runtime Dependencies @ HEAD][๐12-crh-wfi]][๐12-crh-wf] [![CI Current][๐11-c-wfi]][๐11-c-wf] [![CI Truffle Ruby][๐9-t-wfi]][๐9-t-wf] [![CI JRuby][๐10-j-wfi]][๐10-j-wf] [![Deps Locked][๐13-๐๏ธ-wfi]][๐13-๐๏ธ-wf] [![Deps Unlocked][๐14-๐๏ธ-wfi]][๐14-๐๏ธ-wf] [![CI Supported][๐6-s-wfi]][๐6-s-wf] [![CI Legacy][๐4-lg-wfi]][๐4-lg-wf] [![CI Unsupported][๐7-us-wfi]][๐7-us-wf] [![CI Ancient][๐1-an-wfi]][๐1-an-wf] [![CI Test Coverage][๐2-cov-wfi]][๐2-cov-wf] [![CI Style][๐5-st-wfi]][๐5-st-wf] [![CodeQL][๐codeQL-img]][๐codeQL]
|
13
13
|
|
14
14
|
If โ๏ธ `ci_badges.map(&:color).detect { it != "green"}` [let me know][๐ผ๏ธgaltzo-discord], as I may have missed the [discord notification][๐ผ๏ธgaltzo-discord].
|
15
15
|
|
@@ -853,6 +853,8 @@ Thanks for RTFM. โบ๏ธ
|
|
853
853
|
[๐10-j-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby.yml/badge.svg
|
854
854
|
[๐11-c-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml
|
855
855
|
[๐11-c-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml/badge.svg
|
856
|
+
[๐12-crh-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml
|
857
|
+
[๐12-crh-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml/badge.svg
|
856
858
|
[๐13-๐๏ธ-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml
|
857
859
|
[๐13-๐๏ธ-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml/badge.svg
|
858
860
|
[๐14-๐๏ธ-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml
|
@@ -905,7 +907,7 @@ Thanks for RTFM. โบ๏ธ
|
|
905
907
|
[๐gitmoji]:https://gitmoji.dev
|
906
908
|
[๐gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
907
909
|
[๐งฎkloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
908
|
-
[๐งฎkloc-img]: https://img.shields.io/badge/KLOC-3.
|
910
|
+
[๐งฎkloc-img]: https://img.shields.io/badge/KLOC-3.352-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
909
911
|
[๐security]: SECURITY.md
|
910
912
|
[๐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
911
913
|
[๐copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/README.md.example
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
# ๐ฒ Kettle::Dev
|
11
11
|
|
12
|
-
[![Version][๐ฝversioni]][๐ฝversion] [![GitHub tag (latest SemVer)][โณ๏ธtag-img]][โณ๏ธtag] [![License: MIT][๐license-img]][๐license-ref] [![Downloads Rank][๐ฝdl-ranki]][๐ฝdl-rank] [![Open Source Helpers][๐ฝoss-helpi]][๐ฝoss-help] [![CodeCov Test Coverage][๐codecovi]][๐codecov] [![Coveralls Test Coverage][๐coveralls-img]][๐coveralls] [![QLTY Test Coverage][๐qlty-covi]][๐qlty-cov] [![QLTY Maintainability][๐qlty-mnti]][๐qlty-mnt] [![CI Heads][๐3-hd-wfi]][๐3-hd-wf] [![CI Current][๐11-c-wfi]][๐11-c-wf] [![CI Truffle Ruby][๐9-t-wfi]][๐9-t-wf] [![CI JRuby][๐10-j-wfi]][๐10-j-wf] [![Deps Locked][๐13-๐๏ธ-wfi]][๐13-๐๏ธ-wf] [![Deps Unlocked][๐14-๐๏ธ-wfi]][๐14-๐๏ธ-wf] [![CI Supported][๐6-s-wfi]][๐6-s-wf] [![CI Legacy][๐4-lg-wfi]][๐4-lg-wf] [![CI Unsupported][๐7-us-wfi]][๐7-us-wf] [![CI Ancient][๐1-an-wfi]][๐1-an-wf] [![CI Test Coverage][๐2-cov-wfi]][๐2-cov-wf] [![CI Style][๐5-st-wfi]][๐5-st-wf] [![CodeQL][๐codeQL-img]][๐codeQL]
|
12
|
+
[![Version][๐ฝversioni]][๐ฝversion] [![GitHub tag (latest SemVer)][โณ๏ธtag-img]][โณ๏ธtag] [![License: MIT][๐license-img]][๐license-ref] [![Downloads Rank][๐ฝdl-ranki]][๐ฝdl-rank] [![Open Source Helpers][๐ฝoss-helpi]][๐ฝoss-help] [![CodeCov Test Coverage][๐codecovi]][๐codecov] [![Coveralls Test Coverage][๐coveralls-img]][๐coveralls] [![QLTY Test Coverage][๐qlty-covi]][๐qlty-cov] [![QLTY Maintainability][๐qlty-mnti]][๐qlty-mnt] [![CI Heads][๐3-hd-wfi]][๐3-hd-wf] [![CI Runtime Dependencies @ HEAD][๐12-crh-wfi]][๐12-crh-wf] [![CI Current][๐11-c-wfi]][๐11-c-wf] [![CI Truffle Ruby][๐9-t-wfi]][๐9-t-wf] [![CI JRuby][๐10-j-wfi]][๐10-j-wf] [![Deps Locked][๐13-๐๏ธ-wfi]][๐13-๐๏ธ-wf] [![Deps Unlocked][๐14-๐๏ธ-wfi]][๐14-๐๏ธ-wf] [![CI Supported][๐6-s-wfi]][๐6-s-wf] [![CI Legacy][๐4-lg-wfi]][๐4-lg-wf] [![CI Unsupported][๐7-us-wfi]][๐7-us-wf] [![CI Ancient][๐1-an-wfi]][๐1-an-wf] [![CI Test Coverage][๐2-cov-wfi]][๐2-cov-wf] [![CI Style][๐5-st-wfi]][๐5-st-wf] [![CodeQL][๐codeQL-img]][๐codeQL]
|
13
13
|
|
14
14
|
If โ๏ธ `ci_badges.map(&:color).detect { it != "green"}` [let me know][๐ผ๏ธgaltzo-discord], as I may have missed the [discord notification][๐ผ๏ธgaltzo-discord].
|
15
15
|
|
@@ -448,6 +448,8 @@ Thanks for RTFM. โบ๏ธ
|
|
448
448
|
[๐10-j-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby.yml/badge.svg
|
449
449
|
[๐11-c-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml
|
450
450
|
[๐11-c-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml/badge.svg
|
451
|
+
[๐12-crh-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml
|
452
|
+
[๐12-crh-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml/badge.svg
|
451
453
|
[๐13-๐๏ธ-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml
|
452
454
|
[๐13-๐๏ธ-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml/badge.svg
|
453
455
|
[๐14-๐๏ธ-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml
|
@@ -505,7 +507,7 @@ Thanks for RTFM. โบ๏ธ
|
|
505
507
|
[๐gitmoji]:https://gitmoji.dev
|
506
508
|
[๐gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
507
509
|
[๐งฎkloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
508
|
-
[๐งฎkloc-img]: https://img.shields.io/badge/KLOC-3.
|
510
|
+
[๐งฎkloc-img]: https://img.shields.io/badge/KLOC-3.352-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
509
511
|
[๐security]: SECURITY.md
|
510
512
|
[๐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
511
513
|
[๐copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/Rakefile.example
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
# Ex-Standard Library gems
|
2
|
+
gem "irb", "~> 1.15", ">= 1.15.2" # removed from stdlib in 3.5
|
3
|
+
|
4
|
+
platform :mri do
|
5
|
+
# Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite
|
6
|
+
# Use binding.break, binding.b, or debugger in code
|
7
|
+
gem "debug", ">= 1.1" # ruby >= 2.7
|
8
|
+
|
9
|
+
# Dev Console - Binding.pry - Irb replacement
|
10
|
+
# gem "pry", "~> 0.14" # ruby >= 2.0
|
11
|
+
end
|
12
|
+
|
13
|
+
gem "gem_bench", "~> 2.0", ">= 2.0.5"
|
@@ -0,0 +1 @@
|
|
1
|
+
gem "erb", "~> 3.0" # ruby >= 2.7.0
|
@@ -0,0 +1,6 @@
|
|
1
|
+
# The cake is a lie.
|
2
|
+
# erb v2.2, the oldest release on RubyGems.org, was never compatible with Ruby 2.3.
|
3
|
+
# In addition, erb does not follow SemVer, and old rubies get dropped in a patch.
|
4
|
+
# This means we have no choice but to use the erb that shipped with Ruby 2.3
|
5
|
+
# /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)
|
6
|
+
# gem "erb", ">= 2.2" # ruby >= 2.3.0
|
@@ -0,0 +1 @@
|
|
1
|
+
gem "erb", "~> 5.0" # ruby >= 3.2.0
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Test against HEAD of runtime dependencies so we can proactively file bugs
|
4
|
+
|
5
|
+
# Ruby >= 2.2
|
6
|
+
gem "version_gem", github: "ruby-oauth/version_gem", branch: "main"
|
7
|
+
|
8
|
+
eval_gemfile("x_std_libs/vHEAD.gemfile")
|
9
|
+
|
10
|
+
eval_gemfile("recording/vHEAD.gemfile")
|
@@ -2,22 +2,8 @@
|
|
2
2
|
|
3
3
|
require "fileutils"
|
4
4
|
|
5
|
-
#
|
6
|
-
|
7
|
-
require "rspec/core/rake_task"
|
8
|
-
|
9
|
-
RSpec::Core::RakeTask.new(:spec)
|
10
|
-
# This takes the place of `coverage` task when running as CI=true
|
11
|
-
Kettle::Dev.register_default("spec") if Kettle::Dev::IS_CI
|
12
|
-
rescue LoadError
|
13
|
-
warn("[kettle-dev][spec_test.rake] failed to load rspec/core/rake_task") if Kettle::Dev::DEBUGGING
|
14
|
-
desc("spec task stub")
|
15
|
-
task(:spec) do
|
16
|
-
warn("NOTE: rspec isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# Setup MiniTest
|
5
|
+
# rubocop:disable Rake/DuplicateTask
|
6
|
+
# Set up MiniTest
|
21
7
|
begin
|
22
8
|
require "rake/testtask"
|
23
9
|
|
@@ -26,6 +12,7 @@ begin
|
|
26
12
|
t.test_files = FileList["test/**/*test*.rb"]
|
27
13
|
t.verbose = true
|
28
14
|
end
|
15
|
+
Kettle::Dev.register_default("test")
|
29
16
|
rescue LoadError
|
30
17
|
warn("[kettle-dev][spec_test.rake] failed to load rake/testtask") if Kettle::Dev::DEBUGGING
|
31
18
|
desc("test task stub")
|
@@ -33,3 +20,35 @@ rescue LoadError
|
|
33
20
|
warn("NOTE: minitest isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
34
21
|
end
|
35
22
|
end
|
23
|
+
|
24
|
+
# Setup RSpec
|
25
|
+
begin
|
26
|
+
require "rspec/core/rake_task"
|
27
|
+
|
28
|
+
RSpec::Core::RakeTask.new(:spec)
|
29
|
+
# This takes the place of `coverage` task it hasn't been registered yet.
|
30
|
+
Kettle::Dev.register_default("spec") unless Kettle::Dev.default_registered?("coverage")
|
31
|
+
rescue LoadError
|
32
|
+
warn("[kettle-dev][spec_test.rake] failed to load rspec/core/rake_task") if Kettle::Dev::DEBUGGING
|
33
|
+
desc("spec task stub")
|
34
|
+
task(:spec) do
|
35
|
+
warn("NOTE: rspec isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
spec_registered = Kettle::Dev.default_registered?("spec")
|
40
|
+
coverage_registered = Kettle::Dev.default_registered?("coverage")
|
41
|
+
test_registered = Kettle::Dev.default_registered?("test")
|
42
|
+
spec_or_coverage = spec_registered || coverage_registered
|
43
|
+
|
44
|
+
if spec_or_coverage && !test_registered
|
45
|
+
task test: :spec
|
46
|
+
elsif test_registered && !spec_or_coverage
|
47
|
+
task spec: :test
|
48
|
+
elsif test_registered && spec_or_coverage
|
49
|
+
# When we have both tasks registered, make spec run as part of the test task
|
50
|
+
task test: :spec
|
51
|
+
else
|
52
|
+
puts "No test task is registered."
|
53
|
+
end
|
54
|
+
# rubocop:enable Rake/DuplicateTask
|
@@ -6,6 +6,8 @@ module Kettle
|
|
6
6
|
# Thin wrapper to expose the kettle:dev:template task logic as a callable API
|
7
7
|
# for testability. The rake task should only call this method.
|
8
8
|
module TemplateTask
|
9
|
+
MODULAR_GEMFILE_DIR = "gemfiles/modular"
|
10
|
+
|
9
11
|
module_function
|
10
12
|
|
11
13
|
# Abort wrapper that avoids terminating the entire process during specs
|
@@ -41,9 +43,21 @@ module Kettle
|
|
41
43
|
# 2) .github/**/*.yml with FUNDING.yml customizations
|
42
44
|
source_github_dir = File.join(gem_checkout_root, ".github")
|
43
45
|
if Dir.exist?(source_github_dir)
|
44
|
-
|
46
|
+
# Build a unique set of logical .yml paths, preferring the .example variant when present
|
47
|
+
candidates = Dir.glob(File.join(source_github_dir, "**", "*.yml")) +
|
45
48
|
Dir.glob(File.join(source_github_dir, "**", "*.yml.example"))
|
46
|
-
|
49
|
+
selected = {}
|
50
|
+
candidates.each do |path|
|
51
|
+
# Key by the path without the optional .example suffix
|
52
|
+
key = path.sub(/\.example\z/, "")
|
53
|
+
# Prefer example: overwrite a plain selection with .example, but do not downgrade
|
54
|
+
if path.end_with?(".example")
|
55
|
+
selected[key] = path
|
56
|
+
else
|
57
|
+
selected[key] ||= path
|
58
|
+
end
|
59
|
+
end
|
60
|
+
selected.values.each do |orig_src|
|
47
61
|
src = helpers.prefer_example(orig_src)
|
48
62
|
# Destination path should never include the .example suffix.
|
49
63
|
rel = orig_src.sub(/^#{Regexp.escape(gem_checkout_root)}\/?/, "").sub(/\.example\z/, "")
|
@@ -90,65 +104,90 @@ module Kettle
|
|
90
104
|
allow_replace: true,
|
91
105
|
)
|
92
106
|
|
93
|
-
#
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
107
|
+
# 4a) gemfiles/modular/*.gemfile
|
108
|
+
# from gem's gemfiles/modular,
|
109
|
+
# except `style.gemfile` which has special handling below
|
110
|
+
modular_gemfiles = %w[
|
111
|
+
coverage
|
112
|
+
debug
|
113
|
+
documentation
|
114
|
+
injected
|
115
|
+
optional
|
116
|
+
runtime_heads
|
117
|
+
x_std_libs
|
118
|
+
]
|
119
|
+
modular_gemfiles.each do |base|
|
120
|
+
modular_gemfile = "#{base}.gemfile"
|
121
|
+
src = helpers.prefer_example(File.join(gem_checkout_root, MODULAR_GEMFILE_DIR, modular_gemfile))
|
122
|
+
dest = File.join(project_root, MODULAR_GEMFILE_DIR, modular_gemfile)
|
123
|
+
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true)
|
124
|
+
end
|
125
|
+
|
126
|
+
# 4b) gemfiles/modular/style.gemfile
|
127
|
+
modular_gemfile = "style.gemfile"
|
128
|
+
src = helpers.prefer_example(File.join(gem_checkout_root, MODULAR_GEMFILE_DIR, modular_gemfile))
|
129
|
+
dest = File.join(project_root, MODULAR_GEMFILE_DIR, modular_gemfile)
|
130
|
+
if File.basename(src).sub(/\.example\z/, "") == "style.gemfile"
|
131
|
+
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true) do |content|
|
132
|
+
# Adjust rubocop-lts constraint based on min_ruby
|
133
|
+
version_map = [
|
134
|
+
[Gem::Version.new("1.8"), "~> 0.1"],
|
135
|
+
[Gem::Version.new("1.9"), "~> 2.0"],
|
136
|
+
[Gem::Version.new("2.0"), "~> 4.0"],
|
137
|
+
[Gem::Version.new("2.1"), "~> 6.0"],
|
138
|
+
[Gem::Version.new("2.2"), "~> 8.0"],
|
139
|
+
[Gem::Version.new("2.3"), "~> 10.0"],
|
140
|
+
[Gem::Version.new("2.4"), "~> 12.0"],
|
141
|
+
[Gem::Version.new("2.5"), "~> 14.0"],
|
142
|
+
[Gem::Version.new("2.6"), "~> 16.0"],
|
143
|
+
[Gem::Version.new("2.7"), "~> 18.0"],
|
144
|
+
[Gem::Version.new("3.0"), "~> 20.0"],
|
145
|
+
[Gem::Version.new("3.1"), "~> 22.0"],
|
146
|
+
[Gem::Version.new("3.2"), "~> 24.0"],
|
147
|
+
[Gem::Version.new("3.3"), "~> 26.0"],
|
148
|
+
[Gem::Version.new("3.4"), "~> 28.0"],
|
149
|
+
]
|
150
|
+
new_constraint = nil
|
151
|
+
rubocop_ruby_gem_version = nil
|
152
|
+
ruby1_8 = version_map.first
|
153
|
+
begin
|
154
|
+
if min_ruby
|
155
|
+
version_map.reverse_each do |min, req|
|
156
|
+
if min_ruby >= min
|
157
|
+
new_constraint = req
|
158
|
+
rubocop_ruby_gem_version = min.segments.join("_")
|
159
|
+
break
|
128
160
|
end
|
129
161
|
end
|
130
|
-
if !new_constraint || !rubocop_ruby_gem_version
|
131
|
-
# A gem with no declared minimum ruby is effectively >= 1.8.7
|
132
|
-
new_constraint = ruby1_8[1]
|
133
|
-
rubocop_ruby_gem_version = ruby1_8[0].segments.join("_")
|
134
|
-
end
|
135
|
-
rescue StandardError => e
|
136
|
-
Kettle::Dev.debug_error(e, __method__)
|
137
|
-
# ignore, use default
|
138
|
-
ensure
|
139
|
-
new_constraint ||= ruby1_8[1]
|
140
|
-
rubocop_ruby_gem_version ||= ruby1_8[0].segments.join("_")
|
141
162
|
end
|
142
|
-
if new_constraint
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
content.gsub!(token, "rubocop-ruby#{rubocop_ruby_gem_version}") if content.include?(token)
|
163
|
+
if !new_constraint || !rubocop_ruby_gem_version
|
164
|
+
# A gem with no declared minimum ruby is effectively >= 1.8.7
|
165
|
+
new_constraint = ruby1_8[1]
|
166
|
+
rubocop_ruby_gem_version = ruby1_8[0].segments.join("_")
|
147
167
|
end
|
168
|
+
rescue StandardError => e
|
169
|
+
Kettle::Dev.debug_error(e, __method__)
|
170
|
+
# ignore, use default
|
171
|
+
ensure
|
172
|
+
new_constraint ||= ruby1_8[1]
|
173
|
+
rubocop_ruby_gem_version ||= ruby1_8[0].segments.join("_")
|
174
|
+
end
|
175
|
+
if new_constraint && rubocop_ruby_gem_version
|
176
|
+
token = "{RUBOCOP|LTS|CONSTRAINT}"
|
177
|
+
content.gsub!(token, new_constraint) if content.include?(token)
|
178
|
+
token = "{RUBOCOP|RUBY|GEM}"
|
179
|
+
content.gsub!(token, "rubocop-ruby#{rubocop_ruby_gem_version}") if content.include?(token)
|
148
180
|
end
|
149
|
-
else
|
150
|
-
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true)
|
151
181
|
end
|
182
|
+
else
|
183
|
+
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true)
|
184
|
+
end
|
185
|
+
|
186
|
+
# 4c) Copy modular directories with nested/versioned files
|
187
|
+
%w[erb mutex_m stringio x_std_libs].each do |dir|
|
188
|
+
src_dir = File.join(gem_checkout_root, MODULAR_GEMFILE_DIR, dir)
|
189
|
+
dest_dir = File.join(project_root, MODULAR_GEMFILE_DIR, dir)
|
190
|
+
helpers.copy_dir_with_prompt(src_dir, dest_dir)
|
152
191
|
end
|
153
192
|
|
154
193
|
# 5) spec/spec_helper.rb (no create)
|
@@ -347,16 +386,20 @@ module Kettle
|
|
347
386
|
end
|
348
387
|
|
349
388
|
files_to_copy = %w[
|
389
|
+
.aiignore
|
350
390
|
.envrc
|
351
391
|
.gitignore
|
352
392
|
.gitlab-ci.yml
|
393
|
+
.junie/guidelines-rbs.md
|
394
|
+
.junie/guidelines.md
|
395
|
+
.opencollective.yml
|
353
396
|
.rspec
|
354
397
|
.rubocop.yml
|
398
|
+
.rubocop_rspec.yml
|
355
399
|
.simplecov
|
356
400
|
.tool-versions
|
357
401
|
.yard_gfm_support.rb
|
358
402
|
.yardopts
|
359
|
-
.opencollective.yml
|
360
403
|
Appraisal.root.gemfile
|
361
404
|
Appraisals
|
362
405
|
CHANGELOG.md
|
@@ -365,12 +408,10 @@ module Kettle
|
|
365
408
|
CONTRIBUTING.md
|
366
409
|
FUNDING.md
|
367
410
|
Gemfile
|
368
|
-
Rakefile
|
369
411
|
README.md
|
370
412
|
RUBOCOP.md
|
413
|
+
Rakefile
|
371
414
|
SECURITY.md
|
372
|
-
.junie/guidelines.md
|
373
|
-
.junie/guidelines-rbs.md
|
374
415
|
]
|
375
416
|
|
376
417
|
# Snapshot existing README content once (for H1 prefix preservation after write)
|
data/lib/kettle/dev/version.rb
CHANGED
data/lib/kettle/dev.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kettle-dev
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter H. Boling
|
@@ -215,6 +215,7 @@ extra_rdoc_files:
|
|
215
215
|
- RUBOCOP.md
|
216
216
|
- SECURITY.md
|
217
217
|
files:
|
218
|
+
- ".aiignore.example"
|
218
219
|
- ".devcontainer/devcontainer.json"
|
219
220
|
- ".env.local.example"
|
220
221
|
- ".envrc"
|
@@ -232,6 +233,7 @@ files:
|
|
232
233
|
- ".github/workflows/coverage.yml"
|
233
234
|
- ".github/workflows/coverage.yml.example"
|
234
235
|
- ".github/workflows/current.yml"
|
236
|
+
- ".github/workflows/dep-heads.yml"
|
235
237
|
- ".github/workflows/dependency-review.yml"
|
236
238
|
- ".github/workflows/discord-notifier.yml"
|
237
239
|
- ".github/workflows/heads.yml"
|
@@ -287,12 +289,37 @@ files:
|
|
287
289
|
- exe/kettle-readme-backers
|
288
290
|
- exe/kettle-release
|
289
291
|
- gemfiles/modular/coverage.gemfile
|
292
|
+
- gemfiles/modular/debug.gemfile
|
290
293
|
- gemfiles/modular/documentation.gemfile
|
294
|
+
- gemfiles/modular/erb/r2.3/default.gemfile
|
295
|
+
- gemfiles/modular/erb/r2.6/v2.2.gemfile
|
296
|
+
- gemfiles/modular/erb/r2/v3.0.gemfile
|
297
|
+
- gemfiles/modular/erb/r3.1/v4.0.gemfile
|
298
|
+
- gemfiles/modular/erb/r3/v5.0.gemfile
|
299
|
+
- gemfiles/modular/erb/vHEAD.gemfile
|
291
300
|
- gemfiles/modular/injected.gemfile
|
301
|
+
- gemfiles/modular/mutex_m/r2.4/v0.1.gemfile
|
302
|
+
- gemfiles/modular/mutex_m/r2/v0.3.gemfile
|
303
|
+
- gemfiles/modular/mutex_m/r3/v0.3.gemfile
|
304
|
+
- gemfiles/modular/mutex_m/vHEAD.gemfile
|
292
305
|
- gemfiles/modular/optional.gemfile
|
293
306
|
- gemfiles/modular/optional.gemfile.example
|
307
|
+
- gemfiles/modular/runtime_heads.gemfile
|
308
|
+
- gemfiles/modular/runtime_heads.gemfile.example
|
309
|
+
- gemfiles/modular/stringio/r2.4/v0.0.2.gemfile
|
310
|
+
- gemfiles/modular/stringio/r2/v3.0.gemfile
|
311
|
+
- gemfiles/modular/stringio/r3/v3.0.gemfile
|
312
|
+
- gemfiles/modular/stringio/vHEAD.gemfile
|
294
313
|
- gemfiles/modular/style.gemfile
|
295
314
|
- gemfiles/modular/style.gemfile.example
|
315
|
+
- gemfiles/modular/x_std_libs.gemfile
|
316
|
+
- gemfiles/modular/x_std_libs/r2.3/libs.gemfile
|
317
|
+
- gemfiles/modular/x_std_libs/r2.4/libs.gemfile
|
318
|
+
- gemfiles/modular/x_std_libs/r2.6/libs.gemfile
|
319
|
+
- gemfiles/modular/x_std_libs/r2/libs.gemfile
|
320
|
+
- gemfiles/modular/x_std_libs/r3.1/libs.gemfile
|
321
|
+
- gemfiles/modular/x_std_libs/r3/libs.gemfile
|
322
|
+
- gemfiles/modular/x_std_libs/vHEAD.gemfile
|
296
323
|
- kettle-dev.gemspec.example
|
297
324
|
- lib/kettle-dev.rb
|
298
325
|
- lib/kettle/dev.rb
|
@@ -354,10 +381,10 @@ licenses:
|
|
354
381
|
- MIT
|
355
382
|
metadata:
|
356
383
|
homepage_uri: https://kettle-dev.galtzo.com/
|
357
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.
|
358
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.
|
384
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.9
|
385
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.9/CHANGELOG.md
|
359
386
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
360
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
387
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.9
|
361
388
|
funding_uri: https://github.com/sponsors/pboling
|
362
389
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
363
390
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
Binary file
|