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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.aiignore.example +19 -0
  4. data/.github/workflows/dep-heads.yml +105 -0
  5. data/.gitlab-ci.yml.example +66 -4
  6. data/.junie/guidelines.md +1 -1
  7. data/.rubocop.yml +3 -9
  8. data/Appraisals +21 -41
  9. data/Appraisals.example +20 -22
  10. data/CHANGELOG.md +39 -2
  11. data/Gemfile +5 -9
  12. data/Gemfile.example +5 -9
  13. data/README.md +4 -2
  14. data/README.md.example +4 -2
  15. data/Rakefile.example +1 -1
  16. data/gemfiles/modular/debug.gemfile +13 -0
  17. data/gemfiles/modular/erb/r2/v3.0.gemfile +1 -0
  18. data/gemfiles/modular/erb/r2.3/default.gemfile +6 -0
  19. data/gemfiles/modular/erb/r2.6/v2.2.gemfile +3 -0
  20. data/gemfiles/modular/erb/r3/v5.0.gemfile +1 -0
  21. data/gemfiles/modular/erb/r3.1/v4.0.gemfile +2 -0
  22. data/gemfiles/modular/erb/vHEAD.gemfile +2 -0
  23. data/gemfiles/modular/mutex_m/r2/v0.3.gemfile +2 -0
  24. data/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile +3 -0
  25. data/gemfiles/modular/mutex_m/r3/v0.3.gemfile +2 -0
  26. data/gemfiles/modular/mutex_m/vHEAD.gemfile +2 -0
  27. data/gemfiles/modular/runtime_heads.gemfile +10 -0
  28. data/gemfiles/modular/runtime_heads.gemfile.example +8 -0
  29. data/gemfiles/modular/stringio/r2/v3.0.gemfile +5 -0
  30. data/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile +4 -0
  31. data/gemfiles/modular/stringio/r3/v3.0.gemfile +5 -0
  32. data/gemfiles/modular/stringio/vHEAD.gemfile +2 -0
  33. data/gemfiles/modular/x_std_libs/r2/libs.gemfile +3 -0
  34. data/gemfiles/modular/x_std_libs/r2.3/libs.gemfile +3 -0
  35. data/gemfiles/modular/x_std_libs/r2.4/libs.gemfile +3 -0
  36. data/gemfiles/modular/x_std_libs/r2.6/libs.gemfile +3 -0
  37. data/gemfiles/modular/x_std_libs/r3/libs.gemfile +3 -0
  38. data/gemfiles/modular/x_std_libs/r3.1/libs.gemfile +3 -0
  39. data/gemfiles/modular/x_std_libs/vHEAD.gemfile +3 -0
  40. data/gemfiles/modular/x_std_libs.gemfile +2 -0
  41. data/lib/kettle/dev/rakelib/spec_test.rake +35 -16
  42. data/lib/kettle/dev/tasks/template_task.rb +100 -59
  43. data/lib/kettle/dev/version.rb +1 -1
  44. data/lib/kettle/dev.rb +4 -0
  45. data.tar.gz.sig +0 -0
  46. metadata +31 -4
  47. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15028cfcd43a77f5fa3e4531711ff94628e0df63fa47882345f00810b9e07431
4
- data.tar.gz: c7e558c0aab2f3b062f8a78b903f346579c7619888d6745424b52c766f1126b8
3
+ metadata.gz: 390782fc59b3ecdb4da6eba290dfb4bcb4859b903837f97040e9d5a4877dc3d6
4
+ data.tar.gz: 18a699e55e20416b03c34b060d79ec07c61f3278dda3d906b276687a7f8b6794
5
5
  SHA512:
6
- metadata.gz: f482575bb3ee784b08fb4ece99119af1aa371e061dae4c600cb5a9cd0bd708cfccbf26570394b07c6a5d3fd5db3c4ac81f33343ba34536a102c87cce6aa084c9
7
- data.tar.gz: e93880beca5de68e14692277d64840e0b249708042fd9da1fb79285a53f04af3b47d106b2039615084e8c62ed5c00d02fb38cb58646adda9177dff2863674f58
6
+ metadata.gz: 4c405e9036b50bb07e9ba968842beab12120a759f2692f074f938d22f24cb35fd8850ea045f739ed7f765b79ee1a54ab7417380813b93c802801f383d6a2cfad
7
+ data.tar.gz: 5334de8b782bf4abbc236261912b6b757ae4bac4c4969ed8a420b5965e8aa395f3f076cb72f5de60c83c18e602037af523d89cddc82a00ecd90b615817af8d64
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 }}
@@ -38,12 +38,12 @@ workflow:
38
38
  # For tags, create a pipeline.
