kettle-jem 7.1.28 → 7.1.30
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/CHANGELOG.md +220 -1
- data/README.md +2 -114
- data/lib/kettle/jem/maintenance_changelog.rb +1 -1
- data/lib/kettle/jem/relative_paths.rb +61 -0
- data/lib/kettle/jem/tasks/install_task.rb +9 -5
- data/lib/kettle/jem/tasks/prepare_task.rb +29 -10
- data/lib/kettle/jem/tasks/template_task.rb +18 -3
- data/lib/kettle/jem/templates/.devcontainer/devcontainer.json.example +1 -1
- data/lib/kettle/jem/templates/.git-hooks/prepare-commit-msg.example +3 -4
- data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +24 -2
- data/lib/kettle/jem/templates/.github/workflows/current.yml.example +13 -14
- data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +8 -5
- data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +4 -1
- data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +16 -66
- data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example +22 -1
- data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +2 -1
- data/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example +1 -1
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +9 -3
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +8 -2
- data/lib/kettle/jem/templates/.github/workflows/style.yml.example +5 -2
- data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +18 -2
- data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +12 -2
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +16 -3
- data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +6 -2
- data/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +19 -0
- data/lib/kettle/jem/templates/Appraisal.root.gemfile.example +2 -1
- data/lib/kettle/jem/templates/Appraisals.example +4 -1
- data/lib/kettle/jem/templates/CHANGELOG.transfer.md +6 -0
- data/lib/kettle/jem/templates/Gemfile.example +12 -3
- data/lib/kettle/jem/templates/README.md.example +5 -5
- data/lib/kettle/jem/templates/Rakefile.example +2 -0
- data/lib/kettle/jem/templates/bin/turbo_tests2.example +14 -0
- data/lib/kettle/jem/templates/gem.gemspec.example +6 -6
- data/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example +1 -1
- data/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +10 -12
- data/lib/kettle/jem/templates/gemfiles/modular/documentation.gemfile.example +5 -5
- data/lib/kettle/jem/templates/gemfiles/modular/ostruct/r4/v0.6.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example +15 -8
- data/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +7 -1
- data/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +3 -2
- data/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +18 -19
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r4/libs.gemfile.example +1 -0
- data/lib/kettle/jem/templates/mise.toml.example +1 -1
- data/lib/kettle/jem/templates/mise.toml.no-osc.example +1 -1
- data/lib/kettle/jem/templates/readme/partials/configuration.md.example +4 -3
- data/lib/kettle/jem/templates/shim/Gemfile.example +9 -3
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +3 -3
- data/lib/kettle/jem/version.rb +1 -1
- data/lib/kettle/jem.rb +1214 -723
- data.tar.gz.sig +0 -0
- metadata +28 -67
- metadata.gz.sig +0 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example +0 -92
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_0.gemfile.example +0 -6
|
@@ -5,6 +5,15 @@ permissions:
|
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
7
|
K_SOUP_COV_DO: false
|
|
8
|
+
# TruffleRuby intermittently stalls the parallel test worker pool; keep
|
|
9
|
+
# this lane serial while maintained runtimes exercise the parallel runner.
|
|
10
|
+
# Two workers: TruffleRuby parallelism is spawn-based like every other
|
|
11
|
+
# engine; serial-only lanes waste CI time and trip the stall watchdog on
|
|
12
|
+
# legitimately long tests.
|
|
13
|
+
TURBO_TESTS2_MAX_PROCESSES: 2
|
|
14
|
+
# Serial lanes can legitimately run one long, silent test; give the stall
|
|
15
|
+
# watchdog a wider berth than the 4.0 default of 900s.
|
|
16
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 1500
|
|
8
17
|
|
|
9
18
|
on:
|
|
10
19
|
push:
|
|
@@ -27,9 +36,10 @@ concurrency:
|
|
|
27
36
|
|
|
28
37
|
jobs:
|
|
29
38
|
test:
|
|
30
|
-
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release'))"
|
|
39
|
+
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release') || startsWith(github.event.pull_request.title, 'Release '))"
|
|
31
40
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
41
|
runs-on: ubuntu-22.04
|
|
42
|
+
timeout-minutes: 30
|
|
33
43
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
44
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
45
|
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/ruby_3_2.gemfile
|
|
@@ -54,7 +64,7 @@ jobs:
|
|
|
54
64
|
|
|
55
65
|
- name: Setup Ruby & RubyGems
|
|
56
66
|
if: ${{ !env.ACT }}
|
|
57
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
67
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
58
68
|
with:
|
|
59
69
|
ruby-version: ${{ matrix.ruby }}
|
|
60
70
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -5,6 +5,15 @@ permissions:
|
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
7
|
K_SOUP_COV_DO: false
|
|
8
|
+
# TruffleRuby intermittently stalls the parallel test worker pool; keep
|
|
9
|
+
# this lane serial while maintained runtimes exercise the parallel runner.
|
|
10
|
+
# Two workers: TruffleRuby parallelism is spawn-based like every other
|
|
11
|
+
# engine; serial-only lanes waste CI time and trip the stall watchdog on
|
|
12
|
+
# legitimately long tests.
|
|
13
|
+
TURBO_TESTS2_MAX_PROCESSES: 2
|
|
14
|
+
# Serial lanes can legitimately run one long, silent test; give the stall
|
|
15
|
+
# watchdog a wider berth than the 4.0 default of 900s.
|
|
16
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 1500
|
|
8
17
|
|
|
9
18
|
on:
|
|
10
19
|
push:
|
|
@@ -27,9 +36,10 @@ concurrency:
|
|
|
27
36
|
|
|
28
37
|
jobs:
|
|
29
38
|
test:
|
|
30
|
-
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release'))"
|
|
39
|
+
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release') || startsWith(github.event.pull_request.title, 'Release '))"
|
|
31
40
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
41
|
runs-on: ubuntu-22.04
|
|
42
|
+
timeout-minutes: 30
|
|
33
43
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
44
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
45
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -53,7 +63,7 @@ jobs:
|
|
|
53
63
|
|
|
54
64
|
- name: Setup Ruby & RubyGems
|
|
55
65
|
if: ${{ !env.ACT }}
|
|
56
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
66
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
57
67
|
with:
|
|
58
68
|
ruby-version: ${{ matrix.ruby }}
|
|
59
69
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -74,7 +84,10 @@ jobs:
|
|
|
74
84
|
id: bundleAppraisalAttempt2
|
|
75
85
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
76
86
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
77
|
-
run:
|
|
87
|
+
run: |
|
|
88
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
89
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
90
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
78
91
|
|
|
79
92
|
- name: Restore RSpec status log
|
|
80
93
|
if: "${{!env.ACT}}"
|
|
@@ -5,6 +5,15 @@ permissions:
|
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
7
|
K_SOUP_COV_DO: false
|
|
8
|
+
# TruffleRuby intermittently stalls the parallel test worker pool; keep
|
|
9
|
+
# this lane serial while maintained runtimes exercise the parallel runner.
|
|
10
|
+
# Two workers: TruffleRuby parallelism is spawn-based like every other
|
|
11
|
+
# engine; serial-only lanes waste CI time and trip the stall watchdog on
|
|
12
|
+
# legitimately long tests.
|
|
13
|
+
TURBO_TESTS2_MAX_PROCESSES: 2
|
|
14
|
+
# Serial lanes can legitimately run one long, silent test; give the stall
|
|
15
|
+
# watchdog a wider berth than the 4.0 default of 900s.
|
|
16
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 1500
|
|
8
17
|
|
|
9
18
|
on:
|
|
10
19
|
push:
|
|
@@ -27,9 +36,10 @@ concurrency:
|
|
|
27
36
|
|
|
28
37
|
jobs:
|
|
29
38
|
test:
|
|
30
|
-
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release'))"
|
|
39
|
+
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release') || startsWith(github.event.pull_request.title, 'Release '))"
|
|
31
40
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
41
|
runs-on: ubuntu-22.04
|
|
42
|
+
timeout-minutes: 30
|
|
33
43
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
44
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
45
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -53,7 +63,7 @@ jobs:
|
|
|
53
63
|
|
|
54
64
|
- name: Setup Ruby & RubyGems
|
|
55
65
|
if: ${{ !env.ACT }}
|
|
56
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
66
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
57
67
|
with:
|
|
58
68
|
ruby-version: ${{ matrix.ruby }}
|
|
59
69
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -79,7 +89,10 @@ jobs:
|
|
|
79
89
|
id: bundleAppraisalAttempt2
|
|
80
90
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
81
91
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
82
|
-
run:
|
|
92
|
+
run: |
|
|
93
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
94
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
95
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
83
96
|
|
|
84
97
|
- name: Restore RSpec status log
|
|
85
98
|
if: "${{!env.ACT}}"
|
|
@@ -5,6 +5,15 @@ permissions:
|
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
7
|
K_SOUP_COV_DO: false
|
|
8
|
+
# TruffleRuby intermittently stalls the parallel test worker pool; keep
|
|
9
|
+
# this lane serial while maintained runtimes exercise the parallel runner.
|
|
10
|
+
# Two workers: TruffleRuby parallelism is spawn-based like every other
|
|
11
|
+
# engine; serial-only lanes waste CI time and trip the stall watchdog on
|
|
12
|
+
# legitimately long tests.
|
|
13
|
+
TURBO_TESTS2_MAX_PROCESSES: 2
|
|
14
|
+
# Serial lanes can legitimately run one long, silent test; give the stall
|
|
15
|
+
# watchdog a wider berth than the 4.0 default of 900s.
|
|
16
|
+
TURBO_TESTS2_WATCHDOG_SECONDS: 1500
|
|
8
17
|
|
|
9
18
|
on:
|
|
10
19
|
push:
|
|
@@ -27,9 +36,10 @@ concurrency:
|
|
|
27
36
|
|
|
28
37
|
jobs:
|
|
29
38
|
test:
|
|
30
|
-
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release'))"
|
|
39
|
+
if: "(github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))) && (github.event_name != 'pull_request' || startsWith(github.head_ref, 'engines/') || startsWith(github.head_ref, 'truffleruby/') || startsWith(github.head_ref, 'feature/release') || startsWith(github.event.pull_request.title, 'Release '))"
|
|
31
40
|
name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
32
41
|
runs-on: ubuntu-22.04
|
|
42
|
+
timeout-minutes: 30
|
|
33
43
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
34
44
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
35
45
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -53,7 +63,7 @@ jobs:
|
|
|
53
63
|
|
|
54
64
|
- name: Setup Ruby & RubyGems
|
|
55
65
|
if: ${{ !env.ACT }}
|
|
56
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
66
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
57
67
|
with:
|
|
58
68
|
ruby-version: ${{ matrix.ruby }}
|
|
59
69
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -74,7 +84,10 @@ jobs:
|
|
|
74
84
|
id: bundleAppraisalAttempt2
|
|
75
85
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
76
86
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
|
|
77
|
-
run:
|
|
87
|
+
run: |
|
|
88
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
89
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
90
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
78
91
|
|
|
79
92
|
- name: Restore RSpec status log
|
|
80
93
|
if: "${{!env.ACT}}"
|
|
@@ -47,6 +47,7 @@ jobs:
|
|
|
47
47
|
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
|
|
48
48
|
name: Default rake task w/ unlocked deps ${{ matrix.name_extra || '' }}
|
|
49
49
|
runs-on: ubuntu-latest
|
|
50
|
+
timeout-minutes: 30
|
|
50
51
|
continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
|
|
51
52
|
env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
|
|
52
53
|
BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
|
|
@@ -67,7 +68,7 @@ jobs:
|
|
|
67
68
|
persist-credentials: false
|
|
68
69
|
|
|
69
70
|
- name: Setup Ruby & RubyGems
|
|
70
|
-
uses: appraisal-rb/setup-ruby-flash@
|
|
71
|
+
uses: appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14 compatibility bundle installation
|
|
71
72
|
with:
|
|
72
73
|
ruby-version: ${{ matrix.ruby }}
|
|
73
74
|
rubygems: ${{ matrix.rubygems }}
|
|
@@ -87,7 +88,10 @@ jobs:
|
|
|
87
88
|
id: bundleAppraisalAttempt2
|
|
88
89
|
# If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
|
|
89
90
|
if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
|
|
90
|
-
run:
|
|
91
|
+
run: |
|
|
92
|
+
rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
|
|
93
|
+
rm -rf vendor/bundle "$HOME/.bundle/cache"
|
|
94
|
+
bundle exec appraisal ${{ matrix.appraisal }} install
|
|
91
95
|
|
|
92
96
|
- name: Run ${{ matrix.exec_cmd }} on ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
|
93
97
|
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
|
@@ -101,6 +101,8 @@ author_aliases:
|
|
|
101
101
|
# Supported actions (the destination project must explicitly choose one):
|
|
102
102
|
# remove_modular_gem - remove the modular Gemfile's direct gem call.
|
|
103
103
|
# remove_x_std_lib_eval - remove x_std_libs eval references for the gem.
|
|
104
|
+
# remove_direct_gem - remove the gemspec's or Gemfile's direct
|
|
105
|
+
# declaration, keeping the modular Gemfile's.
|
|
104
106
|
# keep_both - retain both declarations when their requirements
|
|
105
107
|
# overlap. This is intended for a broad direct
|
|
106
108
|
# requirement narrowed by framework/engine Gemfiles;
|
|
@@ -143,6 +145,20 @@ engines:
|
|
|
143
145
|
- jruby
|
|
144
146
|
- truffleruby
|
|
145
147
|
|
|
148
|
+
# List the OS platforms this project's CI exercises. kettle-jem uses this to
|
|
149
|
+
# generate the current.yml OS matrix and the README platform tier table.
|
|
150
|
+
# Windows applies only when declared: the `if: matrix.os` guards and the
|
|
151
|
+
# Windows-only test step are emitted solely for destinations that opt in.
|
|
152
|
+
#
|
|
153
|
+
# Supported values: linux, macos, windows
|
|
154
|
+
# Default (when key is absent): linux, macos
|
|
155
|
+
# These are CI OS families, a distinct vocabulary from Gem::Platform strings
|
|
156
|
+
# and Gemfile DSL platform symbols; never reuse them for
|
|
157
|
+
# `bundle lock --add-platform`.
|
|
158
|
+
platforms:
|
|
159
|
+
- linux
|
|
160
|
+
- macos
|
|
161
|
+
|
|
146
162
|
# Ruby version policy.
|
|
147
163
|
ruby:
|
|
148
164
|
# Lowest MRI Ruby version for generated CI workflows, Appraisals, and
|
|
@@ -556,6 +572,9 @@ patterns:
|
|
|
556
572
|
strategy: raw_copy
|
|
557
573
|
- path: ".github/workflows/**"
|
|
558
574
|
strategy: accept_template
|
|
575
|
+
# Signature stub files are fully generated; there is nothing here to hand-edit.
|
|
576
|
+
- path: "sig/**/*.rbs"
|
|
577
|
+
strategy: accept_template
|
|
559
578
|
|
|
560
579
|
# Per-file configuration (nested directory structure)
|
|
561
580
|
# Only files that need overrides belong here. Everything else defaults to merge.
|
|
@@ -15,7 +15,8 @@ source "https://gem.coop"
|
|
|
15
15
|
|
|
16
16
|
gemspec
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
# The style toolchain includes dependencies that require Ruby 3.3 or newer.
|
|
19
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3")
|
|
19
20
|
if respond_to?(:generator_only)
|
|
20
21
|
generator_only do
|
|
21
22
|
eval_gemfile "gemfiles/modular/style.gemfile"
|
|
@@ -48,6 +48,10 @@ appraise "unlocked_deps" do
|
|
|
48
48
|
eval_gemfile "modular/documentation.gemfile"
|
|
49
49
|
eval_gemfile "modular/optional.gemfile"
|
|
50
50
|
eval_gemfile "modular/recording/r4/recording.gemfile"
|
|
51
|
+
# Development dependencies shunted out of the gemspec - see
|
|
52
|
+
# gemfiles/modular/shunted.gemfile's own header for exactly which ones
|
|
53
|
+
# and why.
|
|
54
|
+
eval_gemfile "modular/shunted.gemfile"
|
|
51
55
|
eval_gemfile "modular/style.gemfile"
|
|
52
56
|
eval_gemfile "modular/x_std_libs.gemfile"
|
|
53
57
|
end
|
|
@@ -99,7 +103,6 @@ end
|
|
|
99
103
|
|
|
100
104
|
appraise "ruby-3-0" do
|
|
101
105
|
eval_gemfile "modular/json/truffleruby_22_3.gemfile"
|
|
102
|
-
eval_gemfile "modular/json/truffleruby_23_0.gemfile"
|
|
103
106
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
|
104
107
|
eval_gemfile "modular/x_std_libs/r3.1/libs.gemfile"
|
|
105
108
|
end
|
|
@@ -40,6 +40,12 @@ the other fields accept `=` or `!=`.
|
|
|
40
40
|
- kettle-jem-template-20260729-005 [if feature.rubyforum_project_tag=true] - Gemspec metadata now publishes this
|
|
41
41
|
project's RubyForum tag as `mailing_list_uri`, and support docs link to the
|
|
42
42
|
tagged RubyForum community alongside Discord.
|
|
43
|
+
- kettle-jem-template-20260913-001 - Templating now also surfaces a review
|
|
44
|
+
entry in `dependency_conflicts.resolve` when a direct development
|
|
45
|
+
dependency doesn't support one or more of this project's declared
|
|
46
|
+
`engines:` and has no template-managed modular home (e.g. `sqlite3` on
|
|
47
|
+
`jruby`). Review each entry and pick a resolution per the project's own
|
|
48
|
+
engine support needs.
|
|
43
49
|
|
|
44
50
|
## Changed
|
|
45
51
|
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
source "https://gem.coop"
|
|
10
10
|
|
|
11
|
-
git_source(:github) { |repo_name| "git@github.com:#{repo_name}.git" }
|
|
12
11
|
git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" }
|
|
13
12
|
git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" }
|
|
14
13
|
|
|
@@ -25,8 +24,18 @@ gemspec
|
|
|
25
24
|
|
|
26
25
|
{KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK}
|
|
27
26
|
|
|
28
|
-
# Templating
|
|
29
|
-
|
|
27
|
+
# Templating and the StructuredMerge family share this modular Gemfile.
|
|
28
|
+
# kettle-jem needs StructuredMerge to template, and kettle-changelog needs it at
|
|
29
|
+
# runtime (ast-crispr-markdown-markly -> markdown-merge -> tree_haver), so the
|
|
30
|
+
# test, lint, and release bundles resolve the family too. While the family is
|
|
31
|
+
# only partially released, registry copies pin the last published version exactly
|
|
32
|
+
# and cannot be satisfied alongside a local lockstep version, so a partial local
|
|
33
|
+
# wiring fails version solving for every command in the bundle.
|
|
34
|
+
#
|
|
35
|
+
# (env-switched: STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local paths)
|
|
36
|
+
eval_gemfile "gemfiles/modular/templating.gemfile" if
|
|
37
|
+
ENV.fetch("K_JEM_TEMPLATING", "false").casecmp("true").zero? ||
|
|
38
|
+
ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0
|
|
30
39
|
|
|
31
40
|
# Debugging
|
|
32
41
|
eval_gemfile "gemfiles/modular/debug.gemfile"
|
|
@@ -35,7 +35,7 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta
|
|
|
35
35
|
| Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
|
|
36
36
|
|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
37
37
|
| Works with JRuby | [![JRuby 9.1 Compat][💎jruby-9.1i]][🚎jruby-9.1-wf] [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎jruby-9.2-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎jruby-9.3-wf] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎jruby-9.4-wf] [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf] |
|
|
38
|
-
| Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.
|
|
38
|
+
| Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] |
|
|
39
39
|
| Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
|
|
40
40
|
| Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf] |
|
|
41
41
|
| Works with MRI Ruby 2 | ![Ruby 2.0 Compat][💎ruby-2.0i] ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i] <br/> [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf] |
|
|
@@ -64,6 +64,10 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
|
|
|
64
64
|
|
|
65
65
|
{KJ|README:FAMILY_INTRO_BACKEND_MATRIX}
|
|
66
66
|
|
|
67
|
+
### Runtime and Platform Support
|
|
68
|
+
|
|
69
|
+
{KJ|README:PLATFORM_SUPPORT_TABLE}
|
|
70
|
+
|
|
67
71
|
### Federated DVCS
|
|
68
72
|
|
|
69
73
|
<details markdown="1">
|
|
@@ -441,8 +445,6 @@ Thanks for RTFM. ☺️
|
|
|
441
445
|
[🚎jruby-10.0-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/jruby-10.0.yml/badge.svg
|
|
442
446
|
[🚎truby-22.3-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-22.3.yml
|
|
443
447
|
[🚎truby-22.3-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-22.3.yml/badge.svg
|
|
444
|
-
[🚎truby-23.0-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.0.yml
|
|
445
|
-
[🚎truby-23.0-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.0.yml/badge.svg
|
|
446
448
|
[🚎truby-23.1-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.1.yml
|
|
447
449
|
[🚎truby-23.1-wfi]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-23.1.yml/badge.svg
|
|
448
450
|
[🚎truby-24.2-wf]: {KJ|README:GH_REPOSITORY_URL}/actions/workflows/truffleruby-24.2.yml
|
|
@@ -490,13 +492,11 @@ Thanks for RTFM. ☺️
|
|
|
490
492
|
[💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
|
|
491
493
|
[💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
|
|
492
494
|
[💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
493
|
-
[💎truby-23.0i]: https://img.shields.io/badge/Truffle_Ruby-23.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
494
495
|
[💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
495
496
|
[💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
496
497
|
[💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
497
498
|
[💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
498
499
|
[💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
|
|
499
|
-
[💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
|
|
500
500
|
[💎jruby-9.1i]: https://img.shields.io/badge/JRuby-9.1-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
501
501
|
[💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
502
502
|
[💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
#
|
|
5
|
+
# This file is generated by Kettle Jem.
|
|
6
|
+
# It loads turbo_tests2 from the active bundle for Windows CI.
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
|
10
|
+
|
|
11
|
+
require "rubygems"
|
|
12
|
+
require "bundler/setup"
|
|
13
|
+
|
|
14
|
+
load Gem.bin_path("turbo_tests2", "turbo_tests2")
|
|
@@ -118,7 +118,7 @@ Gem::Specification.new do |spec|
|
|
|
118
118
|
# and preferably a modular one (see gemfiles/modular/*.gemfile).
|
|
119
119
|
|
|
120
120
|
# Dev, Test, & Release Tasks
|
|
121
|
-
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.
|
|
121
|
+
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.13") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
122
122
|
|
|
123
123
|
# Security
|
|
124
124
|
spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0
|
|
@@ -132,13 +132,13 @@ Gem::Specification.new do |spec|
|
|
|
132
132
|
# Testing
|
|
133
133
|
# Loads version files in anonymous namespaces for coverage without constant redefinition warnings.
|
|
134
134
|
spec.add_development_dependency("anonymous_loader", "~> 0.1", ">= 0.1.3") # ruby >= 2.2.0
|
|
135
|
-
spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.
|
|
136
|
-
spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.
|
|
137
|
-
spec.add_development_dependency("turbo_tests2", "~>
|
|
135
|
+
spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.5") # ruby >= 1.8.7, for testing against multiple versions of dependencies
|
|
136
|
+
spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.25") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
137
|
+
spec.add_development_dependency("turbo_tests2", "~> 4.0", ">= 4.0.0") # ruby >= 2.4.0, default kettle-test runner
|
|
138
138
|
|
|
139
139
|
# Releasing
|
|
140
140
|
spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0
|
|
141
|
-
spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.
|
|
141
|
+
spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.9") # ruby >= 2.2.0
|
|
142
142
|
|
|
143
143
|
# Git integration (optional)
|
|
144
144
|
# The 'git' gem is optional; {KJ|GEM_NAME} falls back to shelling out to `git` if it is not present.
|
|
@@ -150,7 +150,7 @@ Gem::Specification.new do |spec|
|
|
|
150
150
|
# This means we have no choice but to use the erb that shipped with Ruby 2.3
|
|
151
151
|
# /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)
|
|
152
152
|
# spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch.
|
|
153
|
-
spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.
|
|
153
|
+
spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.15") # ruby >= 2.4
|
|
154
154
|
|
|
155
155
|
# HTTP recording for deterministic specs
|
|
156
156
|
# In Ruby 3.5 (HEAD) the CGI library has been pared down, so we also need to depend on gem "cgi" for ruby@head
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero?
|
|
8
8
|
# Coverage (remote/released)
|
|
9
9
|
platform :mri do
|
|
10
|
-
gem "kettle-soup-cover", "~> 3.0", ">= 3.0.
|
|
10
|
+
gem "kettle-soup-cover", "~> 3.0", ">= 3.0.12", require: false
|
|
11
11
|
end
|
|
12
12
|
else
|
|
13
13
|
eval_gemfile "coverage_local.gemfile"
|
|
@@ -6,6 +6,14 @@
|
|
|
6
6
|
{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP}
|
|
7
7
|
|
|
8
8
|
local_gems = %w[{KJ|KETTLE_DEV_LOCAL_GEMS}]
|
|
9
|
+
kettle_dev_nomono_options = {
|
|
10
|
+
prefix: "KETTLE_DEV",
|
|
11
|
+
path_env: "KETTLE_DEV_DEV",
|
|
12
|
+
vendored_gems_env: "VENDORED_GEMS",
|
|
13
|
+
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
14
|
+
debug_env: "KETTLE_DEV_DEBUG",
|
|
15
|
+
root: ["src", "my", "kettle-dev"]
|
|
16
|
+
}
|
|
9
17
|
|
|
10
18
|
# export KETTLE_DEV_DEV=/path/to/my
|
|
11
19
|
platform :mri do
|
|
@@ -14,12 +22,7 @@ platform :mri do
|
|
|
14
22
|
kettle_dev_dependency = instance_variable_get(:@dependencies).to_a.find { |dependency| dependency.name == "kettle-dev" }
|
|
15
23
|
kettle_dev_local_path = nomono_gems(
|
|
16
24
|
gems: %w[kettle-dev],
|
|
17
|
-
|
|
18
|
-
path_env: "KETTLE_DEV_DEV",
|
|
19
|
-
vendored_gems_env: "VENDORED_GEMS",
|
|
20
|
-
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
21
|
-
debug_env: "KETTLE_DEV_DEBUG",
|
|
22
|
-
root: ["src", "my", "kettle-dev"]
|
|
25
|
+
**kettle_dev_nomono_options
|
|
23
26
|
).fetch("kettle-dev", nil)
|
|
24
27
|
if kettle_dev_dependency && kettle_dev_local_path
|
|
25
28
|
instance_variable_get(:@dependencies).delete(kettle_dev_dependency)
|
|
@@ -31,12 +34,7 @@ platform :mri do
|
|
|
31
34
|
|
|
32
35
|
eval_nomono_gems(
|
|
33
36
|
gems: local_gems_to_eval,
|
|
34
|
-
|
|
35
|
-
path_env: "KETTLE_DEV_DEV",
|
|
36
|
-
vendored_gems_env: "VENDORED_GEMS",
|
|
37
|
-
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
38
|
-
debug_env: "KETTLE_DEV_DEBUG",
|
|
39
|
-
root: ["src", "my", "kettle-dev"]
|
|
37
|
+
**kettle_dev_nomono_options
|
|
40
38
|
)
|
|
41
39
|
|
|
42
40
|
if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0
|
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
# Documentation
|
|
10
10
|
gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5
|
|
11
11
|
gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3
|
|
12
|
-
gem "yaml-converter", "~> 0.2", ">= 0.2.
|
|
12
|
+
gem "yaml-converter", "~> 0.2", ">= 0.2.7", require: false # Ruby >= 3.2
|
|
13
13
|
gem "yard", "~> 0.9", ">= 0.9.45", require: false
|
|
14
14
|
gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1
|
|
15
|
-
gem "yard-lint", "~> 1.
|
|
15
|
+
gem "yard-lint", "~> 1.12", ">= 1.12.0", require: false # Ruby >= 3.3
|
|
16
16
|
gem "yard-relative_markdown_links", "~> 0.6", require: false
|
|
17
17
|
|
|
18
18
|
if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero?
|
|
19
|
-
gem "yard-fence", "~> 0.9", ">= 0.9.
|
|
20
|
-
gem "yard-timekeeper", "~> 0.2", ">= 0.2.
|
|
21
|
-
gem "yard-yaml", "~> 0.2", ">= 0.2.
|
|
19
|
+
gem "yard-fence", "~> 0.9", ">= 0.9.10", require: false # Ruby >= 3.2
|
|
20
|
+
gem "yard-timekeeper", "~> 0.2", ">= 0.2.9", require: false
|
|
21
|
+
gem "yard-yaml", "~> 0.2", ">= 0.2.6", require: false
|
|
22
22
|
else
|
|
23
23
|
eval_gemfile "documentation_local.gemfile"
|
|
24
24
|
end
|
|
@@ -9,23 +9,30 @@
|
|
|
9
9
|
# Style tasks run on the latest Ruby; RuboCop-LTS selects the compatibility
|
|
10
10
|
# rules for the configured Ruby floor independently from task dependency floors.
|
|
11
11
|
|
|
12
|
-
gem "reek", "~> 6.
|
|
12
|
+
gem "reek", "~> 6.6", ">= 6.6.0"
|
|
13
13
|
|
|
14
14
|
platform :mri do
|
|
15
|
-
gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.
|
|
15
|
+
gem "appraisal2-rubocop", "~> 1.0", ">= 1.0.4", require: false
|
|
16
16
|
gem "rubocop-gradual", "~> 0.4", ">= 0.4.0"
|
|
17
|
+
# rubocop-minitest floor held at 0.40: 0.41.0 requires rubocop >= 1.89.0,
|
|
18
|
+
# but standard (~> 1.56) caps rubocop at ~> 1.88.0, making the pair
|
|
19
|
+
# unsatisfiable. This gem is registered in KettleJemDepsFloor::FLOOR_HOLDS,
|
|
20
|
+
# so kettle-jem-deps-floor will not auto-raise it. Remove the hold (and
|
|
21
|
+
# raise the floor) once standard supports rubocop >= 1.89.
|
|
17
22
|
gem "rubocop-minitest", "~> 0.40", ">= 0.40.0"
|
|
18
|
-
|
|
23
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3.0")
|
|
24
|
+
gem "rubocop-on-rbs", "~> 2.2", ">= 2.2.0" # ruby >= 3.3.0
|
|
25
|
+
end
|
|
19
26
|
# gem "rubocop", "~> 1.73", ">= 1.73.2" # constrained by standard
|
|
20
|
-
gem "
|
|
21
|
-
github: "pboling/rubocop-packaging",
|
|
22
|
-
ref: "3539ba858d379740d638566faee9e56b2b854145"
|
|
23
|
-
gem "standard", "~> 1.56", ">= 1.56.0"
|
|
27
|
+
gem "standard", "~> 1.57", ">= 1.57.0"
|
|
24
28
|
|
|
25
29
|
if ENV.fetch("RUBOCOP_LTS_DEV", "false").casecmp("false").zero?
|
|
30
|
+
gem "rubocop-packaging",
|
|
31
|
+
github: "pboling/rubocop-packaging",
|
|
32
|
+
ref: "3539ba858d379740d638566faee9e56b2b854145"
|
|
26
33
|
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
27
34
|
gem "rubocop-lts", {KJ|RUBOCOP_LTS_CONSTRAINT} unless declared_gems.include?("rubocop-lts")
|
|
28
|
-
gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.
|
|
35
|
+
gem "rubocop-lts-rspec", "~> 1.0", ">= 1.0.7" unless declared_gems.include?("rubocop-lts-rspec")
|
|
29
36
|
gem "{KJ|RUBOCOP_RUBY_GEM}", {KJ|RUBOCOP_RUBY_CONSTRAINT} unless declared_gems.include?("{KJ|RUBOCOP_RUBY_GEM}")
|
|
30
37
|
else
|
|
31
38
|
eval_gemfile("style_local.gemfile")
|
|
@@ -12,6 +12,12 @@ local_gems = %w[rubocop-lts rubocop-lts-rspec {KJ|RUBOCOP_RUBY_GEM} standard-rub
|
|
|
12
12
|
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
13
13
|
local_gems_to_eval = local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems
|
|
14
14
|
|
|
15
|
+
# The generated RuboCop config loads this plugin in both local and released
|
|
16
|
+
# style modes, so the local bundle must provide it too.
|
|
17
|
+
gem "rubocop-packaging",
|
|
18
|
+
github: "pboling/rubocop-packaging",
|
|
19
|
+
ref: "3539ba858d379740d638566faee9e56b2b854145"
|
|
20
|
+
|
|
15
21
|
# export VENDORED_GEMS=rubocop-lts,rubocop-lts-rspec,{KJ|RUBOCOP_RUBY_GEM},standard-rubocop-lts
|
|
16
22
|
platform :mri do
|
|
17
23
|
eval_nomono_gems(
|
|
@@ -21,6 +27,6 @@ platform :mri do
|
|
|
21
27
|
vendored_gems_env: "VENDORED_GEMS",
|
|
22
28
|
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
23
29
|
debug_env: "RUBOCOP_LTS_DEBUG",
|
|
24
|
-
root: ["src", "rubocop-lts"]
|
|
30
|
+
root: ["src", "my", "rubocop-lts"]
|
|
25
31
|
)
|
|
26
32
|
end
|
|
@@ -17,13 +17,14 @@ if structuredmerge_remote || !tslp_dev.to_s.empty?
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
if structuredmerge_remote
|
|
20
|
-
#
|
|
20
|
+
# Keep the released floor when templating with local StructuredMerge paths;
|
|
21
|
+
# kettle-jem-deps-floor advances this requirement from published versions.
|
|
21
22
|
gem "kettle-jem", {KJ|KETTLE_JEM_DEPENDENCY_ARGUMENTS}
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
if kettle_remote
|
|
25
26
|
# Template/plugin checks for released installs.
|
|
26
|
-
gem "kettle-drift", "~> 1.0", ">= 1.0.
|
|
27
|
+
gem "kettle-drift", "~> 1.0", ">= 1.0.16", require: false
|
|
27
28
|
end
|
|
28
29
|
|
|
29
30
|
# Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies.
|