kettle-dev 1.1.6 → 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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.aiignore.example +19 -0
  4. data/.git-hooks/commit-msg +2 -1
  5. data/.github/workflows/current.yml +5 -0
  6. data/.github/workflows/dep-heads.yml +105 -0
  7. data/.github/workflows/heads.yml +7 -2
  8. data/.github/workflows/heads.yml.example +7 -2
  9. data/.github/workflows/jruby.yml +5 -0
  10. data/.github/workflows/jruby.yml.example +5 -0
  11. data/.gitlab-ci.yml.example +66 -4
  12. data/.junie/guidelines.md +1 -1
  13. data/.rubocop.yml +3 -9
  14. data/Appraisals +21 -41
  15. data/Appraisals.example +20 -22
  16. data/CHANGELOG.md +45 -2
  17. data/Gemfile +5 -9
  18. data/Gemfile.example +5 -9
  19. data/README.md +4 -2
  20. data/README.md.example +1 -1
  21. data/Rakefile.example +1 -1
  22. data/gemfiles/modular/debug.gemfile +13 -0
  23. data/gemfiles/modular/erb/r2/v3.0.gemfile +1 -0
  24. data/gemfiles/modular/erb/r2.3/default.gemfile +6 -0
  25. data/gemfiles/modular/erb/r2.6/v2.2.gemfile +3 -0
  26. data/gemfiles/modular/erb/r3/v5.0.gemfile +1 -0
  27. data/gemfiles/modular/erb/r3.1/v4.0.gemfile +2 -0
  28. data/gemfiles/modular/erb/vHEAD.gemfile +2 -0
  29. data/gemfiles/modular/mutex_m/r2/v0.3.gemfile +2 -0
  30. data/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile +3 -0
  31. data/gemfiles/modular/mutex_m/r3/v0.3.gemfile +2 -0
  32. data/gemfiles/modular/mutex_m/vHEAD.gemfile +2 -0
  33. data/gemfiles/modular/optional.gemfile +4 -1
  34. data/gemfiles/modular/runtime_heads.gemfile +10 -0
  35. data/gemfiles/modular/stringio/r2/v3.0.gemfile +5 -0
  36. data/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile +4 -0
  37. data/gemfiles/modular/stringio/r3/v3.0.gemfile +5 -0
  38. data/gemfiles/modular/stringio/vHEAD.gemfile +2 -0
  39. data/gemfiles/modular/x_std_libs/r2/libs.gemfile +3 -0
  40. data/gemfiles/modular/x_std_libs/r2.3/libs.gemfile +3 -0
  41. data/gemfiles/modular/x_std_libs/r2.4/libs.gemfile +3 -0
  42. data/gemfiles/modular/x_std_libs/r2.6/libs.gemfile +3 -0
  43. data/gemfiles/modular/x_std_libs/r3/libs.gemfile +3 -0
  44. data/gemfiles/modular/x_std_libs/r3.1/libs.gemfile +3 -0
  45. data/gemfiles/modular/x_std_libs/vHEAD.gemfile +3 -0
  46. data/gemfiles/modular/x_std_libs.gemfile +2 -0
  47. data/lib/kettle/dev/rakelib/appraisal.rake +27 -0
  48. data/lib/kettle/dev/rakelib/spec_test.rake +35 -16
  49. data/lib/kettle/dev/tasks/ci_task.rb +1 -5
  50. data/lib/kettle/dev/tasks/install_task.rb +4 -6
  51. data/lib/kettle/dev/tasks/template_task.rb +35 -11
  52. data/lib/kettle/dev/version.rb +1 -1
  53. data/lib/kettle/dev.rb +4 -0
  54. data.tar.gz.sig +0 -0
  55. metadata +31 -25
  56. metadata.gz.sig +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f9379372c485dd2c59d1638dd7e98d0945adbfd3472e184a634920c09ac5eb9d
4
- data.tar.gz: e1e8f5c7a25881d26ced8350f610a7f7bc209fbc40e1e40e22d6bfb238237a65
3
+ metadata.gz: ff2a4f1326475cd3de4fb3decf7b10780dd0bbb16cd55ea1dc5e78f64bfde631
4
+ data.tar.gz: a584158146f8f8a25343523d2cd76cfb5adc4d6e4e5907a215200239170ef620
5
5
  SHA512:
6
- metadata.gz: 3d29f6c866cc3b3c6209bcc3650b4cf3781bfba4faa8df0b34505520a9f420694afe1c014dbda3da3aa3bbd61bf91e58af6740345882ee57b4f20d3eb8801ea2
7
- data.tar.gz: f3887d6c56c27be4cd0650f5fdd219e4059586ed5225cbd3a67e99d8972eaaf191a2dd411f37b1abced4d587f36c972a1e3f5268c88a36555120e5b2f06353ba
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/
@@ -43,5 +43,6 @@ EOM
43
43
  exit 1
44
44
  end
45
45
  rescue LoadError => e
46
- warn("gitmoji-regex gem not found: #{e.class}: #{e.message}.\n\tInstall the 'gitmoji-regex' gem to enable this check.\n\tSkipping gitmoji check.")
46
+ warn("gitmoji-regex gem not found: #{e.class}: #{e.message}.\n\tSkipping gitmoji check and allowing commit to proceed.\n\tRecommendation: add 'gitmoji-regex' to your development dependencies to enable this check.")
47
+ exit 0
47
48
  end
@@ -65,9 +65,11 @@ jobs:
65
65
 
66
66
  steps:
