kettle-dev 1.2.4 → 2.0.1

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 (152) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +232 -3
  4. data/CITATION.cff +6 -6
  5. data/CONTRIBUTING.md +64 -46
  6. data/FUNDING.md +1 -1
  7. data/LICENSE.md +12 -0
  8. data/README.md +448 -457
  9. data/certs/pboling.pem +27 -0
  10. data/exe/kettle-changelog +24 -13
  11. data/exe/kettle-check-eof +7 -0
  12. data/exe/kettle-check-eof.sh +118 -0
  13. data/exe/kettle-dev-setup +12 -63
  14. data/exe/kettle-gh-release +82 -0
  15. data/lib/kettle/dev/changelog_cli.rb +373 -62
  16. data/lib/kettle/dev/ci_monitor.rb +2 -2
  17. data/lib/kettle/dev/dvcs_cli.rb +1 -1
  18. data/lib/kettle/dev/gem_spec_reader.rb +100 -10
  19. data/lib/kettle/dev/git_adapter.rb +37 -1
  20. data/lib/kettle/dev/open_collective_config.rb +15 -3
  21. data/lib/kettle/dev/pre_release_cli.rb +4 -4
  22. data/lib/kettle/dev/rakelib/reek.rake +9 -6
  23. data/lib/kettle/dev/rakelib/spec_test.rake +25 -25
  24. data/lib/kettle/dev/rakelib/yard.rake +17 -17
  25. data/lib/kettle/dev/readme_backers.rb +4 -4
  26. data/lib/kettle/dev/release_cli.rb +27 -24
  27. data/lib/kettle/dev/tasks/ci_task.rb +4 -4
  28. data/lib/kettle/dev/version.rb +2 -87
  29. data/lib/kettle/dev.rb +31 -17
  30. data/sig/kettle/dev/source_merger.rbs +40 -56
  31. data/sig/kettle/dev/version.rbs +8 -0
  32. data.tar.gz.sig +0 -0
  33. metadata +63 -165
  34. metadata.gz.sig +0 -0
  35. data/.aiignore.example +0 -19
  36. data/.devcontainer/apt-install/devcontainer-feature.json +0 -9
  37. data/.devcontainer/apt-install/install.sh +0 -11
  38. data/.devcontainer/devcontainer.json +0 -28
  39. data/.env.local.example +0 -31
  40. data/.envrc +0 -47
  41. data/.envrc.example +0 -51
  42. data/.envrc.no-osc.example +0 -51
  43. data/.git-hooks/commit-msg +0 -54
  44. data/.git-hooks/commit-subjects-goalie.txt +0 -8
  45. data/.git-hooks/footer-template.erb.txt +0 -16
  46. data/.git-hooks/prepare-commit-msg +0 -8
  47. data/.github/.codecov.yml.example +0 -14
  48. data/.github/FUNDING.yml +0 -13
  49. data/.github/FUNDING.yml.no-osc.example +0 -13
  50. data/.github/dependabot.yml +0 -13
  51. data/.github/workflows/ancient.yml +0 -83
  52. data/.github/workflows/ancient.yml.example +0 -81
  53. data/.github/workflows/auto-assign.yml +0 -21
  54. data/.github/workflows/codeql-analysis.yml +0 -70
  55. data/.github/workflows/coverage.yml +0 -127
  56. data/.github/workflows/coverage.yml.example +0 -127
  57. data/.github/workflows/current.yml +0 -116
  58. data/.github/workflows/current.yml.example +0 -115
  59. data/.github/workflows/dep-heads.yml +0 -117
  60. data/.github/workflows/dependency-review.yml +0 -20
  61. data/.github/workflows/discord-notifier.yml.example +0 -39
  62. data/.github/workflows/heads.yml +0 -117
  63. data/.github/workflows/heads.yml.example +0 -116
  64. data/.github/workflows/jruby.yml +0 -82
  65. data/.github/workflows/jruby.yml.example +0 -72
  66. data/.github/workflows/legacy.yml +0 -76
  67. data/.github/workflows/license-eye.yml +0 -40
  68. data/.github/workflows/locked_deps.yml +0 -85
  69. data/.github/workflows/opencollective.yml +0 -40
  70. data/.github/workflows/style.yml +0 -67
  71. data/.github/workflows/supported.yml +0 -75
  72. data/.github/workflows/truffle.yml +0 -99
  73. data/.github/workflows/unlocked_deps.yml +0 -84
  74. data/.github/workflows/unsupported.yml +0 -76
  75. data/.gitignore +0 -50
  76. data/.gitlab-ci.yml.example +0 -134
  77. data/.idea/.gitignore +0 -45
  78. data/.junie/guidelines-rbs.md +0 -49
  79. data/.junie/guidelines.md +0 -141
  80. data/.junie/guidelines.md.example +0 -140
  81. data/.licenserc.yaml +0 -7
  82. data/.opencollective.yml +0 -3
  83. data/.opencollective.yml.example +0 -3
  84. data/.qlty/qlty.toml +0 -79
  85. data/.rspec +0 -9
  86. data/.rubocop.yml +0 -13
  87. data/.rubocop_rspec.yml +0 -33
  88. data/.simplecov +0 -16
  89. data/.simplecov.example +0 -11
  90. data/.tool-versions +0 -1
  91. data/.yardignore +0 -13
  92. data/.yardopts +0 -14
  93. data/Appraisal.root.gemfile +0 -10
  94. data/Appraisals +0 -151
  95. data/Appraisals.example +0 -102
  96. data/CHANGELOG.md.example +0 -47
  97. data/CONTRIBUTING.md.example +0 -227
  98. data/FUNDING.md.no-osc.example +0 -63
  99. data/Gemfile +0 -40
  100. data/Gemfile.example +0 -34
  101. data/LICENSE.txt +0 -21
  102. data/README.md.example +0 -570
  103. data/README.md.no-osc.example +0 -536
  104. data/REEK +0 -0
  105. data/Rakefile.example +0 -68
  106. data/bin/setup +0 -8
  107. data/gemfiles/modular/coverage.gemfile +0 -6
  108. data/gemfiles/modular/debug.gemfile +0 -13
  109. data/gemfiles/modular/documentation.gemfile +0 -14
  110. data/gemfiles/modular/erb/r2/v3.0.gemfile +0 -1
  111. data/gemfiles/modular/erb/r2.3/default.gemfile +0 -6
  112. data/gemfiles/modular/erb/r2.6/v2.2.gemfile +0 -3
  113. data/gemfiles/modular/erb/r3/v5.0.gemfile +0 -1
  114. data/gemfiles/modular/erb/r3.1/v4.0.gemfile +0 -2
  115. data/gemfiles/modular/erb/vHEAD.gemfile +0 -2
  116. data/gemfiles/modular/injected.gemfile +0 -60
  117. data/gemfiles/modular/mutex_m/r2/v0.3.gemfile +0 -2
  118. data/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile +0 -3
  119. data/gemfiles/modular/mutex_m/r3/v0.3.gemfile +0 -2
  120. data/gemfiles/modular/mutex_m/vHEAD.gemfile +0 -2
  121. data/gemfiles/modular/optional.gemfile +0 -8
  122. data/gemfiles/modular/optional.gemfile.example +0 -5
  123. data/gemfiles/modular/runtime_heads.gemfile +0 -10
  124. data/gemfiles/modular/runtime_heads.gemfile.example +0 -8
  125. data/gemfiles/modular/stringio/r2/v3.0.gemfile +0 -5
  126. data/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile +0 -4
  127. data/gemfiles/modular/stringio/r3/v3.0.gemfile +0 -5
  128. data/gemfiles/modular/stringio/vHEAD.gemfile +0 -2
  129. data/gemfiles/modular/style.gemfile +0 -25
  130. data/gemfiles/modular/style.gemfile.example +0 -25
  131. data/gemfiles/modular/templating.gemfile +0 -3
  132. data/gemfiles/modular/x_std_libs/r2/libs.gemfile +0 -3
  133. data/gemfiles/modular/x_std_libs/r2.3/libs.gemfile +0 -3
  134. data/gemfiles/modular/x_std_libs/r2.4/libs.gemfile +0 -3
  135. data/gemfiles/modular/x_std_libs/r2.6/libs.gemfile +0 -3
  136. data/gemfiles/modular/x_std_libs/r3/libs.gemfile +0 -3
  137. data/gemfiles/modular/x_std_libs/r3.1/libs.gemfile +0 -3
  138. data/gemfiles/modular/x_std_libs/vHEAD.gemfile +0 -3
  139. data/gemfiles/modular/x_std_libs.gemfile +0 -2
  140. data/kettle-dev.gemspec.example +0 -154
  141. data/lib/kettle/dev/modular_gemfiles.rb +0 -119
  142. data/lib/kettle/dev/prism_appraisals.rb +0 -351
  143. data/lib/kettle/dev/prism_gemfile.rb +0 -177
  144. data/lib/kettle/dev/prism_gemspec.rb +0 -284
  145. data/lib/kettle/dev/prism_utils.rb +0 -201
  146. data/lib/kettle/dev/rakelib/install.rake +0 -10
  147. data/lib/kettle/dev/rakelib/template.rake +0 -10
  148. data/lib/kettle/dev/setup_cli.rb +0 -403
  149. data/lib/kettle/dev/source_merger.rb +0 -655
  150. data/lib/kettle/dev/tasks/install_task.rb +0 -553
  151. data/lib/kettle/dev/tasks/template_task.rb +0 -975
  152. data/lib/kettle/dev/template_helpers.rb +0 -685
