kettle-dev 1.1.32 → 1.1.34

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e219bd6c214eadd2dcef55a5244ac3bc32be8435234511c2a56f9416ba9d490
4
- data.tar.gz: 7d0b98b23113a3bc0f3c954e6ed548f05c3b1996246de97d99bcf7bdff4ba041
3
+ metadata.gz: 7bed8f3120c4a6e802739f3a9ad89e6c287bf46daddaf60f76d590a19f181655
4
+ data.tar.gz: 7a27825799903260664be7e83b9de1bb4ec209c10fe0e485b78262f4acd051b2
5
5
  SHA512:
6
- metadata.gz: 236fd7f51409a50d33c328cc05c69a6120fd5eb0e977dde6e0d180da3ddc123963851c4fa743f50bc4375e0d3e3db4cc8c62dcafef9b8e7af30a5d0281e4dddd
7
- data.tar.gz: 71d927da1c6e8fdf0208ad8e00caa7b4587145d591ed411a9cfdaa8b0b1dc1ee193805f725d21302463b5e1bb74fb7d34e61121084356bdbba026b6b643b066f
6
+ metadata.gz: 14da5405b5541fd3df74d20880853bb09d3a5d5c9186c212b6d40a02deb686ac6fb65294a0dd9bc5dec4a2e17678993951cbd22165ad6dd78c7ad6ef48aa6250
7
+ data.tar.gz: 951fceacca3fc66a3b607778bb630193ec3853c24d8f3f2d0cd7abdb1f68d6f483171b5b5fe2d0da1b2b8b7a54bdc88094cbb83c42254bf7e1d56609fbd24cc7
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,13 @@
1
+ # These are supported funding model platforms
2
+
3
+ buy_me_a_coffee: pboling
4
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
5
+ github: [pboling] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
6
+ issuehunt: pboling # Replace with a single IssueHunt username
7
+ ko_fi: pboling # Replace with a single Ko-fi username
8
+ liberapay: pboling # Replace with a single Liberapay username
9
+ open_collective: # Replace with a single Open Collective slug e.g., orgs/cloud-foundry
10
+ patreon: galtzo # Replace with a single Patreon username
11
+ polar: pboling
12
+ thanks_dev: u/gh/pboling
13
+ tidelift: rubygems/kettle-dev
@@ -42,7 +42,7 @@ jobs:
42
42
 
43
43
  # Initializes the CodeQL tools for scanning.
44
44
  - name: Initialize CodeQL
45
- uses: github/codeql-action/init@v3
45
+ uses: github/codeql-action/init@v4
46
46
  with:
47
47
  languages: ${{ matrix.language }}
48
48
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,7 +53,7 @@ jobs:
53
53
  # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
54
  # If this step fails, then you should remove it and run the build manually (see below)
55
55
  - name: Autobuild
56
- uses: github/codeql-action/autobuild@v3
56
+ uses: github/codeql-action/autobuild@v4
57
57
 
58
58
  # ℹ️ Command-line programs to run using the OS shell.
59
59
  # 📚 https://git.io/JvXDl
@@ -67,4 +67,4 @@ jobs:
67
67
  # make release
68
68
 
69
69
  - name: Perform CodeQL Analysis
70
- uses: github/codeql-action/analyze@v3
70
+ uses: github/codeql-action/analyze@v4
@@ -64,11 +64,11 @@ jobs:
64
64
 
65
65
  steps:
66
66
  - name: Checkout
67
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
67
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
68
68
  uses: actions/checkout@v5
69
69
 
70
70
  - name: Setup Ruby & RubyGems
71
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
71
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
72
72
  uses: ruby/setup-ruby@v1
73
73
  with:
74
74
  ruby-version: ${{ matrix.ruby }}
@@ -80,12 +80,12 @@ jobs:
80
80
  # We need to do this first to get appraisal installed.
81
81
  # NOTE: This does not use the primary Gemfile at all.
82
82
  - name: Install Root Appraisal
83
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
83
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
84
84
  run: bundle
85
85
 
86
86
  - name: "[Attempt 1] Install Root Appraisal"
87
87
  id: bundleAttempt1
88
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
88
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
89
89
  run: bundle
90
90
  # Continue to the next step on failure
91
91
  continue-on-error: true
@@ -94,12 +94,12 @@ jobs:
94
94
  - name: "[Attempt 2] Install Root Appraisal"
