kettle-dev 1.0.20 → 1.0.22
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/.envrc +3 -0
- data/.github/dependabot.yml +2 -0
- data/.github/workflows/ancient.yml +4 -1
- data/.github/workflows/ancient.yml.example +4 -1
- data/.github/workflows/coverage.yml +1 -1
- data/.github/workflows/coverage.yml.example +1 -1
- data/.github/workflows/current.yml +4 -4
- data/.github/workflows/heads.yml +18 -6
- data/.github/workflows/heads.yml.example +97 -0
- data/.github/workflows/jruby.yml +4 -4
- data/.github/workflows/jruby.yml.example +4 -4
- data/.github/workflows/legacy.yml +13 -5
- data/.github/workflows/style.yml +1 -1
- data/.github/workflows/supported.yml +4 -12
- data/.github/workflows/truffle.yml +27 -2
- data/.github/workflows/unlocked_deps.yml +1 -1
- data/.github/workflows/unsupported.yml +4 -4
- data/.rspec +2 -1
- data/Appraisals +7 -7
- data/Appraisals.example +3 -3
- data/CHANGELOG.md +36 -1
- data/CITATION.cff +2 -2
- data/CONTRIBUTING.md +12 -9
- data/README.md +35 -35
- data/README.md.example +22 -22
- data/Rakefile.example +1 -1
- data/gemfiles/modular/style.gemfile +12 -3
- data/gemfiles/modular/style.gemfile.example +25 -0
- data/kettle-dev.gemspec.example +2 -2
- data/lib/kettle/dev/release_cli.rb +21 -0
- data/lib/kettle/dev/tasks/template_task.rb +21 -11
- data/lib/kettle/dev/template_helpers.rb +7 -0
- data/lib/kettle/dev/version.rb +1 -1
- data/sig/kettle/dev/release_cli.rbs +1 -0
- data.tar.gz.sig +0 -0
- metadata +6 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a2319467e7b37ae135d36dd2d9750de33b700cad93bfbcad890c51002489941
|
4
|
+
data.tar.gz: 30eb41fdaa0a113665d1050d3f24e46ce715b5a019d4987d4391acea8fd62de6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aefe32f787237bc2c1e3a07491eee3a126b4ecff7f76cff3b1a38d14c46e1dd06c0ba37bb88855430b305aa5c9cfd067f6c1bd37d7dd72ff29f62faf55dfe0c1
|
7
|
+
data.tar.gz: 0f9e5277c86c888aba4bb32286646f86a269380f0a1d526810ba2ddc6723d89bbeb405e00a29c8b29b6dbbb7d77248e0e76250f04143f8cf836aef0f9ce6a0ed
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/.envrc
CHANGED
@@ -34,6 +34,9 @@ export DEBUG=false # do not allow byebug statements (override in .env.local)
|
|
34
34
|
export FLOSS_CFG_FUND_DEBUG=false # extra logging to help diagnose issues (override in .env.local)
|
35
35
|
export FLOSS_CFG_FUND_LOGFILE=tmp/log/debug.log
|
36
36
|
|
37
|
+
# Concurrently developing the rubocop-lts suite?
|
38
|
+
export RUBOCOP_LTS_LOCAL=false
|
39
|
+
|
37
40
|
# .env would override anything in this file, if `dotenv` is uncommented below.
|
38
41
|
# .env is a DOCKER standard, and if we use it, it would be in deployed, or DOCKER, environments,
|
39
42
|
# and that is why we generally want to leave it commented out.
|
data/.github/dependabot.yml
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
name: MRI 2.3, 2.4, 2.5 (EOL)
|
2
2
|
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
3
6
|
on:
|
4
7
|
push:
|
5
8
|
branches:
|
@@ -71,7 +74,7 @@ jobs:
|
|
71
74
|
|
72
75
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
73
76
|
# We need to do this first to get appraisal installed.
|
74
|
-
# NOTE: This does not use the
|
77
|
+
# NOTE: This does not use the primary Gemfile at all.
|
75
78
|
- name: Install Root Appraisal
|
76
79
|
run: bundle
|
77
80
|
- name: Appraisal for ${{ matrix.appraisal }}
|
@@ -1,5 +1,8 @@
|
|
1
1
|
name: MRI 2.3, 2.4, 2.5 (EOL)
|
2
2
|
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
3
6
|
on:
|
4
7
|
push:
|
5
8
|
branches:
|
@@ -69,7 +72,7 @@ jobs:
|
|
69
72
|
|
70
73
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
71
74
|
# We need to do this first to get appraisal installed.
|
72
|
-
# NOTE: This does not use the
|
75
|
+
# NOTE: This does not use the primary Gemfile at all.
|
73
76
|
- name: Install Root Appraisal
|
74
77
|
run: bundle
|
75
78
|
- name: Appraisal for ${{ matrix.appraisal }}
|
@@ -68,7 +68,7 @@ jobs:
|
|
68
68
|
|
69
69
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
70
70
|
# We need to do this first to get appraisal installed.
|
71
|
-
# NOTE: This does not use the
|
71
|
+
# NOTE: This does not use the primary Gemfile at all.
|
72
72
|
- name: Install Root Appraisal
|
73
73
|
run: bundle
|
74
74
|
- name: Appraisal for ${{ matrix.appraisal }}
|
@@ -67,7 +67,7 @@ jobs:
|
|
67
67
|
|
68
68
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
69
69
|
# We need to do this first to get appraisal installed.
|
70
|
-
# NOTE: This does not use the
|
70
|
+
# NOTE: This does not use the primary Gemfile at all.
|
71
71
|
- name: Install Root Appraisal
|
72
72
|
run: bundle
|
73
73
|
- name: Appraisal for ${{ matrix.appraisal }}
|
@@ -1,6 +1,9 @@
|
|
1
1
|
# Targets the evergreen latest release of ruby, truffleruby, and jruby
|
2
2
|
name: Current
|
3
3
|
|
4
|
+
permissions:
|
5
|
+
contents: read
|
6
|
+
|
4
7
|
env:
|
5
8
|
K_SOUP_COV_DO: false
|
6
9
|
|
@@ -17,9 +20,6 @@ on:
|
|
17
20
|
# Allow manually triggering the workflow.
|
18
21
|
workflow_dispatch:
|
19
22
|
|
20
|
-
permissions:
|
21
|
-
contents: read
|
22
|
-
|
23
23
|
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
24
24
|
concurrency:
|
25
25
|
# The concurrency group contains the workflow name and the branch name.
|
@@ -77,7 +77,7 @@ jobs:
|
|
77
77
|
|
78
78
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
79
79
|
# We need to do this first to get appraisal installed.
|
80
|
-
# NOTE: This does not use the
|
80
|
+
# NOTE: This does not use the primary Gemfile at all.
|
81
81
|
- name: Install Root Appraisal
|
82
82
|
run: bundle
|
83
83
|
- name: Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}
|
data/.github/workflows/heads.yml
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
name: Heads
|
2
2
|
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
3
6
|
env:
|
4
7
|
K_SOUP_COV_DO: false
|
5
8
|
|
@@ -16,9 +19,6 @@ on:
|
|
16
19
|
# Allow manually triggering the workflow.
|
17
20
|
workflow_dispatch:
|
18
21
|
|
19
|
-
permissions:
|
20
|
-
contents: read
|
21
|
-
|
22
22
|
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
23
23
|
concurrency:
|
24
24
|
# The concurrency group contains the workflow name and the branch name.
|
@@ -76,10 +76,22 @@ jobs:
|
|
76
76
|
|
77
77
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
78
78
|
# We need to do this first to get appraisal installed.
|
79
|
-
# NOTE: This does not use the
|
80
|
-
- name: Install Root Appraisal
|
79
|
+
# NOTE: This does not use the primary Gemfile at all.
|
80
|
+
- name: "Install Root Appraisal"
|
81
81
|
run: bundle
|
82
|
-
|
82
|
+
|
83
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
84
|
+
id: bundleAttempt1
|
83
85
|
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
86
|
+
# Continue to the next step on failure
|
87
|
+
continue-on-error: true
|
88
|
+
|
89
|
+
# Effectively an automatic retry of the previous step.
|
90
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
91
|
+
id: bundleAttempt2
|
92
|
+
# If bundleAttempt1 failed, try again here; Otherwise skip.
|
93
|
+
if: steps.bundleAttempt1.outcome == 'failure'
|
94
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
95
|
+
|
84
96
|
- name: Tests for ${{ matrix.ruby }}@${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
|
85
97
|
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
@@ -0,0 +1,97 @@
|
|
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
|
+
uses: actions/checkout@v5
|
68
|
+
|
69
|
+
- name: Setup Ruby & RubyGems
|
70
|
+
uses: ruby/setup-ruby@v1
|
71
|
+
with:
|
72
|
+
ruby-version: ${{ matrix.ruby }}
|
73
|
+
rubygems: ${{ matrix.rubygems }}
|
74
|
+
bundler: ${{ matrix.bundler }}
|
75
|
+
bundler-cache: false
|
76
|
+
|
77
|
+
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
78
|
+
# We need to do this first to get appraisal installed.
|
79
|
+
# NOTE: This does not use the primary Gemfile at all.
|
80
|
+
- name: "Install Root Appraisal"
|
81
|
+
run: bundle
|
82
|
+
|
83
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
84
|
+
id: bundleAttempt1
|
85
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
86
|
+
# Continue to the next step on failure
|
87
|
+
continue-on-error: true
|
88
|
+
|
89
|
+
# Effectively an automatic retry of the previous step.
|
90
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
91
|
+
id: bundleAttempt2
|
92
|
+
# If bundleAttempt1 failed, try again here; Otherwise skip.
|
93
|
+
if: steps.bundleAttempt1.outcome == 'failure'
|
94
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
95
|
+
|
96
|
+
- name: Tests for ${{ matrix.ruby }}@${{ matrix.appraisal }} via ${{ matrix.exec_cmd }}
|
97
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
data/.github/workflows/jruby.yml
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
name: JRuby
|
2
2
|
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
3
6
|
env:
|
4
7
|
K_SOUP_COV_DO: false
|
5
8
|
|
@@ -16,9 +19,6 @@ on:
|
|
16
19
|
# Allow manually triggering the workflow.
|
17
20
|
workflow_dispatch:
|
18
21
|
|
19
|
-
permissions:
|
20
|
-
contents: read
|
21
|
-
|
22
22
|
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
23
23
|
concurrency:
|
24
24
|
# The concurrency group contains the workflow name and the branch name.
|
@@ -68,7 +68,7 @@ jobs:
|
|
68
68
|
|
69
69
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
70
70
|
# We need to do this first to get appraisal installed.
|
71
|
-
# NOTE: This does not use the
|
71
|
+
# NOTE: This does not use the primary Gemfile at all.
|
72
72
|
- name: Install Root Appraisal
|
73
73
|
run: bundle
|
74
74
|
- name: Appraisal for ${{ matrix.appraisal }}
|
@@ -1,5 +1,8 @@
|
|
1
1
|
name: JRuby
|
2
2
|
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
3
6
|
env:
|
4
7
|
K_SOUP_COV_DO: false
|
5
8
|
|
@@ -16,9 +19,6 @@ on:
|
|
16
19
|
# Allow manually triggering the workflow.
|
17
20
|
workflow_dispatch:
|
18
21
|
|
19
|
-
permissions:
|
20
|
-
contents: read
|
21
|
-
|
22
22
|
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
23
23
|
concurrency:
|
24
24
|
# The concurrency group contains the workflow name and the branch name.
|
@@ -58,7 +58,7 @@ jobs:
|
|
58
58
|
|
59
59
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
60
60
|
# We need to do this first to get appraisal installed.
|
61
|
-
# NOTE: This does not use the
|
61
|
+
# NOTE: This does not use the primary Gemfile at all.
|
62
62
|
- name: Install Root Appraisal
|
63
63
|
run: bundle
|
64
64
|
- name: Appraisal for ${{ matrix.appraisal }}
|
@@ -1,4 +1,7 @@
|
|
1
|
-
name: MRI 3.0 (EOL)
|
1
|
+
name: MRI 3.0, 3.1 (EOL)
|
2
|
+
|
3
|
+
permissions:
|
4
|
+
contents: read
|
2
5
|
|
3
6
|
env:
|
4
7
|
K_SOUP_COV_DO: false
|
@@ -16,9 +19,6 @@ on:
|
|
16
19
|
# Allow manually triggering the workflow.
|
17
20
|
workflow_dispatch:
|
18
21
|
|
19
|
-
permissions:
|
20
|
-
contents: read
|
21
|
-
|
22
22
|
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
23
23
|
concurrency:
|
24
24
|
# The concurrency group contains the workflow name and the branch name.
|
@@ -45,6 +45,14 @@ jobs:
|
|
45
45
|
rubygems: '3.5.23'
|
46
46
|
bundler: '2.5.23'
|
47
47
|
|
48
|
+
# Ruby 3.1
|
49
|
+
- ruby: "ruby-3.1"
|
50
|
+
appraisal: "ruby-3-1"
|
51
|
+
exec_cmd: "rake test"
|
52
|
+
gemfile: "Appraisal.root"
|
53
|
+
rubygems: latest
|
54
|
+
bundler: latest
|
55
|
+
|
48
56
|
steps:
|
49
57
|
- name: Checkout
|
50
58
|
uses: actions/checkout@v5
|
@@ -59,7 +67,7 @@ jobs:
|
|
59
67
|
|
60
68
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
61
69
|
# We need to do this first to get appraisal installed.
|
62
|
-
# NOTE: This does not use the
|
70
|
+
# NOTE: This does not use the primary Gemfile at all.
|
63
71
|
- name: Install Root Appraisal
|
64
72
|
run: bundle
|
65
73
|
- name: Appraisal for ${{ matrix.appraisal }}
|
data/.github/workflows/style.yml
CHANGED
@@ -56,7 +56,7 @@ jobs:
|
|
56
56
|
|
57
57
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
58
58
|
# We need to do this first to get appraisal installed.
|
59
|
-
# NOTE: This does not use the
|
59
|
+
# NOTE: This does not use the primary Gemfile at all.
|
60
60
|
- name: Install Root Appraisal
|
61
61
|
run: bundle
|
62
62
|
- name: Appraisal for ${{ matrix.appraisal }}
|
@@ -1,5 +1,8 @@
|
|
1
1
|
name: MRI Non-EOL
|
2
2
|
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
3
6
|
env:
|
4
7
|
K_SOUP_COV_DO: false
|
5
8
|
|
@@ -16,9 +19,6 @@ on:
|
|
16
19
|
# Allow manually triggering the workflow.
|
17
20
|
workflow_dispatch:
|
18
21
|
|
19
|
-
permissions:
|
20
|
-
contents: read
|
21
|
-
|
22
22
|
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
23
23
|
concurrency:
|
24
24
|
# The concurrency group contains the workflow name and the branch name.
|
@@ -36,14 +36,6 @@ jobs:
|
|
36
36
|
strategy:
|
37
37
|
matrix:
|
38
38
|
include:
|
39
|
-
# Ruby 3.1
|
40
|
-
- ruby: "ruby-3.1"
|
41
|
-
appraisal: "ruby-3-1"
|
42
|
-
exec_cmd: "rake test"
|
43
|
-
gemfile: "Appraisal.root"
|
44
|
-
rubygems: latest
|
45
|
-
bundler: latest
|
46
|
-
|
47
39
|
# Ruby 3.2
|
48
40
|
- ruby: "ruby-3.2"
|
49
41
|
appraisal: "ruby-3-2"
|
@@ -74,7 +66,7 @@ jobs:
|
|
74
66
|
|
75
67
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
76
68
|
# We need to do this first to get appraisal installed.
|
77
|
-
# NOTE: This does not use the
|
69
|
+
# NOTE: This does not use the primary Gemfile at all.
|
78
70
|
- name: Install Root Appraisal
|
79
71
|
run: bundle
|
80
72
|
- name: Appraisal for ${{ matrix.ruby }} ${{ matrix.appraisal }}
|
@@ -59,10 +59,35 @@ jobs:
|
|
59
59
|
|
60
60
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
61
61
|
# We need to do this first to get appraisal installed.
|
62
|
-
# NOTE: This does not use the
|
62
|
+
# NOTE: This does not use the primary Gemfile at all.
|
63
63
|
- name: Install Root Appraisal
|
64
64
|
run: bundle
|
65
|
-
|
65
|
+
|
66
|
+
- name: "[Attempt 1] Install Root Appraisal"
|
67
|
+
id: bundleAttempt1
|
68
|
+
run: bundle
|
69
|
+
# Continue to the next step on failure
|
70
|
+
continue-on-error: true
|
71
|
+
|
72
|
+
# Effectively an automatic retry of the previous step.
|
73
|
+
- name: "[Attempt 2] Install Root Appraisal"
|
74
|
+
id: bundleAttempt2
|
75
|
+
# If bundleAttempt1 failed, try again here; Otherwise skip.
|
76
|
+
if: steps.bundleAttempt1.outcome == 'failure'
|
77
|
+
run: bundle
|
78
|
+
|
79
|
+
- name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
80
|
+
id: bundleAppraisalAttempt1
|
81
|
+
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
82
|
+
# Continue to the next step on failure
|
83
|
+
continue-on-error: true
|
84
|
+
|
85
|
+
# Effectively an automatic retry of the previous step.
|
86
|
+
- name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
|
87
|
+
id: bundleAppraisalAttempt2
|
88
|
+
# If bundleAttempt1 failed, try again here; Otherwise skip.
|
89
|
+
if: steps.bundleAppraisalAttempt1.outcome == 'failure'
|
66
90
|
run: bundle exec appraisal ${{ matrix.appraisal }} bundle
|
91
|
+
|
67
92
|
- name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
|
68
93
|
run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
|
@@ -75,7 +75,7 @@ jobs:
|
|
75
75
|
|
76
76
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
77
77
|
# We need to do this first to get appraisal installed.
|
78
|
-
# NOTE: This does not use the
|
78
|
+
# NOTE: This does not use the primary Gemfile at all.
|
79
79
|
- name: Install Root Appraisal
|
80
80
|
run: bundle
|
81
81
|
- name: Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal_name }}
|
@@ -1,5 +1,8 @@
|
|
1
1
|
name: MRI 2.6 & 2.7 (EOL)
|
2
2
|
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
3
6
|
env:
|
4
7
|
K_SOUP_COV_DO: false
|
5
8
|
|
@@ -16,9 +19,6 @@ on:
|
|
16
19
|
# Allow manually triggering the workflow.
|
17
20
|
workflow_dispatch:
|
18
21
|
|
19
|
-
permissions:
|
20
|
-
contents: read
|
21
|
-
|
22
22
|
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
23
23
|
concurrency:
|
24
24
|
# The concurrency group contains the workflow name and the branch name.
|
@@ -67,7 +67,7 @@ jobs:
|
|
67
67
|
|
68
68
|
# Raw `bundle` will use the BUNDLE_GEMFILE set to matrix.gemfile (i.e. Appraisal.root)
|
69
69
|
# We need to do this first to get appraisal installed.
|
70
|
-
# NOTE: This does not use the
|
70
|
+
# NOTE: This does not use the primary Gemfile at all.
|
71
71
|
- name: Install Root Appraisal
|
72
72
|
run: bundle
|
73
73
|
- name: Appraisal for ${{ matrix.appraisal }}
|
data/.rspec
CHANGED
data/Appraisals
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# HOW TO UPDATE APPRAISALS:
|
4
|
-
#
|
5
|
-
# BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update
|
6
|
-
# bundle exec rake rubocop_gradual:autocorrect
|
3
|
+
# HOW TO UPDATE APPRAISALS (will run rubocop_gradual's autocorrect afterward):
|
4
|
+
# bin/rake appraisals:update
|
7
5
|
|
8
6
|
# Lock/Unlock Deps Pattern
|
9
7
|
#
|
@@ -34,6 +32,8 @@ end
|
|
34
32
|
# Split into discrete appraisals if one of them needs a dependency locked discretely.
|
35
33
|
appraise "head" do
|
36
34
|
gem "erb"
|
35
|
+
# See: https://github.com/vcr/vcr/issues/1057
|
36
|
+
gem "cgi", ">= 0.5"
|
37
37
|
gem "mutex_m", ">= 0.2"
|
38
38
|
gem "stringio", ">= 3.0"
|
39
39
|
gem "benchmark", "~> 0.4", ">= 0.4.1"
|
@@ -113,14 +113,14 @@ appraise "ruby-3-3" do
|
|
113
113
|
gem "stringio", "~> 3.0"
|
114
114
|
end
|
115
115
|
|
116
|
-
# Only run security audit on latest Ruby
|
116
|
+
# Only run security audit on the latest version of Ruby
|
117
117
|
appraise "audit" do
|
118
118
|
gem "erb"
|
119
119
|
gem "mutex_m", "~> 0.2"
|
120
120
|
gem "stringio", "~> 3.0"
|
121
121
|
end
|
122
122
|
|
123
|
-
# Only run coverage on latest Ruby
|
123
|
+
# Only run coverage on the latest version of Ruby
|
124
124
|
appraise "coverage" do
|
125
125
|
gem "erb"
|
126
126
|
gem "mutex_m", "~> 0.2"
|
@@ -130,7 +130,7 @@ appraise "coverage" do
|
|
130
130
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
131
131
|
end
|
132
132
|
|
133
|
-
# Only run linter on latest Ruby
|
133
|
+
# Only run linter on the latest version of Ruby (but, in support of oldest supported Ruby version)
|
134
134
|
appraise "style" do
|
135
135
|
gem "erb"
|
136
136
|
gem "mutex_m", "~> 0.2"
|
data/Appraisals.example
CHANGED
@@ -82,13 +82,13 @@ appraise "ruby-3-3" do
|
|
82
82
|
gem "stringio", "~> 3.0"
|
83
83
|
end
|
84
84
|
|
85
|
-
# Only run security audit on latest Ruby
|
85
|
+
# Only run security audit on the latest version of Ruby
|
86
86
|
appraise "audit" do
|
87
87
|
gem "mutex_m", "~> 0.2"
|
88
88
|
gem "stringio", "~> 3.0"
|
89
89
|
end
|
90
90
|
|
91
|
-
# Only run coverage on latest Ruby
|
91
|
+
# Only run coverage on the latest version of Ruby
|
92
92
|
appraise "coverage" do
|
93
93
|
gem "mutex_m", "~> 0.2"
|
94
94
|
gem "stringio", "~> 3.0"
|
@@ -96,7 +96,7 @@ appraise "coverage" do
|
|
96
96
|
eval_gemfile "modular/optional.gemfile"
|
97
97
|
end
|
98
98
|
|
99
|
-
# Only run linter on latest Ruby
|
99
|
+
# Only run linter on the latest version of Ruby (but, in support of oldest supported Ruby version)
|
100
100
|
appraise "style" do
|
101
101
|
gem "mutex_m", "~> 0.2"
|
102
102
|
gem "stringio", "~> 3.0"
|
data/CHANGELOG.md
CHANGED
@@ -24,6 +24,37 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
24
24
|
### Fixed
|
25
25
|
### Security
|
26
26
|
|
27
|
+
## [1.0.22] - 2025-08-30
|
28
|
+
- TAG: [v1.0.22][1.0.22t]
|
29
|
+
- COVERAGE: 97.82% -- 2375/2428 lines in 20 files
|
30
|
+
- BRANCH COVERAGE: 81.34% -- 972/1195 branches in 20 files
|
31
|
+
- 76.23% documented
|
32
|
+
### Added
|
33
|
+
- improved documentation
|
34
|
+
- example version of heads workflow
|
35
|
+
- give heads two attempts to succeed
|
36
|
+
|
37
|
+
## [1.0.21] - 2025-08-30
|
38
|
+
- TAG: [v1.0.21][1.0.21t]
|
39
|
+
- COVERAGE: 97.82% -- 2375/2428 lines in 20 files
|
40
|
+
- BRANCH COVERAGE: 81.34% -- 972/1195 branches in 20 files
|
41
|
+
- 76.23% documented
|
42
|
+
### Added
|
43
|
+
- FUNDING.md in support of a funding footer on release notes
|
44
|
+
- <!-- RELEASE-NOTES-FOOTER-START -->
|
45
|
+
- <!-- RELEASE-NOTES-FOOTER-END -->
|
46
|
+
- truffle workflow: Repeat attempts for bundle install and appraisal bundle before failure
|
47
|
+
- global token replacement during kettle:dev:install
|
48
|
+
- {KETTLE|DEV|GEM} => kettle-dev
|
49
|
+
- {RUBOCOP|LTS|CONSTRAINT} => dynamic
|
50
|
+
- {RUBOCOP|RUBY|GEM} => dynamic
|
51
|
+
- default to rubocop-ruby1_8 if no minimum ruby specified
|
52
|
+
- template supports local development of RuboCop-LTS suite of gems
|
53
|
+
- improved documentation
|
54
|
+
### Changed
|
55
|
+
- dependabot: ignore rubocop-lts for updates
|
56
|
+
- template configures RSpec to run tests in random order
|
57
|
+
|
27
58
|
## [1.0.20] - 2025-08-29
|
28
59
|
- TAG: [v1.0.20][1.0.20t]
|
29
60
|
- COVERAGE: 14.01% -- 96/685 lines in 8 files
|
@@ -307,7 +338,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
307
338
|
- Selecting will run the selected workflow via `act`
|
308
339
|
- This may move to its own gem in the future.
|
309
340
|
|
310
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.
|
341
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.22...HEAD
|
311
342
|
[1.0.0]: https://github.com/kettle-rb/kettle-dev/compare/a427c302df09cfe4253a7c8d400333f9a4c1a208...v1.0.0
|
312
343
|
[1.0.0t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.0
|
313
344
|
[1.0.1]: https://gitlab.com/kettle-rb/kettle-dev/-/compare/v1.0.0...v1.0.1
|
@@ -350,3 +381,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
350
381
|
[1.0.19t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.19
|
351
382
|
[1.0.20]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.19...v1.0.20
|
352
383
|
[1.0.20t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.20
|
384
|
+
[1.0.21]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.20...v1.0.21
|
385
|
+
[1.0.21t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.21
|
386
|
+
[1.0.22]: https://github.com/kettle-rb/kettle-dev/compare/v1.0.21...v1.0.22
|
387
|
+
[1.0.22t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.0.22
|
data/CITATION.cff
CHANGED
@@ -12,9 +12,9 @@ authors:
|
|
12
12
|
orcid: 'https://orcid.org/0009-0008-8519-441X'
|
13
13
|
identifiers:
|
14
14
|
- type: url
|
15
|
-
value: 'https://github.com/kettle-rb/kettle-dev
|
15
|
+
value: 'https://github.com/kettle-rb/kettle-dev'
|
16
16
|
description: kettle-dev
|
17
|
-
repository-code: 'https://github.com/kettle-rb/kettle-dev
|
17
|
+
repository-code: 'https://github.com/kettle-rb/kettle-dev'
|
18
18
|
abstract: >-
|
19
19
|
kettle-dev
|
20
20
|
license: See license file
|