kettle-dev 1.1.7 → 1.1.8
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 +25 -2
- data/Gemfile +5 -9
- data/Gemfile.example +5 -9
- data/README.md +4 -2
- data/README.md.example +1 -1
- 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/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 +34 -6
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle/dev.rb +4 -0
- data.tar.gz.sig +0 -0
- metadata +30 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff2a4f1326475cd3de4fb3decf7b10780dd0bbb16cd55ea1dc5e78f64bfde631
|
4
|
+
data.tar.gz: a584158146f8f8a25343523d2cd76cfb5adc4d6e4e5907a215200239170ef620
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 973dc68e687f835510748a22d9d26d6a7d719b4c9ca782fe868c4619aca0c2766bb3d0d4279b78ee2ed407f0b084da45eacc17882ecd9ad116f8fad3b5a70eb9
|
7
|
+
data.tar.gz: 8a6761e6d72cf33b92622a9f0706884cc0b0ec1d2e16fc5419685f28dc2497418248eabffcf7447300aec6939c7164a2312c4fec3061137964bf1bce555544f8
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/.aiignore.example
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# An .aiignore file follows the same syntax as a .gitignore file.
|
2
|
+
# .gitignore documentation: https://git-scm.com/docs/gitignore
|
3
|
+
|
4
|
+
# you can ignore files
|
5
|
+
.DS_Store
|
6
|
+
*.log
|
7
|
+
*.tmp
|
8
|
+
|
9
|
+
# or folders
|
10
|
+
.devcontainer/
|
11
|
+
.qlty/
|
12
|
+
.yardoc/
|
13
|
+
dist/
|
14
|
+
build/
|
15
|
+
out/
|
16
|
+
coverage/
|
17
|
+
docs/
|
18
|
+
pkg/
|
19
|
+
results/
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# Targets the evergreen latest release of ruby, truffleruby, and jruby
|
2
|
+
# and tests against the HEAD of runtime dependencies
|
3
|
+
name: Runtime Deps @ HEAD
|
4
|
+
|
5
|
+
permissions:
|
6
|
+
contents: read
|
7
|
+
|
8
|
+
env:
|
9
|
+
K_SOUP_COV_DO: false
|
10
|
+
|
11
|
+
on:
|
12
|
+
push:
|
13
|
+
branches:
|
14
|
+
- 'main'
|
15
|
+
- '*-stable'
|
16
|
+
tags:
|
17
|
+
- '!*' # Do not execute on tags
|
18
|
+
pull_request:
|
19
|
+
branches:
|
20
|
+
- '*'
|
21
|
+
# Allow manually triggering the workflow.
|
22
|
+
workflow_dispatch:
|
23
|
+
|
24
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
25
|
+
concurrency:
|
26
|
+
# The concurrency group contains the workflow name and the branch name.
|
27
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
28
|
+
cancel-in-progress: true
|
29
|
+
|
30
|
+
jobs:
|
31
|
+
test:
|
32
|
+
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
|
33
|
+
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
|
34
|
+
runs-on: ubuntu-latest
|
35
|
+
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
36
|
+
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
37
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
|
38
|
+
strategy:
|
39
|
+
fail-fast: true
|
40
|
+
matrix:
|
41
|
+
include:
|
42
|
+
# Ruby 3.4
|
43
|
+
- ruby: "ruby"
|
44
|
+
appraisal: "dep-heads"
|
45
|
+
exec_cmd: "rake test"
|
46
|
+
gemfile: "Appraisal.root"
|
47
|
+
rubygems: latest
|
48
|
+
bundler: latest
|
49
|
+
|
50
|
+
# truffleruby-24.1
|
51
|
+
# (according to documentation: targets Ruby 3.3 compatibility)
|
52
|
+
# (according to runtime: targets Ruby 3.2 compatibility)
|
53
|
+
- ruby: "truffleruby"
|
54
|
+
appraisal: "dep-heads"
|
55
|
+
exec_cmd: "rake test"
|
56
|
+
gemfile: "Appraisal.root"
|
57
|
+
rubygems: default
|
58
|
+
bundler: default
|
59
|
+
|
60
|
+
# jruby-10.0 (targets Ruby 3.4 compatibility)
|
61
|
+
- ruby: "jruby"
|
62
|
+
appraisal: "dep-heads"
|
63
|
+
exec_cmd: "rake test"
|
64
|
+
gemfile: "Appraisal.root"
|
65
|
+
rubygems: default
|
66
|
+
bundler: default
|
67
|
+
|
68
|
+
steps:
|
69
|
+
- name: Checkout
|
70
|
+
if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
|
71
|
+
uses: actions/checkout@v5
|
72
|
+
|
73
|
+
- name: Setup Ruby & RubyGems
|
74
|
+
if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
|
75
|
+
uses: ruby/setup-ruby@v1
|
76
|
+
with:
|
77
|
+
ruby-version: ${{ matrix.ruby }}
|
78
|
+
rubygems: ${{ matrix.rubygems }}
|
79
|
+
bundler: ${{ matrix.bundler }}
|
80
|
+
bundler-cache: false
|
81
|
+
|
82
|
+
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
83
|
+
# We need to do this first to get appraisal installed.
|
84
|
+
# NOTE: This does not use the primary Gemfile at all.
|
85
|
+
- name: "Install Root Appraisal"
|
86
|
+
if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
|
87
|
+
run: bundle
|
88
|
+
|
89
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
90
|
+
if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
|
91
|
+
id: bundleAttempt1
|
92
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
93
|
+
# Continue to the next step on failure
|
94
|
+
continue-on-error: true
|
95
|
+
|
96
|
+
# Effectively an automatic retry of the previous step.
|
97
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
98
|
+
# If bundleAttempt1 failed, try again here; Otherwise skip.
|
99
|
+
if: ${{ steps.bundleAttempt1.outcome == 'failure' && !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
|
100
|
+
id: bundleAttempt2
|
101
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
102
|
+
|
103
|
+
- name: Tests for ${{ matrix.ruby }}@${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
|
104
|
+
if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
|
105
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
data/.gitlab-ci.yml.example
CHANGED
@@ -38,12 +38,12 @@ workflow:
|
|
38
38
|
# For tags, create a pipeline.
|
39
39
|
- if: '$CI_COMMIT_TAG'
|
40
40
|
|
41
|
-
.
|
41
|
+
.test_template-current: &test_definition-current
|
42
42
|
image: ruby:${RUBY_VERSION}
|
43
43
|
stage: test
|
44
44
|
script:
|
45
45
|
# || true so we don't fail here, because it'll probably work even if the gem update fails
|
46
|
-
- gem update --system > /dev/null 2>&1 || true
|
46
|
+
- gem update --silent --system > /dev/null 2>&1 || true
|
47
47
|
- mkdir -p vendor/bundle
|
48
48
|
- bundle config set path 'vendor/bundle'
|
49
49
|
- chmod +t -R vendor/bundle
|
@@ -61,14 +61,76 @@ workflow:
|
|
61
61
|
--tag \~ci_skip \
|
62
62
|
--format progress \
|
63
63
|
--format RspecJunitFormatter
|
64
|
+
cache:
|
65
|
+
key: ${CI_JOB_IMAGE}
|
66
|
+
paths:
|
67
|
+
- vendor/ruby
|
64
68
|
|
69
|
+
.test_template-legacy: &test_definition-legacy
|
70
|
+
image: ruby:${RUBY_VERSION}
|
71
|
+
stage: test
|
72
|
+
script:
|
73
|
+
# RUBYGEMS_VERSION because we support EOL Ruby still...
|
74
|
+
# || true so we don't fail here, because it'll probably work even if the gem update fails
|
75
|
+
- gem install rubygems-update -v ${RUBYGEMS_VERSION} || true
|
76
|
+
# Actually updates both RubyGems and Bundler!
|
77
|
+
- update_rubygems
|
78
|
+
- mkdir -p vendor/bundle
|
79
|
+
- bundle config set path 'vendor/bundle'
|
80
|
+
- chmod +t -R vendor/bundle
|
81
|
+
- chmod o-w -R vendor/bundle
|
82
|
+
# Setup appraisal2
|
83
|
+
- bundle install
|
84
|
+
# Bundle a specific appraisal
|
85
|
+
- bundle exec appraisal ${APPRAISAL} bundle install
|
86
|
+
# Light smoke test
|
87
|
+
- bundle exec appraisal ${APPRAISAL} bin/rake --tasks
|
88
|
+
# Run tests, skipping those that won't work in CI
|
89
|
+
- >
|
90
|
+
bundle exec appraisal unlocked_deps \
|
91
|
+
bin/rspec spec \
|
92
|
+
--tag \~ci_skip \
|
93
|
+
--format progress \
|
94
|
+
--format RspecJunitFormatter
|
65
95
|
cache:
|
66
96
|
key: ${CI_JOB_IMAGE}
|
67
97
|
paths:
|
68
98
|
- vendor/ruby
|
69
99
|
|
70
|
-
current
|
71
|
-
|
100
|
+
ruby-current:
|
101
|
+
variables:
|
102
|
+
K_SOUP_COV_DO: true
|
103
|
+
<<: *test_definition-current
|
72
104
|
parallel:
|
73
105
|
matrix:
|
74
106
|
- RUBY_VERSION: ["3.2", "3.3", "3.4"]
|
107
|
+
|
108
|
+
ruby-ruby3_1:
|
109
|
+
variables:
|
110
|
+
RUBYGEMS_VERSION: "3.6.9"
|
111
|
+
APPRAISAL: ruby_3_1
|
112
|
+
K_SOUP_COV_DO: false
|
113
|
+
<<: *test_definition-legacy
|
114
|
+
parallel:
|
115
|
+
matrix:
|
116
|
+
- RUBY_VERSION: ["3.1"]
|
117
|
+
|
118
|
+
ruby-ruby3_0:
|
119
|
+
variables:
|
120
|
+
RUBYGEMS_VERSION: "3.5.23"
|
121
|
+
APPRAISAL: ruby_3_0
|
122
|
+
K_SOUP_COV_DO: false
|
123
|
+
<<: *test_definition-legacy
|
124
|
+
parallel:
|
125
|
+
matrix:
|
126
|
+
- RUBY_VERSION: ["3.0"]
|
127
|
+
|
128
|
+
ruby-ruby2_7:
|
129
|
+
variables:
|
130
|
+
RUBYGEMS_VERSION: "3.4.22"
|
131
|
+
APPRAISAL: ruby_2_7
|
132
|
+
K_SOUP_COV_DO: false
|
133
|
+
<<: *test_definition-legacy
|
134
|
+
parallel:
|
135
|
+
matrix:
|
136
|
+
- RUBY_VERSION: ["2.7"]
|
data/.junie/guidelines.md
CHANGED
@@ -13,7 +13,7 @@ This document captures project-specific knowledge to streamline setup, testing,
|
|
13
13
|
- See CONTRIBUTING.md for details on how to set up your local environment.
|
14
14
|
- Ruby and Bundler
|
15
15
|
- Runtime supports very old Rubies (>= 1.9.2) but development tooling targets >= 2.3 because of CI/setup-ruby and dev dependencies.
|
16
|
-
- Use a recent Ruby (>= 3.
|
16
|
+
- Use a recent Ruby (>= 3.4 recommended) for fastest setup and to exercise modern coverage behavior.
|
17
17
|
- Install dependencies via Bundler in project root:
|
18
18
|
- bundle install
|
19
19
|
- Rake tasks (preferred entry points)
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
inherit_gem:
|
2
2
|
rubocop-lts: config/rubygem_rspec.yml
|
3
3
|
|
4
|
+
inherit_from:
|
5
|
+
- .rubocop_rspec.yml
|
6
|
+
|
4
7
|
plugins: rubocop-on-rbs
|
5
8
|
|
6
9
|
RBS:
|
@@ -8,12 +11,3 @@ RBS:
|
|
8
11
|
|
9
12
|
Layout/IndentationConsistency:
|
10
13
|
Exclude: ['*.md']
|
11
|
-
|
12
|
-
RSpec/ExampleLength:
|
13
|
-
Enabled: false
|
14
|
-
|
15
|
-
RSpec/MultipleExpectations:
|
16
|
-
Enabled: false
|
17
|
-
|
18
|
-
RSpec/NestedGroups:
|
19
|
-
Enabled: false
|
data/Appraisals
CHANGED
@@ -20,12 +20,12 @@
|
|
20
20
|
# - Broken workflow indicates that a new contributor will have a bad time
|
21
21
|
#
|
22
22
|
appraise "unlocked_deps" do
|
23
|
-
gem "erb"
|
24
23
|
eval_gemfile "modular/coverage.gemfile"
|
25
24
|
eval_gemfile "modular/documentation.gemfile"
|
26
25
|
eval_gemfile "modular/style.gemfile"
|
27
26
|
eval_gemfile "modular/optional.gemfile"
|
28
27
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
28
|
+
eval_gemfile "modular/x_std_libs.gemfile"
|
29
29
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
30
30
|
# eval_gemfile "modular/injected.gemfile"
|
31
31
|
end
|
@@ -33,13 +33,11 @@ end
|
|
33
33
|
# Used for head (nightly) releases of ruby, truffleruby, and jruby.
|
34
34
|
# Split into discrete appraisals if one of them needs a dependency locked discretely.
|
35
35
|
appraise "head" do
|
36
|
-
gem
|
37
|
-
# See: https://github.com/vcr/vcr/issues/1057
|
36
|
+
# Why is cgi gem here? See: https://github.com/vcr/vcr/issues/1057
|
38
37
|
gem "cgi", ">= 0.5"
|
39
|
-
gem "mutex_m", ">= 0.2"
|
40
|
-
gem "stringio", ">= 3.0"
|
41
38
|
gem "benchmark", "~> 0.4", ">= 0.4.1"
|
42
39
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
40
|
+
eval_gemfile "modular/x_std_libs.gemfile"
|
43
41
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
44
42
|
# eval_gemfile "modular/injected.gemfile"
|
45
43
|
end
|
@@ -47,61 +45,55 @@ end
|
|
47
45
|
# Used for current releases of ruby, truffleruby, and jruby.
|
48
46
|
# Split into discrete appraisals if one of them needs a dependency locked discretely.
|
49
47
|
appraise "current" do
|
50
|
-
gem "erb"
|
51
|
-
gem "mutex_m", ">= 0.2"
|
52
|
-
gem "stringio", ">= 3.0"
|
53
48
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
49
|
+
eval_gemfile "modular/x_std_libs.gemfile"
|
54
50
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
55
51
|
# eval_gemfile "modular/injected.gemfile"
|
56
52
|
end
|
57
53
|
|
54
|
+
# Test current Rubies against head versions of runtime dependencies
|
55
|
+
appraise "dep-heads" do
|
56
|
+
eval_gemfile "modular/runtime_heads.gemfile"
|
57
|
+
end
|
58
|
+
|
58
59
|
appraise "ruby-2-3" do
|
59
|
-
# The cake is a lie. erb v2.2, the oldest release on RubyGems.org, was never compatible with Ruby 2.3.
|
60
|
-
# This means we have no choice but to use the erb that shipped with Ruby 2.3
|
61
|
-
# /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)
|
62
|
-
# spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch.
|
63
60
|
eval_gemfile "modular/recording/r2.3/recording.gemfile"
|
61
|
+
eval_gemfile "modular/x_std_libs/r2.3/libs.gemfile"
|
64
62
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
65
63
|
# eval_gemfile "modular/injected.gemfile"
|
66
64
|
end
|
67
65
|
|
68
66
|
appraise "ruby-2-4" do
|
69
|
-
gem "erb"
|
70
67
|
eval_gemfile "modular/recording/r2.4/recording.gemfile"
|
68
|
+
eval_gemfile "modular/x_std_libs/r2.4/libs.gemfile"
|
71
69
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
72
70
|
# eval_gemfile "modular/injected.gemfile"
|
73
71
|
end
|
74
72
|
|
75
73
|
appraise "ruby-2-5" do
|
76
|
-
gem "erb"
|
77
74
|
eval_gemfile "modular/recording/r2.5/recording.gemfile"
|
75
|
+
eval_gemfile "modular/x_std_libs/r2.6/libs.gemfile"
|
78
76
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
79
77
|
# eval_gemfile "modular/injected.gemfile"
|
80
78
|
end
|
81
79
|
|
82
80
|
appraise "ruby-2-6" do
|
83
|
-
gem "erb"
|
84
|
-
gem "mutex_m", "~> 0.2"
|
85
|
-
gem "stringio", "~> 3.0"
|
86
81
|
eval_gemfile "modular/recording/r2.5/recording.gemfile"
|
82
|
+
eval_gemfile "modular/x_std_libs/r2.6/libs.gemfile"
|
87
83
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
88
84
|
# eval_gemfile "modular/injected.gemfile"
|
89
85
|
end
|
90
86
|
|
91
87
|
appraise "ruby-2-7" do
|
92
|
-
gem "erb"
|
93
|
-
gem "mutex_m", "~> 0.2"
|
94
|
-
gem "stringio", "~> 3.0"
|
95
88
|
eval_gemfile "modular/recording/r2.5/recording.gemfile"
|
89
|
+
eval_gemfile "modular/x_std_libs/r3.1/libs.gemfile"
|
96
90
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
97
91
|
# eval_gemfile "modular/injected.gemfile"
|
98
92
|
end
|
99
93
|
|
100
94
|
appraise "ruby-3-0" do
|
101
|
-
gem "erb"
|
102
|
-
gem "mutex_m", "~> 0.2"
|
103
|
-
gem "stringio", "~> 3.0"
|
104
95
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
96
|
+
eval_gemfile "modular/x_std_libs/r3.1/libs.gemfile"
|
105
97
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
106
98
|
# eval_gemfile "modular/injected.gemfile"
|
107
99
|
end
|
@@ -109,10 +101,8 @@ end
|
|
109
101
|
appraise "ruby-3-1" do
|
110
102
|
# all versions of git gem are incompatible with truffleruby v23.0, syntactically.
|
111
103
|
# So tests relying on the git gem are skipped, to avoid loading it.
|
112
|
-
gem "erb"
|
113
|
-
gem "mutex_m", "~> 0.2"
|
114
|
-
gem "stringio", "~> 3.0"
|
115
104
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
105
|
+
eval_gemfile "modular/x_std_libs/r3.1/libs.gemfile"
|
116
106
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
117
107
|
# eval_gemfile "modular/injected.gemfile"
|
118
108
|
end
|
@@ -120,50 +110,40 @@ end
|
|
120
110
|
appraise "ruby-3-2" do
|
121
111
|
# all versions of git gem are incompatible with truffleruby v23.1, syntactically.
|
122
112
|
# So tests relying on the git gem are skipped, to avoid loading it.
|
123
|
-
gem "erb"
|
124
|
-
gem "mutex_m", "~> 0.2"
|
125
|
-
gem "stringio", "~> 3.0"
|
126
113
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
114
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
127
115
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
128
116
|
# eval_gemfile "modular/injected.gemfile"
|
129
117
|
end
|
130
118
|
|
131
119
|
appraise "ruby-3-3" do
|
132
120
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
133
|
-
|
134
|
-
gem "mutex_m", "~> 0.2"
|
135
|
-
gem "stringio", "~> 3.0"
|
121
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
136
122
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
137
123
|
# eval_gemfile "modular/injected.gemfile"
|
138
124
|
end
|
139
125
|
|
140
126
|
# Only run security audit on the latest version of Ruby
|
141
127
|
appraise "audit" do
|
142
|
-
|
143
|
-
gem "mutex_m", "~> 0.2"
|
144
|
-
gem "stringio", "~> 3.0"
|
128
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
145
129
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
146
130
|
# eval_gemfile "modular/injected.gemfile"
|
147
131
|
end
|
148
132
|
|
149
133
|
# Only run coverage on the latest version of Ruby
|
150
134
|
appraise "coverage" do
|
151
|
-
gem "erb"
|
152
|
-
gem "mutex_m", "~> 0.2"
|
153
|
-
gem "stringio", "~> 3.0"
|
154
135
|
eval_gemfile "modular/coverage.gemfile"
|
155
136
|
eval_gemfile "modular/optional.gemfile"
|
156
137
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
138
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
157
139
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
158
140
|
# eval_gemfile "modular/injected.gemfile"
|
159
141
|
end
|
160
142
|
|
161
143
|
# Only run linter on the latest version of Ruby (but, in support of oldest supported Ruby version)
|
162
144
|
appraise "style" do
|
163
|
-
gem "erb"
|
164
|
-
gem "mutex_m", "~> 0.2"
|
165
|
-
gem "stringio", "~> 3.0"
|
166
145
|
eval_gemfile "modular/style.gemfile"
|
146
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
167
147
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
168
148
|
# eval_gemfile "modular/injected.gemfile"
|
169
149
|
end
|
data/Appraisals.example
CHANGED
@@ -24,79 +24,77 @@ appraise "unlocked_deps" do
|
|
24
24
|
eval_gemfile "modular/documentation.gemfile"
|
25
25
|
eval_gemfile "modular/style.gemfile"
|
26
26
|
eval_gemfile "modular/optional.gemfile"
|
27
|
+
eval_gemfile "modular/x_std_libs.gemfile"
|
27
28
|
end
|
28
29
|
|
29
30
|
# Used for head (nightly) releases of ruby, truffleruby, and jruby.
|
30
31
|
# Split into discrete appraisals if one of them needs a dependency locked discretely.
|
31
32
|
appraise "head" do
|
32
|
-
gem "mutex_m", ">= 0.2"
|
33
|
-
gem "stringio", ">= 3.0"
|
34
33
|
gem "benchmark", "~> 0.4", ">= 0.4.1"
|
34
|
+
eval_gemfile "modular/x_std_libs.gemfile"
|
35
35
|
end
|
36
36
|
|
37
37
|
# Used for current releases of ruby, truffleruby, and jruby.
|
38
38
|
# Split into discrete appraisals if one of them needs a dependency locked discretely.
|
39
39
|
appraise "current" do
|
40
|
-
|
41
|
-
|
40
|
+
eval_gemfile "modular/x_std_libs.gemfile"
|
41
|
+
end
|
42
|
+
|
43
|
+
# Test current Rubies against head versions of runtime dependencies
|
44
|
+
appraise "dep-heads" do
|
45
|
+
eval_gemfile "modular/runtime_heads.gemfile"
|
42
46
|
end
|
43
47
|
|
44
48
|
appraise "ruby-2-3" do
|
49
|
+
eval_gemfile "modular/x_std_libs/r2.3/libs.gemfile"
|
45
50
|
end
|
46
51
|
|
47
52
|
appraise "ruby-2-4" do
|
53
|
+
eval_gemfile "modular/x_std_libs/r2.4/libs.gemfile"
|
48
54
|
end
|
49
55
|
|
50
56
|
appraise "ruby-2-5" do
|
57
|
+
eval_gemfile "modular/x_std_libs/r2.6/libs.gemfile"
|
51
58
|
end
|
52
59
|
|
53
60
|
appraise "ruby-2-6" do
|
54
|
-
|
55
|
-
gem "stringio", "~> 3.0"
|
61
|
+
eval_gemfile "modular/x_std_libs/r2.6/libs.gemfile"
|
56
62
|
end
|
57
63
|
|
58
64
|
appraise "ruby-2-7" do
|
59
|
-
|
60
|
-
gem "stringio", "~> 3.0"
|
65
|
+
eval_gemfile "modular/x_std_libs/r3.1/libs.gemfile"
|
61
66
|
end
|
62
67
|
|
63
68
|
appraise "ruby-3-0" do
|
64
|
-
|
65
|
-
gem "stringio", "~> 3.0"
|
69
|
+
eval_gemfile "modular/x_std_libs/r3.1/libs.gemfile"
|
66
70
|
end
|
67
71
|
|
68
72
|
appraise "ruby-3-1" do
|
69
|
-
|
70
|
-
gem "stringio", "~> 3.0"
|
73
|
+
eval_gemfile "modular/x_std_libs/r3.1/libs.gemfile"
|
71
74
|
end
|
72
75
|
|
73
76
|
appraise "ruby-3-2" do
|
74
|
-
|
75
|
-
gem "stringio", "~> 3.0"
|
77
|
+
eval_gemfile "modular/x_std_libs/3/libs.gemfile"
|
76
78
|
end
|
77
79
|
|
78
80
|
appraise "ruby-3-3" do
|
79
|
-
|
80
|
-
gem "stringio", "~> 3.0"
|
81
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
81
82
|
end
|
82
83
|
|
83
84
|
# Only run security audit on the latest version of Ruby
|
84
85
|
appraise "audit" do
|
85
|
-
|
86
|
-
gem "stringio", "~> 3.0"
|
86
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
87
87
|
end
|
88
88
|
|
89
89
|
# Only run coverage on the latest version of Ruby
|
90
90
|
appraise "coverage" do
|
91
|
-
gem "mutex_m", "~> 0.2"
|
92
|
-
gem "stringio", "~> 3.0"
|
93
91
|
eval_gemfile "modular/coverage.gemfile"
|
94
92
|
eval_gemfile "modular/optional.gemfile"
|
93
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
95
94
|
end
|
96
95
|
|
97
96
|
# Only run linter on the latest version of Ruby (but, in support of oldest supported Ruby version)
|
98
97
|
appraise "style" do
|
99
|
-
gem "mutex_m", "~> 0.2"
|
100
|
-
gem "stringio", "~> 3.0"
|
101
98
|
eval_gemfile "modular/style.gemfile"
|
99
|
+
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
|
102
100
|
end
|
data/CHANGELOG.md
CHANGED
@@ -24,6 +24,27 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
24
24
|
### Fixed
|
25
25
|
### Security
|
26
26
|
|
27
|
+
## [1.1.8] - 2025-09-07
|
28
|
+
- TAG: [v1.1.8][1.1.8t]
|
29
|
+
- COVERAGE: 97.16% -- 3246/3341 lines in 23 files
|
30
|
+
- BRANCH COVERAGE: 81.95% -- 1344/1640 branches in 23 files
|
31
|
+
- 76.97% documented
|
32
|
+
### Added
|
33
|
+
- add .aiignore to the template
|
34
|
+
- add .rubocop_rspec.yml to the template
|
35
|
+
- gemfiles/modular/x_std_libs pattern to template, including:
|
36
|
+
- erb
|
37
|
+
- mutex_m
|
38
|
+
- stringio
|
39
|
+
- gemfiles/modular/debug.gemfile
|
40
|
+
- gemfiles/modular/runtime_heads.gemfile
|
41
|
+
- .github/workflows/dep-heads.yml
|
42
|
+
- (performance) filter and prioritize example files in the `.github` directory
|
43
|
+
- added codecov config to the template
|
44
|
+
- Kettle::Dev.default_registered?
|
45
|
+
### Fixed
|
46
|
+
- run specs as part of the test task
|
47
|
+
|
27
48
|
## [1.1.7] - 2025-09-06
|
28
49
|
- TAG: [v1.1.7][1.1.7t]
|
29
50
|
- COVERAGE: 97.12% -- 3237/3333 lines in 23 files
|
@@ -71,7 +92,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
71
92
|
### Removed
|
72
93
|
- defensive NameError handling in ChangelogCLI.abort method
|
73
94
|
### Fixed
|
74
|
-
- replace token {OPENCOLLECTIVE|ORG_NAME} with funding org name
|
95
|
+
- replace token `{OPENCOLLECTIVE|ORG_NAME}` with funding org name
|
75
96
|
- prefer .example version of .git-hooks
|
76
97
|
- kettle-commit-msg now runs via rubygems (not bundler) so it will work via a system gem
|
77
98
|
- fixed logic for handling derivation of forge and funding URLs
|
@@ -522,7 +543,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
522
543
|
- Selecting will run the selected workflow via `act`
|
523
544
|
- This may move to its own gem in the future.
|
524
545
|
|
525
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.
|
546
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.8...HEAD
|
547
|
+
[1.1.8]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.7...v1.1.8
|
548
|
+
[1.1.8t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.8
|
526
549
|
[1.1.7]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.6...v1.1.7
|
527
550
|
[1.1.7t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.7
|
528
551
|
[1.1.6]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.5...v1.1.6
|
data/Gemfile
CHANGED
@@ -12,15 +12,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" }
|
|
12
12
|
# Include dependencies from <gem name>.gemspec
|
13
13
|
gemspec
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
# Use binding.break, binding.b, or debugger in code
|
18
|
-
gem "debug", ">= 1.0.0" # ruby >= 2.7
|
19
|
-
gem "gem_bench", "~> 2.0", ">= 2.0.5"
|
20
|
-
|
21
|
-
# Dev Console - Binding.pry - Irb replacement
|
22
|
-
gem "pry", "~> 0.14" # ruby >= 2.0
|
23
|
-
end
|
15
|
+
# Debugging
|
16
|
+
eval_gemfile "gemfiles/modular/debug.gemfile"
|
24
17
|
|
25
18
|
# Code Coverage
|
26
19
|
eval_gemfile "gemfiles/modular/coverage.gemfile"
|
@@ -37,5 +30,8 @@ eval_gemfile "gemfiles/modular/documentation.gemfile"
|
|
37
30
|
# Optional
|
38
31
|
eval_gemfile "gemfiles/modular/optional.gemfile"
|
39
32
|
|
33
|
+
### Std Lib Extracted Gems
|
34
|
+
eval_gemfile "gemfiles/modular/x_std_libs.gemfile"
|
35
|
+
|
40
36
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
41
37
|
# eval_gemfile "gemfiles/modular/injected.gemfile"
|
data/Gemfile.example
CHANGED
@@ -12,15 +12,8 @@ git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" }
|
|
12
12
|
# Include dependencies from <gem name>.gemspec
|
13
13
|
gemspec
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
# Use binding.break, binding.b, or debugger in code
|
18
|
-
gem "debug", ">= 1.0.0" # ruby >= 2.7
|
19
|
-
gem "gem_bench", "~> 2.0", ">= 2.0.5"
|
20
|
-
|
21
|
-
# Dev Console - Binding.pry - Irb replacement
|
22
|
-
gem "pry", "~> 0.14" # ruby >= 2.0
|
23
|
-
end
|
15
|
+
# Debugging
|
16
|
+
eval_gemfile "gemfiles/modular/debug.gemfile"
|
24
17
|
|
25
18
|
# Code Coverage
|
26
19
|
eval_gemfile "gemfiles/modular/coverage.gemfile"
|
@@ -33,3 +26,6 @@ eval_gemfile "gemfiles/modular/documentation.gemfile"
|
|
33
26
|
|
34
27
|
# Optional
|
35
28
|
eval_gemfile "gemfiles/modular/optional.gemfile"
|
29
|
+
|
30
|
+
### Std Lib Extracted Gems
|
31
|
+
eval_gemfile "gemfiles/modular/x_std_libs.gemfile"
|
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.341-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
@@ -505,7 +505,7 @@ Thanks for RTFM. ☺️
|
|
505
505
|
[📌gitmoji]:https://gitmoji.dev
|
506
506
|
[📌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
507
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
508
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
508
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.341-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
509
509
|
[🔐security]: SECURITY.md
|
510
510
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
511
511
|
[📄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
|
@@ -41,9 +41,21 @@ module Kettle
|
|
41
41
|
# 2) .github/**/*.yml with FUNDING.yml customizations
|
42
42
|
source_github_dir = File.join(gem_checkout_root, ".github")
|
43
43
|
if Dir.exist?(source_github_dir)
|
44
|
-
|
44
|
+
# Build a unique set of logical .yml paths, preferring the .example variant when present
|
45
|
+
candidates = Dir.glob(File.join(source_github_dir, "**", "*.yml")) +
|
45
46
|
Dir.glob(File.join(source_github_dir, "**", "*.yml.example"))
|
46
|
-
|
47
|
+
selected = {}
|
48
|
+
candidates.each do |path|
|
49
|
+
# Key by the path without the optional .example suffix
|
50
|
+
key = path.sub(/\.example\z/, "")
|
51
|
+
# Prefer example: overwrite a plain selection with .example, but do not downgrade
|
52
|
+
if path.end_with?(".example")
|
53
|
+
selected[key] = path
|
54
|
+
else
|
55
|
+
selected[key] ||= path
|
56
|
+
end
|
57
|
+
end
|
58
|
+
selected.values.each do |orig_src|
|
47
59
|
src = helpers.prefer_example(orig_src)
|
48
60
|
# Destination path should never include the .example suffix.
|
49
61
|
rel = orig_src.sub(/^#{Regexp.escape(gem_checkout_root)}\/?/, "").sub(/\.example\z/, "")
|
@@ -151,6 +163,20 @@ module Kettle
|
|
151
163
|
end
|
152
164
|
end
|
153
165
|
|
166
|
+
# 4b) Additional modular gemfiles to include
|
167
|
+
["debug.gemfile", "runtime_heads.gemfile"].each do |fname|
|
168
|
+
src = helpers.prefer_example(File.join(gem_checkout_root, "gemfiles/modular", fname))
|
169
|
+
dest = File.join(project_root, "gemfiles/modular", fname)
|
170
|
+
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true)
|
171
|
+
end
|
172
|
+
|
173
|
+
# 4c) Copy modular directories with nested/versioned files
|
174
|
+
%w[erb mutex_m stringio x_std_libs].each do |dir|
|
175
|
+
src_dir = File.join(gem_checkout_root, "gemfiles/modular", dir)
|
176
|
+
dest_dir = File.join(project_root, "gemfiles/modular", dir)
|
177
|
+
helpers.copy_dir_with_prompt(src_dir, dest_dir)
|
178
|
+
end
|
179
|
+
|
154
180
|
# 5) spec/spec_helper.rb (no create)
|
155
181
|
dest_spec_helper = File.join(project_root, "spec/spec_helper.rb")
|
156
182
|
if File.file?(dest_spec_helper)
|
@@ -347,16 +373,20 @@ module Kettle
|
|
347
373
|
end
|
348
374
|
|
349
375
|
files_to_copy = %w[
|
376
|
+
.aiignore
|
350
377
|
.envrc
|
351
378
|
.gitignore
|
352
379
|
.gitlab-ci.yml
|
380
|
+
.junie/guidelines-rbs.md
|
381
|
+
.junie/guidelines.md
|
382
|
+
.opencollective.yml
|
353
383
|
.rspec
|
354
384
|
.rubocop.yml
|
385
|
+
.rubocop_rspec.yml
|
355
386
|
.simplecov
|
356
387
|
.tool-versions
|
357
388
|
.yard_gfm_support.rb
|
358
389
|
.yardopts
|
359
|
-
.opencollective.yml
|
360
390
|
Appraisal.root.gemfile
|
361
391
|
Appraisals
|
362
392
|
CHANGELOG.md
|
@@ -365,12 +395,10 @@ module Kettle
|
|
365
395
|
CONTRIBUTING.md
|
366
396
|
FUNDING.md
|
367
397
|
Gemfile
|
368
|
-
Rakefile
|
369
398
|
README.md
|
370
399
|
RUBOCOP.md
|
400
|
+
Rakefile
|
371
401
|
SECURITY.md
|
372
|
-
.junie/guidelines.md
|
373
|
-
.junie/guidelines-rbs.md
|
374
402
|
]
|
375
403
|
|
376
404
|
# 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.8
|
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,36 @@ 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/stringio/r2.4/v0.0.2.gemfile
|
309
|
+
- gemfiles/modular/stringio/r2/v3.0.gemfile
|
310
|
+
- gemfiles/modular/stringio/r3/v3.0.gemfile
|
311
|
+
- gemfiles/modular/stringio/vHEAD.gemfile
|
294
312
|
- gemfiles/modular/style.gemfile
|
295
313
|
- gemfiles/modular/style.gemfile.example
|
314
|
+
- gemfiles/modular/x_std_libs.gemfile
|
315
|
+
- gemfiles/modular/x_std_libs/r2.3/libs.gemfile
|
316
|
+
- gemfiles/modular/x_std_libs/r2.4/libs.gemfile
|
317
|
+
- gemfiles/modular/x_std_libs/r2.6/libs.gemfile
|
318
|
+
- gemfiles/modular/x_std_libs/r2/libs.gemfile
|
319
|
+
- gemfiles/modular/x_std_libs/r3.1/libs.gemfile
|
320
|
+
- gemfiles/modular/x_std_libs/r3/libs.gemfile
|
321
|
+
- gemfiles/modular/x_std_libs/vHEAD.gemfile
|
296
322
|
- kettle-dev.gemspec.example
|
297
323
|
- lib/kettle-dev.rb
|
298
324
|
- lib/kettle/dev.rb
|
@@ -354,10 +380,10 @@ licenses:
|
|
354
380
|
- MIT
|
355
381
|
metadata:
|
356
382
|
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.
|
383
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.8
|
384
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.8/CHANGELOG.md
|
359
385
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
360
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
386
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.8
|
361
387
|
funding_uri: https://github.com/sponsors/pboling
|
362
388
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
363
389
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
Binary file
|