kettle-drift 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +29 -1
- data/README.md +18 -18
- data/lib/kettle/drift/duplicate_line_validator.rb +25 -0
- data/lib/kettle/drift/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +14 -14
- 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: 684aad34d3fdec821a8e1339369a926dc315ab9262c00a8144dce54458ca302a
|
|
4
|
+
data.tar.gz: 2a847d02c0d006a015623f2873b4577878ef2c0f17c9719f12d6cf7059c1d53d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4ed977dac9385cee067d5d710cb2cf4517b5440a0aafd3d0ff65e8e4ed8a4471488d7eba7439bb4f9db27639f1fa0943646d7ea73991fd4003d5ff0df16720ab
|
|
7
|
+
data.tar.gz: 852879532e628ae3f7f81f4e40bcb1edb5714c79398e2a8b73ff448343833512c822c4bccb5a2c2d4b6b5338dd613da5e1ed980c5a16e70ae8d8ea8e432452e8
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,32 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.0.10] - 2026-08-01
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.0.10][1.0.10t]
|
|
36
|
+
- COVERAGE: 81.41% -- 438/538 lines in 14 files
|
|
37
|
+
- BRANCH COVERAGE: 66.82% -- 143/214 branches in 14 files
|
|
38
|
+
- 36.19% documented
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- kettle-jem-template-20260801-001 - Generated README gem dashboard links now
|
|
43
|
+
use ClickGems instead of BestGems.
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- kettle-jem-template-20260801-002 - Generated RSpec helpers now normalize
|
|
48
|
+
managed configuration block bindings structurally, preventing mixed block
|
|
49
|
+
parameter names from producing invalid configuration after a merge.
|
|
50
|
+
- kettle-jem-template-20260801-003 - Generated project metadata and
|
|
51
|
+
documentation now normalize configured underscore hostnames to valid
|
|
52
|
+
hyphenated hostnames.
|
|
53
|
+
- kettle-jem-template-20260801-004 - Generated organization README logos now
|
|
54
|
+
use GitHub's stable organization avatar endpoint instead of assuming a
|
|
55
|
+
matching Galtzo-hosted asset exists.
|
|
56
|
+
|
|
57
|
+
- Duplicate-drift checks now ignore repeated generated CI matrix fields and Dependabot schedules while continuing to report duplicated workflow steps.
|
|
58
|
+
|
|
33
59
|
## [1.0.9] - 2026-07-31
|
|
34
60
|
|
|
35
61
|
- TAG: [v1.0.9][1.0.9t]
|
|
@@ -241,7 +267,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
241
267
|
|
|
242
268
|
- Initial release
|
|
243
269
|
|
|
244
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-drift/compare/v1.0.
|
|
270
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-drift/compare/v1.0.10...HEAD
|
|
271
|
+
[1.0.10]: https://github.com/kettle-dev/kettle-drift/compare/v1.0.9...v1.0.10
|
|
272
|
+
[1.0.10t]: https://github.com/kettle-dev/kettle-drift/releases/tag/v1.0.10
|
|
245
273
|
[1.0.9]: https://github.com/kettle-dev/kettle-drift/compare/v1.0.8...v1.0.9
|
|
246
274
|
[1.0.9t]: https://github.com/kettle-dev/kettle-drift/releases/tag/v1.0.9
|
|
247
275
|
[1.0.8]: https://github.com/kettle-dev/kettle-drift/compare/v1.0.7...v1.0.8
|
data/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by
|
|
1
|
+
<a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by GitHub" src="https://github.com/kettle-dev.png?size=192" width="12%" align="right"/></a> <a href="https://github.com/kettle-dev/kettle-drift"><img alt="kettle-drift Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/kettle-drift/avatar-128px.svg" width="12%" align="right"/></a>
|
|
2
2
|
|
|
3
3
|
# 🍲 Kettle::Drift
|
|
4
4
|
|
|
5
|
-
[![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only][📄license-img]][📄license] [![
|
|
5
|
+
[![Version][👽versioni]][👽version] [![Ruby Users Forum][✉️ruby-forum-top-img]][✉️ruby-forum] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: AGPL-3.0-only][📄license-img]][📄license] [![Total downloads][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf]
|
|
6
6
|
|
|
7
7
|
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know on Discord][✉️discord-invite] or [RubyForum][✉️ruby-forum], as I may have missed the notification.
|
|
8
8
|
|
|
@@ -58,16 +58,16 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
|
|
|
58
58
|
<details markdown="1">
|
|
59
59
|
<summary>How kettle-dev manages complexity in tests</summary>
|
|
60
60
|
|
|
61
|
-
| Gem | Source | Role |
|
|
61
|
+
| Gem | Source | Role | Total downloads |
|
|
62
62
|
|-----|--------|------|---------------------|
|
|
63
|
-
| [appraisal2](https://
|
|
64
|
-
| [appraisal2-rubocop](https://
|
|
65
|
-
| [kettle-dev](https://
|
|
66
|
-
| [kettle-jem](https://
|
|
67
|
-
| [kettle-soup-cover](https://
|
|
68
|
-
| [kettle-test](https://
|
|
69
|
-
| [rubocop-lts](https://
|
|
70
|
-
| [turbo_tests2](https://
|
|
63
|
+
| [appraisal2](https://clickgems.clickhouse.com/dashboard/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [](https://clickgems.clickhouse.com/dashboard/appraisal2) |
|
|
64
|
+
| [appraisal2-rubocop](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [](https://clickgems.clickhouse.com/dashboard/appraisal2-rubocop) |
|
|
65
|
+
| [kettle-dev](https://clickgems.clickhouse.com/dashboard/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [](https://clickgems.clickhouse.com/dashboard/kettle-dev) |
|
|
66
|
+
| [kettle-jem](https://clickgems.clickhouse.com/dashboard/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [](https://clickgems.clickhouse.com/dashboard/kettle-jem) |
|
|
67
|
+
| [kettle-soup-cover](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [](https://clickgems.clickhouse.com/dashboard/kettle-soup-cover) |
|
|
68
|
+
| [kettle-test](https://clickgems.clickhouse.com/dashboard/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [](https://clickgems.clickhouse.com/dashboard/kettle-test) |
|
|
69
|
+
| [rubocop-lts](https://clickgems.clickhouse.com/dashboard/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [](https://clickgems.clickhouse.com/dashboard/rubocop-lts) |
|
|
70
|
+
| [turbo_tests2](https://clickgems.clickhouse.com/dashboard/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [](https://clickgems.clickhouse.com/dashboard/turbo_tests2) |
|
|
71
71
|
|
|
72
72
|
</details>
|
|
73
73
|
|
|
@@ -325,14 +325,14 @@ Thanks for RTFM. ☺️
|
|
|
325
325
|
[✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
|
|
326
326
|
[✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
|
|
327
327
|
[✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
|
|
328
|
-
[✉️ruby-forum-top-img]: https://img.shields.io/discourse/topics?server=https
|
|
329
|
-
[✉️ruby-forum-img]: https://img.shields.io/discourse/topics?server=https
|
|
328
|
+
[✉️ruby-forum-top-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=flat&logo=discourse&label=Ruby%20Users%20Forum
|
|
329
|
+
[✉️ruby-forum-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=for-the-badge&logo=discourse&label=Ruby%20Users%20Forum
|
|
330
330
|
[✉️ruby-forum]: https://www.rubyforum.org/tag/kettle-dev
|
|
331
331
|
|
|
332
332
|
[✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
333
333
|
[⛳️gem-namespace]: https://github.com/kettle-dev/kettle-drift
|
|
334
334
|
[⛳️namespace-img]: https://img.shields.io/badge/namespace-Kettle::Drift-3C2D2D.svg?style=square&logo=ruby&logoColor=white
|
|
335
|
-
[⛳️gem-name]: https://
|
|
335
|
+
[⛳️gem-name]: https://clickgems.clickhouse.com/dashboard/kettle-drift
|
|
336
336
|
[⛳️name-img]: https://img.shields.io/badge/name-kettle--drift-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
|
|
337
337
|
[⛳️tag-img]: https://img.shields.io/github/tag/kettle-dev/kettle-drift.svg
|
|
338
338
|
[⛳️tag]: https://github.com/kettle-dev/kettle-drift/releases
|
|
@@ -381,9 +381,9 @@ Thanks for RTFM. ☺️
|
|
|
381
381
|
[📜gh-wiki]: https://github.com/kettle-dev/kettle-drift/wiki
|
|
382
382
|
[📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
|
|
383
383
|
[📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
|
|
384
|
-
[👽dl-rank]: https://
|
|
385
|
-
[👽dl-ranki]: https://img.shields.io/gem/
|
|
386
|
-
[👽version]: https://
|
|
384
|
+
[👽dl-rank]: https://clickgems.clickhouse.com/dashboard/kettle-drift
|
|
385
|
+
[👽dl-ranki]: https://img.shields.io/gem/dt/kettle-drift.svg
|
|
386
|
+
[👽version]: https://clickgems.clickhouse.com/dashboard/kettle-drift
|
|
387
387
|
[👽versioni]: https://img.shields.io/gem/v/kettle-drift.svg
|
|
388
388
|
[🏀qlty-mnt]: https://qlty.sh/gh/kettle-dev/projects/kettle-drift
|
|
389
389
|
[🏀qlty-mnti]: https://qlty.sh/gh/kettle-dev/projects/kettle-drift/maintainability.svg
|
|
@@ -457,7 +457,7 @@ Thanks for RTFM. ☺️
|
|
|
457
457
|
[📌gitmoji]: https://gitmoji.dev
|
|
458
458
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
459
459
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
460
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.
|
|
460
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.538-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
461
461
|
[🔐security]: https://github.com/kettle-dev/kettle-drift/blob/main/SECURITY.md
|
|
462
462
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
463
463
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -92,6 +92,9 @@ module Kettle
|
|
|
92
92
|
def ignored_duplicate_chunk?(path, line1, line2)
|
|
93
93
|
basename = File.basename(path.to_s)
|
|
94
94
|
|
|
95
|
+
return true if generated_workflow_matrix_chunk?(path, line1, line2)
|
|
96
|
+
return true if dependabot_schedule_chunk?(path, line1, line2)
|
|
97
|
+
|
|
95
98
|
if basename == "Appraisals"
|
|
96
99
|
return true if APPRAISALS_DEP_LINE_RE.match?(line1) && APPRAISALS_DEP_LINE_RE.match?(line2)
|
|
97
100
|
return true if line1.start_with?("#") && APPRAISALS_DEP_LINE_RE.match?(line2)
|
|
@@ -106,6 +109,28 @@ module Kettle
|
|
|
106
109
|
false
|
|
107
110
|
end
|
|
108
111
|
|
|
112
|
+
# These generated workflows repeat the same matrix-field pairs once for
|
|
113
|
+
# every Ruby/engine job. Limit the exemption to those exact pairs so a
|
|
114
|
+
# duplicated step or an unrelated workflow regression is still reported.
|
|
115
|
+
def generated_workflow_matrix_chunk?(path, line1, line2)
|
|
116
|
+
return false unless %w[dep-heads.yml heads.yml].include?(File.basename(path.to_s))
|
|
117
|
+
return false unless File.dirname(path.to_s).end_with?(".github/workflows")
|
|
118
|
+
|
|
119
|
+
matrix_key = line1.delete_prefix("- ")
|
|
120
|
+
return true if matrix_key.start_with?("appraisal: ") && line2.start_with?("exec_cmd: ")
|
|
121
|
+
return true if line1.start_with?("exec_cmd: ") && (line2.start_with?("rubygems: ", "# Run directly from the generated appraisal Gemfile"))
|
|
122
|
+
|
|
123
|
+
line1 == "if: ${{ !env.ACT }}" && line2.start_with?("uses: appraisal-rb/setup-ruby-flash@")
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Dependabot intentionally has one schedule mapping per ecosystem entry.
|
|
127
|
+
# This exact pair has no independent behavior to de-duplicate.
|
|
128
|
+
def dependabot_schedule_chunk?(path, line1, line2)
|
|
129
|
+
File.basename(path.to_s) == "dependabot.yml" &&
|
|
130
|
+
File.dirname(path.to_s).end_with?(".github") &&
|
|
131
|
+
line1.delete_prefix("- ") == "schedule:" && line2.start_with?("interval:")
|
|
132
|
+
end
|
|
133
|
+
|
|
109
134
|
def compute_fence_lines(content)
|
|
110
135
|
in_fence = false
|
|
111
136
|
fence_marker = nil
|
data/lib/kettle/drift/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "1.0.
|
|
8
|
+
VERSION = "1.0.10"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-drift
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
version: '2.5'
|
|
67
67
|
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: 2.5.
|
|
69
|
+
version: 2.5.16
|
|
70
70
|
type: :development
|
|
71
71
|
prerelease: false
|
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -76,7 +76,7 @@ dependencies:
|
|
|
76
76
|
version: '2.5'
|
|
77
77
|
- - ">="
|
|
78
78
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: 2.5.
|
|
79
|
+
version: 2.5.16
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: bundler-audit
|
|
82
82
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -174,7 +174,7 @@ dependencies:
|
|
|
174
174
|
version: '2.0'
|
|
175
175
|
- - ">="
|
|
176
176
|
- !ruby/object:Gem::Version
|
|
177
|
-
version: 2.0.
|
|
177
|
+
version: 2.0.18
|
|
178
178
|
type: :development
|
|
179
179
|
prerelease: false
|
|
180
180
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -184,7 +184,7 @@ dependencies:
|
|
|
184
184
|
version: '2.0'
|
|
185
185
|
- - ">="
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: 2.0.
|
|
187
|
+
version: 2.0.18
|
|
188
188
|
- !ruby/object:Gem::Dependency
|
|
189
189
|
name: turbo_tests2
|
|
190
190
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -194,7 +194,7 @@ dependencies:
|
|
|
194
194
|
version: '3.2'
|
|
195
195
|
- - ">="
|
|
196
196
|
- !ruby/object:Gem::Version
|
|
197
|
-
version: 3.2.
|
|
197
|
+
version: 3.2.4
|
|
198
198
|
type: :development
|
|
199
199
|
prerelease: false
|
|
200
200
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -204,7 +204,7 @@ dependencies:
|
|
|
204
204
|
version: '3.2'
|
|
205
205
|
- - ">="
|
|
206
206
|
- !ruby/object:Gem::Version
|
|
207
|
-
version: 3.2.
|
|
207
|
+
version: 3.2.4
|
|
208
208
|
- !ruby/object:Gem::Dependency
|
|
209
209
|
name: ruby-progressbar
|
|
210
210
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -228,7 +228,7 @@ dependencies:
|
|
|
228
228
|
version: '1.0'
|
|
229
229
|
- - ">="
|
|
230
230
|
- !ruby/object:Gem::Version
|
|
231
|
-
version: 1.0.
|
|
231
|
+
version: 1.0.8
|
|
232
232
|
type: :development
|
|
233
233
|
prerelease: false
|
|
234
234
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -238,7 +238,7 @@ dependencies:
|
|
|
238
238
|
version: '1.0'
|
|
239
239
|
- - ">="
|
|
240
240
|
- !ruby/object:Gem::Version
|
|
241
|
-
version: 1.0.
|
|
241
|
+
version: 1.0.8
|
|
242
242
|
- !ruby/object:Gem::Dependency
|
|
243
243
|
name: gitmoji-regex
|
|
244
244
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -248,7 +248,7 @@ dependencies:
|
|
|
248
248
|
version: '2.0'
|
|
249
249
|
- - ">="
|
|
250
250
|
- !ruby/object:Gem::Version
|
|
251
|
-
version: 2.0.
|
|
251
|
+
version: 2.0.11
|
|
252
252
|
type: :development
|
|
253
253
|
prerelease: false
|
|
254
254
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -258,7 +258,7 @@ dependencies:
|
|
|
258
258
|
version: '2.0'
|
|
259
259
|
- - ">="
|
|
260
260
|
- !ruby/object:Gem::Version
|
|
261
|
-
version: 2.0.
|
|
261
|
+
version: 2.0.11
|
|
262
262
|
description: "\U0001F372 Kettle::Drift tracks repeated adjacent-line chunks that usually
|
|
263
263
|
signal template drift or copy/paste corruption."
|
|
264
264
|
email:
|
|
@@ -292,10 +292,10 @@ licenses:
|
|
|
292
292
|
- AGPL-3.0-only
|
|
293
293
|
metadata:
|
|
294
294
|
homepage_uri: https://kettle-drift.galtzo.com
|
|
295
|
-
source_code_uri: https://github.com/kettle-dev/kettle-drift/tree/v1.0.
|
|
296
|
-
changelog_uri: https://github.com/kettle-dev/kettle-drift/blob/v1.0.
|
|
295
|
+
source_code_uri: https://github.com/kettle-dev/kettle-drift/tree/v1.0.10
|
|
296
|
+
changelog_uri: https://github.com/kettle-dev/kettle-drift/blob/v1.0.10/CHANGELOG.md
|
|
297
297
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-drift/issues
|
|
298
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-drift/1.0.
|
|
298
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-drift/1.0.10
|
|
299
299
|
funding_uri: https://github.com/sponsors/pboling
|
|
300
300
|
wiki_uri: https://github.com/kettle-dev/kettle-drift/wiki
|
|
301
301
|
news_uri: https://www.railsbling.com/tags/kettle-drift
|
metadata.gz.sig
CHANGED
|
Binary file
|