39
39
  - if: '$CI_COMMIT_TAG'
40
40
 
41
- .current_ruby_template: &current_ruby_template
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-ruby:
71
- <<: *current_ruby_template
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.1 recommended) for fastest setup and to exercise modern coverage behavior.
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 "erb"
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
- gem "erb"
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
- gem "erb"
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
- gem "mutex_m", ">= 0.2"
41
- gem "stringio", ">= 3.0"
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
- gem "mutex_m", "~> 0.2"
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
- gem "mutex_m", "~> 0.2"
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
- gem "mutex_m", "~> 0.2"
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
- gem "mutex_m", "~> 0.2"
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
- gem "mutex_m", "~> 0.2"
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
- gem "mutex_m", "~> 0.2"
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
- gem "mutex_m", "~> 0.2"
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,39 @@ Please file a bug if you notice a violation of semantic versioning.
24
24
  ### Fixed
25
25
  ### Security
26
26
 
27
+ ## [1.1.9] - 2025-09-07
28
+ - TAG: [v1.1.9][1.1.9t]
29
+ - COVERAGE: 97.11% -- 3255/3352 lines in 23 files
30
+ - BRANCH COVERAGE: 81.91% -- 1345/1642 branches in 23 files
31
+ - 76.65% documented
32
+ ### Added
33
+ - badge for current runtime heads in example readme
34
+ ### Fixed
35
+ - Add gemfiles/modular/x_std_libs.gemfile & injected.gemfile to template
36
+ - example version of gemfiles/modular/runtime_heads.gemfile
37
+ - necessary to avoid deps on recording gems in the template
38
+
39
+ ## [1.1.8] - 2025-09-07
40
+ - TAG: [v1.1.8][1.1.8t]
41
+ - COVERAGE: 97.16% -- 3246/3341 lines in 23 files
42
+ - BRANCH COVERAGE: 81.95% -- 1344/1640 branches in 23 files
43
+ - 76.97% documented
44
+ ### Added
45
+ - add .aiignore to the template
46
+ - add .rubocop_rspec.yml to the template
47
+ - gemfiles/modular/x_std_libs pattern to template, including:
48
+ - erb
49
+ - mutex_m
50
+ - stringio
51
+ - gemfiles/modular/debug.gemfile
52
+ - gemfiles/modular/runtime_heads.gemfile
53
+ - .github/workflows/dep-heads.yml
54
+ - (performance) filter and prioritize example files in the `.github` directory
55
+ - added codecov config to the template
56
+ - Kettle::Dev.default_registered?
57
+ ### Fixed
58
+ - run specs as part of the test task
59
+
27
60
  ## [1.1.7] - 2025-09-06
28
61
  - TAG: [v1.1.7][1.1.7t]
29
62
  - COVERAGE: 97.12% -- 3237/3333 lines in 23 files
@@ -71,7 +104,7 @@ Please file a bug if you notice a violation of semantic versioning.
71
104
  ### Removed
72
105
  - defensive NameError handling in ChangelogCLI.abort method
73
106
  ### Fixed
74
- - replace token {OPENCOLLECTIVE|ORG_NAME} with funding org name
107
+ - replace token `{OPENCOLLECTIVE|ORG_NAME}` with funding org name
75
108
  - prefer .example version of .git-hooks
76
109
  - kettle-commit-msg now runs via rubygems (not bundler) so it will work via a system gem
77
110
  - fixed logic for handling derivation of forge and funding URLs
@@ -522,7 +555,11 @@ Please file a bug if you notice a violation of semantic versioning.
522
555
  - Selecting will run the selected workflow via `act`
523
556
  - This may move to its own gem in the future.
524
557
 
525
- [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.7...HEAD
558
+ [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.9...HEAD
559
+ [1.1.9]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.8...v1.1.9
560
+ [1.1.9t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.9
561
+ [1.1.8]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.7...v1.1.8
562
+ [1.1.8t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.8
526
563
  [1.1.7]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.6...v1.1.7
527
564
  [1.1.7t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.7
528
565
  [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
- platform :mri do
16
- # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite
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
- platform :mri do
16
- # Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite
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"