kettle-jem 7.1.29 → 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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +38 -1
  4. data/README.md +1 -129
  5. data/lib/kettle/jem/templates/.devcontainer/devcontainer.json.example +1 -1
  6. data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +23 -1
  7. data/lib/kettle/jem/templates/.github/workflows/current.yml.example +5 -1
  8. data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +3 -0
  9. data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +3 -0
  10. data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +13 -3
  11. data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +14 -1
  12. data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +14 -1
  13. data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +14 -1
  14. data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +14 -1
  15. data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +14 -1
  16. data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +14 -1
  17. data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +1 -0
  18. data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +7 -1
  19. data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +7 -1
  20. data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +7 -1
  21. data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +7 -1
  22. data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +7 -1
  23. data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +8 -2
  24. data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +7 -1
  25. data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +7 -1
  26. data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +7 -1
  27. data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +7 -1
  28. data/lib/kettle/jem/templates/.github/workflows/style.yml.example +4 -1
  29. data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +4 -1
  30. data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +14 -1
  31. data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +14 -1
  32. data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +10 -0
  33. data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +14 -1
  34. data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +14 -1
  35. data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +14 -1
  36. data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +5 -1
  37. data/lib/kettle/jem/templates/gem.gemspec.example +3 -3
  38. data/lib/kettle/jem/templates/shim/gem.gemspec.example +2 -2
  39. data/lib/kettle/jem/version.rb +1 -1
  40. data/lib/kettle/jem.rb +47 -7
  41. data.tar.gz.sig +0 -0
  42. metadata +8 -8
  43. metadata.gz.sig +0 -0
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-22.04
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -64,7 +67,10 @@ jobs:
64
67
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
65
68
  id: bundleAppraisalAttempt2
66
69
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
67
- run: bundle exec appraisal ${{ matrix.appraisal }} install
70
+ run: |
71
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
72
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
73
+ bundle exec appraisal ${{ matrix.appraisal }} install
68
74
 
69
75
  - name: Restore RSpec status log
70
76
  if: "${{!env.ACT}}"
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-22.04
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -68,7 +71,10 @@ jobs:
68
71
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
69
72
  id: bundleAppraisalAttempt2
70
73
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
71
- run: bundle exec appraisal ${{ matrix.appraisal }} install
74
+ run: |
75
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
76
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
77
+ bundle exec appraisal ${{ matrix.appraisal }} install
72
78
 
73
79
  - name: Restore RSpec status log
74
80
  if: "${{!env.ACT}}"
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-22.04
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -68,7 +71,10 @@ jobs:
68
71
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
69
72
  id: bundleAppraisalAttempt2
70
73
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
71
- run: bundle exec appraisal ${{ matrix.appraisal }} install
74
+ run: |
75
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
76
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
77
+ bundle exec appraisal ${{ matrix.appraisal }} install
72
78
 
73
79
  - name: Restore RSpec status log
74
80
  if: "${{!env.ACT}}"
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-22.04
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -68,7 +71,10 @@ jobs:
68
71
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
69
72
  id: bundleAppraisalAttempt2
70
73
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
71
- run: bundle exec appraisal ${{ matrix.appraisal }} install
74
+ run: |
75
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
76
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
77
+ bundle exec appraisal ${{ matrix.appraisal }} install
72
78
 
73
79
  - name: Restore RSpec status log
74
80
  if: "${{!env.ACT}}"
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-22.04
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -68,7 +71,10 @@ jobs:
68
71
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
69
72
  id: bundleAppraisalAttempt2
70
73
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
71
- run: bundle exec appraisal ${{ matrix.appraisal }} install
74
+ run: |
75
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
76
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
77
+ bundle exec appraisal ${{ matrix.appraisal }} install
72
78
 
73
79
  - name: Restore RSpec status log
74
80
  if: "${{!env.ACT}}"
@@ -4,6 +4,8 @@ permissions:
4
4
  contents: read
5
5
 
6
6
  env:
7
+ # Kill stalled test workers instead of hanging until the CI job timeout.
8
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
7
9
  K_SOUP_COV_DO: false
8
10
 
9
11
  on:
@@ -30,6 +32,7 @@ jobs:
30
32
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
31
33
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
32
34
  runs-on: ubuntu-22.04
35
+ timeout-minutes: 30
33
36
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
34
37
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
35
38
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
@@ -67,8 +70,11 @@ jobs:
67
70
 
68
71
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
69
72
  id: bundleAppraisalAttempt2
70
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
71
- run: bundle exec appraisal ${{ matrix.appraisal }} install
73
+ if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
74
+ run: |
75
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
76
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
77
+ bundle exec appraisal ${{ matrix.appraisal }} install
72
78
 
73
79
  - name: Restore RSpec status log
74
80
  if: "${{!env.ACT}}"
@@ -4,6 +4,8 @@ permissions:
4
4
  contents: read
5
5
 
6
6
  env:
7
+ # Kill stalled test workers instead of hanging until the CI job timeout.
8
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
7
9
  K_SOUP_COV_DO: false
8
10
 
9
11
  on:
@@ -30,6 +32,7 @@ jobs:
30
32
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
31
33
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
32
34
  runs-on: ubuntu-22.04
35
+ timeout-minutes: 30
33
36
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
34
37
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
35
38
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
@@ -67,7 +70,10 @@ jobs:
67
70
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
68
71
  id: bundleAppraisalAttempt2
69
72
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
70
- run: bundle exec appraisal ${{ matrix.appraisal }} install
73
+ run: |
74
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
75
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
76
+ bundle exec appraisal ${{ matrix.appraisal }} install
71
77
 