95
95
  id: bundleAttempt2
96
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')) }}
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
98
  run: bundle
99
99
 
100
100
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
101
101
  id: bundleAppraisalAttempt1
102
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
102
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
103
103
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
104
104
  # Continue to the next step on failure
105
105
  continue-on-error: true
@@ -108,9 +108,9 @@ jobs:
108
108
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
109
109
  id: bundleAppraisalAttempt2
110
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')) }}
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
112
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
113
113
 
114
114
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
115
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
115
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
116
116
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -63,11 +63,11 @@ jobs:
63
63
 
64
64
  steps:
65
65
  - name: Checkout
66
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
66
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
67
67
  uses: actions/checkout@v5
68
68
 
69
69
  - name: Setup Ruby & RubyGems
70
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
70
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
71
71
  uses: ruby/setup-ruby@v1
72
72
  with:
73
73
  ruby-version: ${{ matrix.ruby }}
@@ -79,12 +79,12 @@ jobs:
79
79
  # We need to do this first to get appraisal installed.
80
80
  # NOTE: This does not use the primary Gemfile at all.
81
81
  - name: Install Root Appraisal
82
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
82
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
83
83
  run: bundle
84
84
 
85
85
  - name: "[Attempt 1] Install Root Appraisal"
86
86
  id: bundleAttempt1
87
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
87
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
88
88
  run: bundle
89
89
  # Continue to the next step on failure
90
90
  continue-on-error: true
@@ -93,12 +93,12 @@ jobs:
93
93
  - name: "[Attempt 2] Install Root Appraisal"
94
94
  id: bundleAttempt2
95
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')) }}
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
97
  run: bundle
98
98
 
99
99
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
100
100
  id: bundleAppraisalAttempt1
101
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
101
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
102
102
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
103
103
  # Continue to the next step on failure
104
104
  continue-on-error: true
@@ -107,9 +107,9 @@ jobs:
107
107
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
108
108
  id: bundleAppraisalAttempt2
109
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')) }}
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
111
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
112
112
 
113
113
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
114
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
114
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
115
115
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -67,11 +67,11 @@ jobs:
67
67
 
68
68
  steps:
69
69
  - name: Checkout
70
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
70
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
71
71
  uses: actions/checkout@v5
72
72
 
73
73
  - name: Setup Ruby & RubyGems
74
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
74
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
75
75
  uses: ruby/setup-ruby@v1
76
76
  with:
77
77
  ruby-version: ${{ matrix.ruby }}
@@ -83,12 +83,12 @@ jobs:
83
83
  # We need to do this first to get appraisal installed.
84
84
  # NOTE: This does not use the primary Gemfile at all.
85
85
  - name: Install Root Appraisal
86
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
86
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
87
87
  run: bundle
88
88
 
89
89
  - name: "[Attempt 1] Install Root Appraisal"
90
90
  id: bundleAttempt1
91
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
91
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
92
92
  run: bundle
93
93
  # Continue to the next step on failure
94
94
  continue-on-error: true
@@ -97,12 +97,12 @@ jobs:
97
97
  - name: "[Attempt 2] Install Root Appraisal"
98
98
  id: bundleAttempt2
99
99
  # If bundleAttempt1 failed, try again here; Otherwise skip.