67
67
  - name: Checkout
68
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
68
69
  uses: actions/checkout@v5
69
70
 
70
71
  - name: Setup Ruby & RubyGems
72
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
71
73
  uses: ruby/setup-ruby@v1
72
74
  with:
73
75
  ruby-version: ${{ matrix.ruby }}
@@ -79,8 +81,11 @@ jobs:
79
81
  # We need to do this first to get appraisal installed.
80
82
  # NOTE: This does not use the primary Gemfile at all.
81
83
  - name: Install Root Appraisal
84
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
82
85
  run: bundle
83
86
  - name: Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}
87
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
84
88
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
85
89
  - name: Tests for ${{ matrix.ruby }}@${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
90
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
86
91
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -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 }}
@@ -64,9 +64,11 @@ jobs:
64
64
 
65
65
  steps:
66
66
  - name: Checkout
67
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
67
68
  uses: actions/checkout@v5
68
69
 
69
70
  - name: Setup Ruby & RubyGems
71
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
70
72
  uses: ruby/setup-ruby@v1
71
73
  with:
72
74
  ruby-version: ${{ matrix.ruby }}
@@ -78,9 +80,11 @@ jobs:
78
80
  # We need to do this first to get appraisal installed.
79
81
  # NOTE: This does not use the primary Gemfile at all.
80
82
  - name: "Install Root Appraisal"
83
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
81
84
  run: bundle
82
85
 
83
86
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
87
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
84
88
  id: bundleAttempt1
85
89
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
86
90
  # Continue to the next step on failure
@@ -88,10 +92,11 @@ jobs:
88
92
 
89
93
  # Effectively an automatic retry of the previous step.
90
94
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
91
- id: bundleAttempt2
92
95
  # If bundleAttempt1 failed, try again here; Otherwise skip.
93
- if: steps.bundleAttempt1.outcome == 'failure'
96
+ if: ${{ steps.bundleAttempt1.outcome == 'failure' && !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
97
+ id: bundleAttempt2
94
98
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
95
99
 
96
100
  - name: Tests for ${{ matrix.ruby }}@${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
101
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
97
102
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -64,9 +64,11 @@ jobs:
64
64
 
65
65
  steps:
66
66
  - name: Checkout
67
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
67
68
  uses: actions/checkout@v5
68
69
 
69
70
  - name: Setup Ruby & RubyGems
71
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
70
72
  uses: ruby/setup-ruby@v1
71
73
  with:
72
74
  ruby-version: ${{ matrix.ruby }}
@@ -78,9 +80,11 @@ jobs:
78
80
  # We need to do this first to get appraisal installed.
79
81
  # NOTE: This does not use the primary Gemfile at all.
80
82
  - name: "Install Root Appraisal"
83
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
81
84
  run: bundle
82
85
 
83
86
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
87
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
84
88
  id: bundleAttempt1
85
89
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
86
90
  # Continue to the next step on failure
@@ -88,10 +92,11 @@ jobs:
88
92
 
89
93
  # Effectively an automatic retry of the previous step.
90
94
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
91
- id: bundleAttempt2
92
95
  # If bundleAttempt1 failed, try again here; Otherwise skip.
93
- if: steps.bundleAttempt1.outcome == 'failure'
96
+ if: ${{ steps.bundleAttempt1.outcome == 'failure' && !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
97
+ id: bundleAttempt2
94
98
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
95
99
 
96
100
  - name: Tests for ${{ matrix.ruby }}@${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
101
+ if: ${{ !(env.ACT && startsWith(matrix.ruby, 'jruby')) }}
97
102
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -56,9 +56,11 @@ jobs:
56
56
 
57
57
  steps:
58
58
  - name: Checkout
59
+ if: ${{ !env.ACT }}
59
60
  uses: actions/checkout@v5
60
61
 
61
62
  - name: Setup Ruby & RubyGems
63
+ if: ${{ !env.ACT }}
62
64
  uses: ruby/setup-ruby@v1
63
65
  with:
64
66
  ruby-version: ${{ matrix.ruby }}
@@ -70,8 +72,11 @@ jobs:
70
72
  # We need to do this first to get appraisal installed.
71
73
  # NOTE: This does not use the primary Gemfile at all.
72
74
  - name: Install Root Appraisal
75
+ if: ${{ !env.ACT }}
73
76
  run: bundle
74
77
  - name: Appraisal for ${{ matrix.appraisal }}
78
+ if: ${{ !env.ACT }}
75
79
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
76
80
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
81
+ if: ${{ !env.ACT }}
77
82
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -46,9 +46,11 @@ jobs:
46
46
 
47
47
  steps:
48
48
  - name: Checkout
49
+ if: ${{ !env.ACT }}
49
50
  uses: actions/checkout@v5
50
51
 
51
52
  - name: Setup Ruby & RubyGems
53
+ if: ${{ !env.ACT }}
52
54
  uses: ruby/setup-ruby@v1
53
55
  with:
54
56
  ruby-version: ${{ matrix.ruby }}
@@ -60,8 +62,11 @@ jobs:
60
62
  # We need to do this first to get appraisal installed.
61
63
  # NOTE: This does not use the primary Gemfile at all.
62
64
  - name: Install Root Appraisal
65
+ if: ${{ !env.ACT }}
63
66
  run: bundle
64
67
  - name: Appraisal for ${{ matrix.appraisal }}
68
+ if: ${{ !env.ACT }}
65
69
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
66
70
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
71
+ if: ${{ !env.ACT }}
67
72
  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