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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.aiignore.example +19 -0
- data/.git-hooks/commit-msg +2 -1
- data/.github/workflows/current.yml +5 -0
- data/.github/workflows/dep-heads.yml +105 -0
- data/.github/workflows/heads.yml +7 -2
- data/.github/workflows/heads.yml.example +7 -2
- data/.github/workflows/jruby.yml +5 -0
- data/.github/workflows/jruby.yml.example +5 -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 +45 -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/optional.gemfile +4 -1
- 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/appraisal.rake +27 -0
- data/lib/kettle/dev/rakelib/spec_test.rake +35 -16
- data/lib/kettle/dev/tasks/ci_task.rb +1 -5
- data/lib/kettle/dev/tasks/install_task.rb +4 -6
- data/lib/kettle/dev/tasks/template_task.rb +35 -11
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle/dev.rb +4 -0
- data.tar.gz.sig +0 -0
- metadata +31 -25
- metadata.gz.sig +4 -2
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/
|
data/.git-hooks/commit-msg
CHANGED
@@ -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\
|
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 }}
|
data/.github/workflows/heads.yml
CHANGED
@@ -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 }}
|
data/.github/workflows/jruby.yml
CHANGED
@@ -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 }}
|
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
|