100
- if: ${{ steps.bundleAttempt1.outcome == 'failure' && !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
100
+ 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')) }}
101
101
  run: bundle
102
102
 
103
103
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
104
104
  id: bundleAppraisalAttempt1
105
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
105
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
106
106
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
107
107
  # Continue to the next step on failure
108
108
  continue-on-error: true
@@ -111,9 +111,9 @@ jobs:
111
111
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
112
112
  id: bundleAppraisalAttempt2
113
113
  # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
114
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
114
+ 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')) }}
115
115
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
116
116
 
117
117
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
118
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
118
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
119
119
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -65,11 +65,11 @@ jobs:
65
65
 
66
66
  steps:
67
67
  - name: Checkout
68
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
68
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
69
69
  uses: actions/checkout@v5
70
70
 
71
71
  - name: Setup Ruby & RubyGems
72
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
72
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
73
73
  uses: ruby/setup-ruby@v1
74
74
  with:
75
75
  ruby-version: ${{ matrix.ruby }}
@@ -81,12 +81,12 @@ jobs:
81
81
  # We need to do this first to get appraisal installed.
82
82
  # NOTE: This does not use the primary Gemfile at all.
83
83
  - name: Install Root Appraisal
84
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
84
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
85
85
  run: bundle
86
86
 
87
87
  - name: "[Attempt 1] Install Root Appraisal"
88
88
  id: bundleAttempt1
89
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
89
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
90
90
  run: bundle
91
91
  # Continue to the next step on failure
92
92
  continue-on-error: true
@@ -95,12 +95,12 @@ jobs:
95
95
  - name: "[Attempt 2] Install Root Appraisal"
96
96
  id: bundleAttempt2
97
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')) }}
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
99
  run: bundle
100
100
 
101
101
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
102
102
  id: bundleAppraisalAttempt1
103
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
103
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
104
104
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
105
105
  # Continue to the next step on failure
106
106
  continue-on-error: true
@@ -109,9 +109,9 @@ jobs:
109
109
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
110
110
  id: bundleAppraisalAttempt2
111
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')) }}
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
113
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
114
114
 
115
115
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
116
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
116
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
117
117
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -64,11 +64,11 @@ jobs:
64
64
 
65
65
  steps:
66
66
  - name: Checkout
67
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
67
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
68
68
  uses: actions/checkout@v5
69
69
 
70
70
  - name: Setup Ruby & RubyGems
71
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
71
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
72
72
  uses: ruby/setup-ruby@v1
73
73
  with:
74
74
  ruby-version: ${{ matrix.ruby }}
@@ -80,12 +80,12 @@ jobs:
80
80
  # We need to do this first to get appraisal installed.
81
81
  # NOTE: This does not use the primary Gemfile at all.
82
82
  - name: Install Root Appraisal
83
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
83
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
84
84
  run: bundle
85
85
 
86
86
  - name: "[Attempt 1] Install Root Appraisal"
87
87
  id: bundleAttempt1
88
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
88
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
89
89
  run: bundle
90
90
  # Continue to the next step on failure
91
91
  continue-on-error: true
@@ -94,12 +94,12 @@ jobs:
94
94
  - name: "[Attempt 2] Install Root Appraisal"
95
95
  id: bundleAttempt2
96
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')) }}
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
98
  run: bundle
99
99
 
100
100
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
101
101
  id: bundleAppraisalAttempt1
102
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
102
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
103
103
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
104
104
  # Continue to the next step on failure
105
105
  continue-on-error: true
@@ -108,9 +108,9 @@ jobs:
108
108
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
109
109
  id: bundleAppraisalAttempt2
110
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')) }}
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
112
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
113
113
 
114
114
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
115
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
115
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
116
116
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
@@ -47,11 +47,11 @@ jobs:
47
47
 
48
48
  steps:
49
49
  - name: Checkout
50
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
50
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
51
51
  uses: actions/checkout@v5
52
52
 
53
53
  - name: Setup Ruby & RubyGems
54
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
54
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
55
55
  uses: ruby/setup-ruby@v1
56
56
  with:
57
57
  ruby-version: ${{ matrix.ruby }}
@@ -63,12 +63,12 @@ jobs:
63
63
  # We need to do this first to get appraisal installed.
64
64
  # NOTE: This does not use the primary Gemfile at all.
65
65
  - name: Install Root Appraisal
66
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
66
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
67
67
  run: bundle
68
68
 
69
69
  - name: "[Attempt 1] Install Root Appraisal"
70
70
  id: bundleAttempt1
71
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
71
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
72
72
  run: bundle
73
73
  # Continue to the next step on failure
74
74
  continue-on-error: true
@@ -77,12 +77,12 @@ jobs:
77
77
  - name: "[Attempt 2] Install Root Appraisal"
78
78
  id: bundleAttempt2
79
79
  # If bundleAttempt1 failed, try again here; Otherwise skip.
80
- if: ${{ steps.bundleAttempt1.outcome == 'failure' && !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
80
+ 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')) }}
81
81
  run: bundle
82
82
 
83
83
  - name: "[Attempt 1] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
84
84
  id: bundleAppraisalAttempt1
85
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
85
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
86
86
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
87
87
  # Continue to the next step on failure
88
88
  continue-on-error: true
@@ -91,9 +91,9 @@ jobs:
91
91
  - name: "[Attempt 2] Appraisal for ${{ matrix.ruby }}@${{ matrix.appraisal }}"
92
92
  id: bundleAppraisalAttempt2
93
93
  # If bundleAppraisalAttempt1 failed, try again here; Otherwise skip.
94
- if: ${{ steps.bundleAppraisalAttempt1.outcome == 'failure' && !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
94
+ 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')) }}
95
95
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle
96
96
 
97
97
  - name: Tests for ${{ matrix.ruby }} via ${{ matrix.exec_cmd }}
98
- if: ${{ !(env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
98
+ if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
99
99
  run: bundle exec appraisal ${{ matrix.appraisal }} bundle exec ${{ matrix.exec_cmd }}
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.4.6
1
+ ruby 3.4.7
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
-
5
3
  source "https://gem.coop"
6
4
 
7
5
  # Appraisal Root Gemfile is for running appraisal to generate the Appraisal Gemfiles
data/CHANGELOG.md CHANGED
@@ -30,6 +30,48 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.1.34] - 2025-10-20
34
+
35
+ - TAG: [v1.1.34][1.1.34t]
36
+ - COVERAGE: 96.10% -- 3938/4098 lines in 26 files
37
+ - BRANCH COVERAGE: 80.92% -- 1624/2007 branches in 26 files
38
+ - 79.68% documented
39
+
40
+ ### Changed
41
+
42
+ - kettle-release: Make step 17 only push the checksum commit; bin/gem_checksums creates the commit internally.
43
+ - kettle-release: Ensure a final push of tags occurs after checksums and optional GitHub release; supports an 'all' remote aggregator when configured.
44
+
45
+ ### Fixed
46
+
47
+ - fixed rake task compatibility with BUNDLE_PATH (i.e. vendored bundle)
48
+ - appraisal tasks
49
+ - bench tasks
50
+ - reek tasks
51
+
52
+ ## [1.1.33] - 2025-10-13
53
+
54
+ - TAG: [v1.1.33][1.1.33t]
55
+ - COVERAGE: 20.83% -- 245/1176 lines in 9 files
56
+ - BRANCH COVERAGE: 7.31% -- 43/588 branches in 9 files
57
+ - 79.57% documented
58
+
59
+ ### Added
60
+
61
+ - handling for no open source collective, specified by:
62
+ - `ENV["FUNDING_ORG"]` set to "false", or
63
+ - `ENV["OPENCOLLECTIVE_HANDLE"]` set to "false"
64
+ - added codeberg gem source
65
+
66
+ ### Changed
67
+
68
+ - removed redundant github gem source
69
+
70
+ ### Fixed
71
+
72
+ - added addressable to optional modular gemfile template, as it is required for kettle-pre-release
73
+ - handling of env.ACT conditions in workflows
74
+
33
75
  ## [1.1.32] - 2025-10-07
34
76
 
35
77
  - TAG: [v1.1.32][1.1.32t]
@@ -1058,7 +1100,11 @@ Please file a bug if you notice a violation of semantic versioning.
1058
1100
  - Selecting will run the selected workflow via `act`
1059
1101
  - This may move to its own gem in the future.
1060
1102
 
1061
- [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.32...HEAD
1103
+ [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.34...HEAD
1104
+ [1.1.34]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.33...v1.1.34
1105
+ [1.1.34t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.34
1106
+ [1.1.33]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.32...v1.1.33
1107
+ [1.1.33t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.33
1062
1108
  [1.1.32]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.31...v1.1.32
1063
1109
  [1.1.32t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.32
1064
1110
  [1.1.31]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.30...v1.1.31
@@ -0,0 +1,66 @@
1
+ <!-- RELEASE-NOTES-FOOTER-START -->
2
+
3
+ Official Discord 👉️ [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]
4
+
5
+ Many paths lead to being a sponsor or a backer of this project. Are you on such a path?
6
+
7
+ [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal]
8
+
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
10
+
11
+ [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
+ [⛳liberapay]: https://liberapay.com/pboling/donate
13
+ [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
14
+ [🖇sponsor]: https://github.com/sponsors/pboling
15
+ [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
16
+ [🖇polar]: https://polar.sh/pboling
17
+ [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
18
+ [🖇kofi]: https://ko-fi.com/O5O86SNP4
19
+ [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
20
+ [🖇patreon]: https://patreon.com/galtzo
21
+ [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
22
+ [🖇buyme]: https://www.buymeacoffee.com/pboling
23
+ [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
24
+ [🖇paypal]: https://www.paypal.com/paypalme/peterboling
25
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
26
+ [✉️discord-invite-img]: https://img.shields.io/discord/1373797679469170758?style=flat
27
+
28
+ <!-- RELEASE-NOTES-FOOTER-END -->
29
+
30
+ # 🤑 Request for Help
31
+
32
+ Maintainers have teeth and need to pay their dentists.
33
+ After getting laid off in an RIF in March and filled with many dozens of rejections,
34
+ I'm now spending ~60+ hours a week building open source tools.
35
+ I'm hoping to be able to pay for my kids' health insurance this month,
36
+ so if you value the work I am doing, I need your support.
37
+ Please consider sponsoring me or the project.
38
+
39
+ To join the community or get help 👇️ Join the Discord.
40
+
41
+ [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
42
+
43
+ To say "thanks for maintaining such a great tool" ☝️ Join the Discord or 👇️ send money.
44
+
45
+ [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay-img] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal-img]
46
+
47
+ # Another Way to Support Open Source Software
48
+
49
+ > How wonderful it is that nobody need wait a single moment before starting to improve the world.<br/>
50
+ >—Anne Frank
51
+
52
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions — totaling 79 hours of FLOSS coding over just the past seven days, a pretty regular week for me. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
53
+
54
+ If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
55
+
56
+ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed to empower open-source developers like myself to get paid for the work we do, in a sustainable way. Please give it a look.
57
+
58
+ **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
59
+
60
+ [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
61
+ [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
62
+ [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
63
+ [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
64
+ [🖇floss-funding.dev]: https://floss-funding.dev
65
+ [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
66
+ [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge
data/Gemfile CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://gem.coop"
4
4
 
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" }
6
6
  git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" }
7
7
 
8
8
  #### IMPORTANT #######################################################
data/Gemfile.example CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://gem.coop"
4
4
 
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:codeberg) { |repo_name| "https://codeberg.org/#{repo_name}" }
6
6
  git_source(:gitlab) { |repo_name| "https://gitlab.com/#{repo_name}" }
7
7
 
8
8
  #### IMPORTANT #######################################################
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
- | 📍 NOTE |
2
- |-------------------------------------------------------------------------------------------------------------------------------------------------------------|
3
- | RubyGems.org was [recently compromised][draper-security] in a [hostile takeover][draper-takeover] about which [many lies][draper-lies] have been told. |
4
- | I'm in the process of adding warnings to some important gems because I [don't condone the theft][draper-theft] of the bundler and rubygems-update projects. |
5
- | Once publishing to [gem.coop][gem-coop] is available I will stop publishing to RubyGems.org. |
6
- | Please see [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
1
+ | 📍 NOTE |
2
+ |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
3
+ | RubyGems.org was [recently compromised][draper-security] in a [hostile takeover][draper-takeover] about which [many lies][draper-lies] have been told. |
4
+ | I'm in the process of adding warnings to some important gems because I [don't condone the theft][draper-theft] of the bundler and rubygems-update projects. |
5
+ | Once publishing to [gem.coop][gem-coop] is available I will stop publishing to RubyGems.org, unless they make amends. I am writing my a new federated gem-server. |
6
+ | Please see [here][gem-coop] and [here][martin-ann] for more info on what comes next. This ["Technology for Humans" podcast episode][reinteractive-podcast] is the best summary I'm aware of. |
7
7
 
8
8
  [draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
9
9
  [draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
@@ -11,6 +11,7 @@
11
11
  [draper-theft]: https://joel.drapper.me/p/ruby-central/
12
12
  [gem-coop]: https://gem.coop
13
13
  [martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
14
+ [reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
14
15
 
15
16
  [![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![kettle-dev Logo by Aboling0, CC BY-SA 4.0][🖼️kettle-dev-i]][🖼️kettle-dev]
16
17
 
@@ -939,7 +940,7 @@ Thanks for RTFM. ☺️
939
940
  [📌gitmoji]:https://gitmoji.dev
940
941
  [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
941
942
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
942
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.076-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
943
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.098-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
943
944
  [🔐security]: SECURITY.md
944
945
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
945
946
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year