72
78
  - name: Restore RSpec status log
73
79
  if: "${{!env.ACT}}"
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-latest
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -64,7 +67,10 @@ jobs:
64
67
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
65
68
  id: bundleAppraisalAttempt2
66
69
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
67
- run: bundle exec appraisal ${{ matrix.appraisal }} install
70
+ run: |
71
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
72
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
73
+ bundle exec appraisal ${{ matrix.appraisal }} install
68
74
 
69
75
  - name: Restore RSpec status log
70
76
  if: "${{!env.ACT}}"
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-latest
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -64,7 +67,10 @@ jobs:
64
67
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
65
68
  id: bundleAppraisalAttempt2
66
69
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
67
- run: bundle exec appraisal ${{ matrix.appraisal }} install
70
+ run: |
71
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
72
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
73
+ bundle exec appraisal ${{ matrix.appraisal }} install
68
74
 
69
75
  - name: Restore RSpec status log
70
76
  if: "${{!env.ACT}}"
@@ -27,9 +27,12 @@ jobs:
27
27
  if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]'))"
28
28
  name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
29
29
  runs-on: ubuntu-latest
30
+ timeout-minutes: 30
30
31
  continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
31
32
  env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
32
33
  BUNDLE_GEMFILE: ${{ github.workspace }}/Appraisal.root.gemfile
34
+ # Kill stalled test workers instead of hanging until the CI job timeout.
35
+ TURBO_TESTS2_WATCHDOG_SECONDS: 900
33
36
  strategy:
34
37
  matrix:
35
38
  include:
@@ -64,7 +67,10 @@ jobs:
64
67
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
65
68
  id: bundleAppraisalAttempt2
66
69
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
67
- run: bundle exec appraisal ${{ matrix.appraisal }} install
70
+ run: |
71
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
72
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
73
+ bundle exec appraisal ${{ matrix.appraisal }} install
68
74
 
69
75
  - name: Restore RSpec status log
70
76
  if: "${{!env.ACT}}"
@@ -67,7 +67,10 @@ jobs:
67
67
  id: bundleAppraisalAttempt2
68
68
  # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
69
69
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
70
- run: bundle exec appraisal ${{ matrix.appraisal }} install
70
+ run: |
71
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
72
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
73
+ bundle exec appraisal ${{ matrix.appraisal }} install
71
74
 
72
75
  - name: Run ${{ matrix.appraisal }} checks via ${{ matrix.exec_cmd }}
73
76
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -80,7 +80,10 @@ jobs:
80
80
  id: bundleAppraisalAttempt2
81
81
  # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
82
82
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' }}
83
- run: bundle exec appraisal ${{ matrix.appraisal }} install
83
+ run: |
84
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
85
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
86
+ bundle exec appraisal ${{ matrix.appraisal }} install
84
87
 
85
88
  - name: Cache tree-sitter-language-pack grammars
86
89
  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:
@@ -30,6 +39,7 @@ jobs:
30
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-latest
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
@@ -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: bundle exec appraisal ${{ matrix.appraisal }} install
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:
@@ -30,6 +39,7 @@ jobs:
30
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
@@ -75,7 +85,10 @@ jobs:
75
85
  id: bundleAppraisalAttempt2
76
86
  # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
77
87
  if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !env.ACT }}
78
- run: bundle exec appraisal ${{ matrix.appraisal }} install
88
+ run: |
89
+ rm -f gemfiles/${{ matrix.appraisal }}.gemfile.lock
90
+ rm -rf vendor/bundle "$HOME/.bundle/cache"
91
+ bundle exec appraisal ${{ matrix.appraisal }} install
79
92
 
80
93
  - name: Restore RSpec status log
81
94
  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:
@@ -30,6 +39,7 @@ jobs:
30
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
@@ -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:
@@ -30,6 +39,7 @@ jobs:
30
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
@@ -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: bundle exec appraisal ${{ matrix.appraisal }} install
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:
@@ -30,6 +39,7 @@ jobs:
30
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
@@ -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: bundle exec appraisal ${{ matrix.appraisal }} install
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:
@@ -30,6 +39,7 @@ jobs:
30
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
@@ -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: bundle exec appraisal ${{ matrix.appraisal }} install
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
@@ -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: bundle exec appraisal ${{ matrix.appraisal }} install
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 }}
@@ -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.11") # ruby >= {KJ|MIN_TEST_RUBY}
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
@@ -133,8 +133,8 @@ Gem::Specification.new do |spec|
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
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.24") # ruby >= {KJ|MIN_TEST_RUBY}
137
- spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.14") # ruby >= 2.4.0, default kettle-test runner
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
@@ -30,13 +30,13 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency "{KJ|SHIMMED_GEM_NAME}"
31
31
 
32
32
  # Dev, Test, & Release Tasks
33
- spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.11") # ruby >= {KJ|MIN_TEST_RUBY}
33
+ spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.13") # ruby >= {KJ|MIN_TEST_RUBY}
34
34
 
35
35
  # Tasks
36
36
  spec.add_development_dependency "rake", "~> 13.0"
37
37
 
38
38
  # Testing
39
- spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.24") # ruby >= {KJ|MIN_TEST_RUBY}
39
+ spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.25") # ruby >= {KJ|MIN_TEST_RUBY}
40
40
  spec.add_development_dependency "rspec", "~> 3.12"
41
41
 
42
42
  # Releasing
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "7.1.29"
8
+ VERSION = "7.1.30"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location