@@ -1,116 +0,0 @@
1
- # Targets the evergreen latest release of ruby, truffleruby, and jruby
2
- name: Current
3
-
4
- permissions:
5
- contents: read
6
-
7
- env:
8
- K_SOUP_COV_DO: false
9
-
10
- on:
11
- push:
12
- branches:
13
- - 'main'
14
- - '*-stable'
15
- tags:
16
- - '!*' # Do not execute on tags
17
- pull_request:
18
- branches:
19
- - '*'
20
- # Allow manually triggering the workflow.
21
- workflow_dispatch:
22
-
23
- # Cancels all previous workflow runs for the same branch that have not yet completed.
24
- concurrency:
25
- # The concurrency group contains the workflow name and the branch name.
26
- group: "${{ github.workflow }}-${{ github.ref }}"
27
- cancel-in-progress: true
28
-
29
- jobs:
30
- test:
31
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
32
- name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
33
- runs-on: ubuntu-latest
34
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
35
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
36
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
37
- strategy:
38
- matrix:
39
- include:
40
- # Ruby 3.4
41
- - ruby: "ruby"
42
- appraisal: "current"
43
- exec_cmd: "rake test"
44
- gemfile: "Appraisal.root"
45
- rubygems: latest
46
- bundler: latest
47
-
48
- # Turn back on once allow-failures is a feature of GHA.
49
- # # truffleruby-24.1 (targets Ruby 3.3 compatibility)
50
- # - ruby: "truffleruby"
51
- # appraisal: "current"
52
- # exec_cmd: "rake test"
53
- # gemfile: "Appraisal.root"
54
- # rubygems: default
55
- # bundler: default
56
-
57
- # jruby-10.0 (targets Ruby 3.4 compatibility)
58
- - ruby: "jruby"
59
- appraisal: "current"
60
- exec_cmd: "rake test"
61
- gemfile: "Appraisal.root"
62
- rubygems: default
63
- bundler: default
64
-
65
- steps:
66
- - name: Checkout
67
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
68
- uses: actions/checkout@v6
69
-
70
- - name: Setup Ruby & RubyGems
71
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
72
- uses: ruby/setup-ruby@v1
73
- with:
74
- ruby-version: ${{ matrix.ruby }}
75
- rubygems: ${{ matrix.rubygems }}
76
- bundler: ${{ matrix.bundler }}
77
- bundler-cache: false
78
-
79
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
80
- # We need to do this first to get appraisal installed.
81
- # NOTE: This does not use the primary Gemfile at all.
82
- - name: Install Root Appraisal
83
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
84
- run: bundle
85
-
86
- - name: "[Attempt 1] Install Root Appraisal"
87
- id: bundleAttempt1
88
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
89
- run: bundle
90
- # Continue to the next step on failure
91
- continue-on-error: true
92
-
93
- # Effectively an automatic retry of the previous step.
94
- - name: "[Attempt 2] Install Root Appraisal"
95
- id: bundleAttempt2
96
- # If bundleAttempt1 failed, try again here; Otherwise skip.
97
- if: ${{ steps.bundleAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
98
- run: bundle
99
-
100
- - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
101
- id: bundleAppraisalAttempt1
102
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
103
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
104
- # Continue to the next step on failure
105
- continue-on-error: true
106
-
107
- # Effectively an automatic retry of the previous step.
108
- - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
109
- id: bundleAppraisalAttempt2
110
- # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
111
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
112
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
113
-
114
- - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
115
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
116
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -1,115 +0,0 @@
1
- # Targets the evergreen latest release of ruby, truffleruby, and jruby
2
- name: Current
3
-
4
- permissions:
5
- contents: read
6
-
7
- env:
8
- K_SOUP_COV_DO: false
9
-
10
- on:
11
- push:
12
- branches:
13
- - 'main'
14
- - '*-stable'
15
- tags:
16
- - '!*' # Do not execute on tags
17
- pull_request:
18
- branches:
19
- - '*'
20
- # Allow manually triggering the workflow.
21
- workflow_dispatch:
22
-
23
- # Cancels all previous workflow runs for the same branch that have not yet completed.
24
- concurrency:
25
- # The concurrency group contains the workflow name and the branch name.
26
- group: "${{ github.workflow }}-${{ github.ref }}"
27
- cancel-in-progress: true
28
-
29
- jobs:
30
- test:
31
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
32
- name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}
33
- runs-on: ubuntu-latest
34
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
35
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
36
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
37
- strategy:
38
- matrix:
39
- include:
40
- # Ruby 3.4
41
- - ruby: "ruby"
42
- appraisal: "current"
43
- exec_cmd: "rake test"
44
- gemfile: "Appraisal.root"
45
- rubygems: latest
46
- bundler: latest
47
-
48
- # truffleruby-24.1 (targets Ruby 3.3 compatibility)
49
- - ruby: "truffleruby"
50
- appraisal: "current"
51
- exec_cmd: "rake test"
52
- gemfile: "Appraisal.root"
53
- rubygems: default
54
- bundler: default
55
-
56
- # jruby-10.0 (targets Ruby 3.4 compatibility)
57
- - ruby: "jruby"
58
- appraisal: "current"
59
- exec_cmd: "rake test"
60
- gemfile: "Appraisal.root"
61
- rubygems: default
62
- bundler: default
63
-
64
- steps:
65
- - name: Checkout
66
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
67
- uses: actions/checkout@v6
68
-
69
- - name: Setup Ruby & RubyGems
70
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
71
- uses: ruby/setup-ruby@v1
72
- with:
73
- ruby-version: ${{ matrix.ruby }}
74
- rubygems: ${{ matrix.rubygems }}
75
- bundler: ${{ matrix.bundler }}
76
- bundler-cache: false
77
-
78
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
79
- # We need to do this first to get appraisal installed.
80
- # NOTE: This does not use the primary Gemfile at all.
81
- - name: Install Root Appraisal
82
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
83
- run: bundle
84
-
85
- - name: "[Attempt 1] Install Root Appraisal"
86
- id: bundleAttempt1
87
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
88
- run: bundle
89
- # Continue to the next step on failure
90
- continue-on-error: true
91
-
92
- # Effectively an automatic retry of the previous step.
93
- - name: "[Attempt 2] Install Root Appraisal"
94
- id: bundleAttempt2
95
- # If bundleAttempt1 failed, try again here; Otherwise skip.
96
- if: ${{ steps.bundleAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
97
- run: bundle
98
-
99
- - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
100
- id: bundleAppraisalAttempt1
101
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
102
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
103
- # Continue to the next step on failure
104
- continue-on-error: true
105
-
106
- # Effectively an automatic retry of the previous step.
107
- - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
108
- id: bundleAppraisalAttempt2
109
- # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
110
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
111
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
112
-
113
- - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
114
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
115
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -1,117 +0,0 @@
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 (targets Ruby 3.3 compatibility)
51
- - ruby: "truffleruby"
52
- appraisal: "dep-heads"
53
- exec_cmd: "rake test"
54
- gemfile: "Appraisal.root"
55
- rubygems: default
56
- bundler: default
57
-
58
- # jruby-10.0 (targets Ruby 3.4 compatibility)
59
- - ruby: "jruby"
60
- appraisal: "dep-heads"
61
- exec_cmd: "rake test"
62
- gemfile: "Appraisal.root"
63
- rubygems: default
64
- bundler: default
65
-
66
- steps:
67
- - name: Checkout
68
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
69
- uses: actions/checkout@v6
70
-
71
- - name: Setup Ruby & RubyGems
72
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
73
- uses: ruby/setup-ruby@v1
74
- with:
75
- ruby-version: ${{ matrix.ruby }}
76
- rubygems: ${{ matrix.rubygems }}
77
- bundler: ${{ matrix.bundler }}
78
- bundler-cache: false
79
-
80
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
81
- # We need to do this first to get appraisal installed.
82
- # NOTE: This does not use the primary Gemfile at all.
83
- - name: Install Root Appraisal
84
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
85
- run: bundle
86
-
87
- - name: "[Attempt 1] Install Root Appraisal"
88
- id: bundleAttempt1
89
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
90
- run: bundle
91
- # Continue to the next step on failure
92
- continue-on-error: true
93
-
94
- # Effectively an automatic retry of the previous step.
95
- - name: "[Attempt 2] Install Root Appraisal"
96
- id: bundleAttempt2
97
- # If bundleAttempt1 failed, try again here; Otherwise skip.
98
- if: ${{ steps.bundleAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
99
- run: bundle
100
-
101
- - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
102
- id: bundleAppraisalAttempt1
103
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
104
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
105
- # Continue to the next step on failure
106
- continue-on-error: true
107
-
108
- # Effectively an automatic retry of the previous step.
109
- - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
110
- id: bundleAppraisalAttempt2
111
- # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
112
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
113
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
114
-
115
- - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
116
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
117
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -1,20 +0,0 @@
1
- # Dependency Review Action
2
- #
3
- # This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
4
- #
5
- # Source repository: https://github.com/actions/dependency-review-action
6
- # Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
7
- name: 'Dependency Review'
8
- on: [pull_request]
9
-
10
- permissions:
11
- contents: read
12
-
13
- jobs:
14
- dependency-review:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - name: 'Checkout Repository'
18
- uses: actions/checkout@v6
19
- - name: 'Dependency Review'
20
- uses: actions/dependency-review-action@v4
@@ -1,39 +0,0 @@
1
- name: Discord Notify
2
-
3
- on:
4
- check_run:
5
- types: [completed]
6
- discussion:
7
- types: [ created ]
8
- discussion_comment:
9
- types: [ created ]
10
- fork:
11
- gollum:
12
- issues:
13
- types: [ opened ]
14
- issue_comment:
15
- types: [ created ]
16
- pull_request:
17
- types: [ opened, reopened, closed ]
18
- release:
19
- types: [ published ]
20
- watch:
21
- types: [ started ]
22
-
23
- # A workflow run is made up of one or more jobs that can run sequentially or in parallel
24
- jobs:
25
- # This workflow contains a single job called "build"
26
- notify:
27
- if: false
28
- # The type of runner that the job will run on
29
- runs-on: ubuntu-latest
30
-
31
- # Steps represent a sequence of tasks that will be executed as part of the job
32
- steps:
33
- - name: Actions Status Discord
34
- uses: sarisia/actions-status-discord@v1
35
- if: always()
36
- with:
37
- webhook: ${{ secrets.DISCORD_WEBHOOK }}
38
- status: ${{ job.status }}
39
- username: GitHub Actions
@@ -1,117 +0,0 @@
1
- name: Heads
2
-
3
- permissions:
4
- contents: read
5
-
6
- env:
7
- K_SOUP_COV_DO: false
8
-
9
- on:
10
- push:
11
- branches:
12
- - 'main'
13
- - '*-stable'
14
- tags:
15
- - '!*' # Do not execute on tags
16
- pull_request:
17
- branches:
18
- - '*'
19
- # Allow manually triggering the workflow.
20
- workflow_dispatch:
21
-
22
- # Cancels all previous workflow runs for the same branch that have not yet completed.
23
- concurrency:
24
- # The concurrency group contains the workflow name and the branch name.
25
- group: "${{ github.workflow }}-${{ github.ref }}"
26
- cancel-in-progress: true
27
-
28
- jobs:
29
- test:
30
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
31
- name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
32
- runs-on: ubuntu-latest
33
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
34
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
35
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
36
- strategy:
37
- fail-fast: true
38
- matrix:
39
- include:
40
- # NOTE: Heads use default rubygems / bundler; their defaults are custom, unreleased, and from the future!
41
- # ruby-head
42
- - ruby: "ruby-head"
43
- appraisal: "head"
44
- exec_cmd: "rake test"
45
- gemfile: "Appraisal.root"
46
- rubygems: default
47
- bundler: default
48
-
49
- # # Turn back on once allow-failures is a feature of GHA.
50
- # # truffleruby-head
51
- # - ruby: "truffleruby-head"
52
- # appraisal: "head"
53
- # exec_cmd: "rake test"
54
- # gemfile: "Appraisal.root"
55
- # rubygems: default
56
- # bundler: default
57
-
58
- # jruby-head
59
- - ruby: "jruby-head"
60
- appraisal: "head"
61
- exec_cmd: "rake test"
62
- gemfile: "Appraisal.root"
63
- rubygems: default
64
- bundler: default
65
-
66
- steps:
67
- - name: Checkout
68
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
69
- uses: actions/checkout@v6
70
-
71
- - name: Setup Ruby & RubyGems
72
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
73
- uses: ruby/setup-ruby@v1
74
- with:
75
- ruby-version: ${{ matrix.ruby }}
76
- rubygems: ${{ matrix.rubygems }}
77
- bundler: ${{ matrix.bundler }}
78
- bundler-cache: false
79
-
80
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
81
- # We need to do this first to get appraisal installed.
82
- # NOTE: This does not use the primary Gemfile at all.
83
- - name: Install Root Appraisal
84
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
85
- run: bundle
86
-
87
- - name: "[Attempt 1] Install Root Appraisal"
88
- id: bundleAttempt1
89
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
90
- run: bundle
91
- # Continue to the next step on failure
92
- continue-on-error: true
93
-
94
- # Effectively an automatic retry of the previous step.
95
- - name: "[Attempt 2] Install Root Appraisal"
96
- id: bundleAttempt2
97
- # If bundleAttempt1 failed, try again here; Otherwise skip.
98
- if: ${{ steps.bundleAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
99
- run: bundle
100
-
101
- - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
102
- id: bundleAppraisalAttempt1
103
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
104
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
105
- # Continue to the next step on failure
106
- continue-on-error: true
107
-
108
- # Effectively an automatic retry of the previous step.
109
- - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
110
- id: bundleAppraisalAttempt2
111
- # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
112
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
113
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
114
-
115
- - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
116
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
117
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -1,116 +0,0 @@
1
- name: Heads
2
-
3
- permissions:
4
- contents: read
5
-
6
- env:
7
- K_SOUP_COV_DO: false
8
-
9
- on:
10
- push:
11
- branches:
12
- - 'main'
13
- - '*-stable'
14
- tags:
15
- - '!*' # Do not execute on tags
16
- pull_request:
17
- branches:
18
- - '*'
19
- # Allow manually triggering the workflow.
20
- workflow_dispatch:
21
-
22
- # Cancels all previous workflow runs for the same branch that have not yet completed.
23
- concurrency:
24
- # The concurrency group contains the workflow name and the branch name.
25
- group: "${{ github.workflow }}-${{ github.ref }}"
26
- cancel-in-progress: true
27
-
28
- jobs:
29
- test:
30
- if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
31
- name: Specs ${{ matrix.ruby }}@${{ matrix.appraisal }}${{ matrix.name_extra || '' }}
32
- runs-on: ubuntu-latest
33
- continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }}
34
- env: # $BUNDLE_GEMFILE must be set at job level, so it is set for all steps
35
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}.gemfile
36
- strategy:
37
- fail-fast: true
38
- matrix:
39
- include:
40
- # NOTE: Heads use default rubygems / bundler; their defaults are custom, unreleased, and from the future!
41
- # ruby-head
42
- - ruby: "ruby-head"
43
- appraisal: "head"
44
- exec_cmd: "rake test"
45
- gemfile: "Appraisal.root"
46
- rubygems: default
47
- bundler: default
48
-
49
- # truffleruby-head
50
- - ruby: "truffleruby-head"
51
- appraisal: "head"
52
- exec_cmd: "rake test"
53
- gemfile: "Appraisal.root"
54
- rubygems: default
55
- bundler: default
56
-
57
- # jruby-head
58
- - ruby: "jruby-head"
59
- appraisal: "head"
60
- exec_cmd: "rake test"
61
- gemfile: "Appraisal.root"
62
- rubygems: default
63
- bundler: default
64
-
65
- steps:
66
- - name: Checkout
67
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
68
- uses: actions/checkout@v6
69
-
70
- - name: Setup Ruby & RubyGems
71
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
72
- uses: ruby/setup-ruby@v1
73
- with:
74
- ruby-version: ${{ matrix.ruby }}
75
- rubygems: ${{ matrix.rubygems }}
76
- bundler: ${{ matrix.bundler }}
77
- bundler-cache: false
78
-
79
- # Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
80
- # We need to do this first to get appraisal installed.
81
- # NOTE: This does not use the primary Gemfile at all.
82
- - name: Install Root Appraisal
83
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
84
- run: bundle
85
-
86
- - name: "[Attempt 1] Install Root Appraisal"
87
- id: bundleAttempt1
88
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
89
- run: bundle
90
- # Continue to the next step on failure
91
- continue-on-error: true
92
-
93
- # Effectively an automatic retry of the previous step.
94
- - name: "[Attempt 2] Install Root Appraisal"
95
- id: bundleAttempt2
96
- # If bundleAttempt1 failed, try again here; Otherwise skip.
97
- if: ${{ steps.bundleAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
98
- run: bundle
99
-
100
- - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
101
- id: bundleAppraisalAttempt1
102
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
103
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
104
- # Continue to the next step on failure
105
- continue-on-error: true
106
-
107
- # Effectively an automatic retry of the previous step.
108
- - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
109
- id: bundleAppraisalAttempt2
110
- # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
111
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
112
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle
113
-
114
- - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
115
- if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
116
- run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}