kettle-dev 3.1.0 → 3.1.2

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: b7fdd37cea8287569cfe883f3b0830022afe7e90be2582adf2046cadcdd687c7
4
- data.tar.gz: 327f6277c15a6e780001e321192b72e5a10afc56718171e3324e24445c0466b5
3
+ metadata.gz: 43b362327936ebb689b258932474b16cc41f0654877ea6a41633ee1621e6a078
4
+ data.tar.gz: ee64106fa90db9443483eab9433fbecd3690e61c61a8afc436e6224cbe4d607f
5
5
  SHA512:
6
- metadata.gz: f7cb591d2c7e73f063f11362091eb7efc51ff3d9b6a5cd4242260e3dd45fe1ffce867a77e218f606880f7cfd7bf5fd1f071391714b8164721c89860d4b63c737
7
- data.tar.gz: 99531967a52f754cbda4a1d868e216de15d1dac6e6d27d1b4028dad9dae87681b1a88761f91d0931425d050f9ae0a6a18344c19f48621dfccac346f9a539c9ec
6
+ metadata.gz: 61aaf3cde5f12a6b2fc57144efd7dcee5c5a9d9f56d42c5b1715768816e64f393d8c3492b76cc85e0dd1f712fe25e7c32cce46cae0bd97748b34485d58b02759
7
+ data.tar.gz: 6f68bc9631eb4a2fddc50e7831464227d7526bcf8d073f986c3d533e1fcefa41bed0273bb6894e6b48a1cdb0e4fdc9a0970cf7d3bda831a402fb7448599d4161
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- ZN�ȕ!s��UHm*6��u�5���o}�:ɓD�t�J�pn��[ `�|=o��W�Q��4�x����t�� �|�<�z�V Bb���aw�vX;�%�W!�*󴐍!�;m���I�����,���r�"x~���研����-ni������i��cZ����ykESy^k
2
- �a�9^�� B����]���*��X����8�� �]��-���sT��� s�k�q
1
+ Z3���f⛻�?a~����Y;}��e�����m�Ջ� CB�<u��fP>O�`#&�X$�b,�޳� ���)�c�G�<�\_M���_��# P %?��W�?�+~sS+�k�9�\̦�-��^#���D ,���k�lOq+��l�d�Z�\�B��q1�بl��ONJ3� x6�80cW{�c7��$h��O�J�ˊ���@B`>�1֦VWf�~���-AXχ�o�*��ސ�&�ڑcU89
2
+ 9��3�]���*YJ�m��r����E�o��5��f��jA/Rl_���!h*£K�QсTC�κ}7�v����Qe���ed�`G�}Q��O���e�u'�&'N��*� ��n�PS�F
data/CHANGELOG.md CHANGED
@@ -30,6 +30,51 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [3.1.2] - 2026-09-27
34
+
35
+ - TAG: [v3.1.2][3.1.2t]
36
+ - COVERAGE: 91.60% -- 6149/6713 lines in 48 files
37
+ - BRANCH COVERAGE: 76.10% -- 2347/3084 branches in 48 files
38
+ - 51.02% documented
39
+
40
+ ### Added
41
+
42
+ - kettle-jem-template-20260913-001 - Templating now also surfaces a review
43
+ entry in `dependency_conflicts.resolve` when a direct development
44
+ dependency doesn't support one or more of this project's declared
45
+ `engines:` and has no template-managed modular home (e.g. `sqlite3` on
46
+ `jruby`). Review each entry and pick a resolution per the project's own
47
+ engine support needs.
48
+
49
+ ### Changed
50
+
51
+ - [kc] kettle-jem/prepare: updated 15 project files:
52
+ - configuration (1)
53
+ - dependencies (14)
54
+
55
+ - [kc] kettle-jem/template: updated 35 project files:
56
+ - code and tests (3)
57
+ - dependencies (1)
58
+ - other (1)
59
+ - workflows (30)
60
+
61
+ ### Fixed
62
+
63
+ - Handle macOS PTY EOF and canonicalize release-contract paths beneath symlinked temporary roots.
64
+
65
+ - Run bundled YARD scripts through Ruby on Windows and accept absolute Windows RUBOCOP_LTS_LOCAL paths.
66
+
67
+ ## [3.1.1] - 2026-09-14
68
+
69
+ - TAG: [v3.1.1][3.1.1t]
70
+ - COVERAGE: 91.54% -- 6138/6705 lines in 48 files
71
+ - BRANCH COVERAGE: 76.08% -- 2344/3081 branches in 48 files
72
+ - 51.02% documented
73
+
74
+ ### Fixed
75
+
76
+ - Close release-created branch-stack validation PRs after successful publication instead of leaving obsolete conflicted PRs open.
77
+
33
78
  ## [3.1.0] - 2026-09-10
34
79
 
35
80
  - TAG: [v3.1.0][3.1.0t]
@@ -3860,7 +3905,11 @@ Please file a bug if you notice a violation of semantic versioning.
3860
3905
  - Selecting will run the selected workflow via `act`
3861
3906
  - This may move to its own gem in the future.
3862
3907
 
3863
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.1.0...HEAD
3908
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.1.2...HEAD
3909
+ [3.1.2]: https://github.com/kettle-dev/kettle-dev/compare/v3.1.1...v3.1.2
3910
+ [3.1.2t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.1.2
3911
+ [3.1.1]: https://github.com/kettle-dev/kettle-dev/compare/v3.1.0...v3.1.1
3912
+ [3.1.1t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.1.1
3864
3913
  [3.1.0]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.34...v3.1.0
3865
3914
  [3.1.0t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.1.0
3866
3915
  [3.0.34]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.33...v3.0.34
data/README.md CHANGED
@@ -1066,7 +1066,7 @@ Thanks for RTFM. ☺️
1066
1066
  [📌gitmoji]: https://gitmoji.dev
1067
1067
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1068
1068
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1069
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.685-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1069
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.713-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1070
1070
  [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
1071
1071
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1072
1072
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -968,7 +968,7 @@ module Kettle
968
968
 
969
969
  # Run the canonical docs task to get the documentation percentage.
970
970
  commands.each do |command|
971
- prepare_yard_fence_tmp_files if command == [File.join(@root, "bin", "yard")]
971
+ prepare_yard_fence_tmp_files if command.include?(File.join(@root, "bin", "yard"))
972
972
  output, status = capture_yard_command(command)
973
973
  unless command_successful?(status)
974
974
  return handle_yard_documentation_failure(yard_command_failure_message(command, output, status))
@@ -1012,9 +1012,9 @@ module Kettle
1012
1012
 
1013
1013
  def yard_command_label(command)
1014
1014
  command = Array(command)
1015
- bin = command.first.to_s
1015
+ bin = command.find { |part| [File.join(@root, "bin", "rake"), File.join(@root, "bin", "yard")].include?(part) }.to_s
1016
1016
  if bin == File.join(@root, "bin", "rake")
1017
- "bin/rake #{command.drop(1).join(" ")}".strip
1017
+ "bin/rake #{command.drop_while { |part| part != bin }.drop(1).join(" ")}".strip
1018
1018
  elsif bin == File.join(@root, "bin", "yard")
1019
1019
  "bin/yard"
1020
1020
  else
@@ -1025,9 +1025,9 @@ module Kettle
1025
1025
  def yard_documentation_commands
1026
1026
  commands = []
1027
1027
  rake = File.join(@root, "bin", "rake")
1028
- commands << [rake, "yard"] if File.executable?(rake)
1028
+ commands << [RbConfig.ruby, rake, "yard"] if File.file?(rake)
1029
1029
  yard = File.join(@root, "bin", "yard")
1030
- commands << [yard] if File.executable?(yard)
1030
+ commands << [RbConfig.ruby, yard] if File.file?(yard)
1031
1031
  commands
1032
1032
  end
1033
1033
 
@@ -50,8 +50,8 @@ module Kettle
50
50
  end
51
51
  end
52
52
  end
53
- rescue Errno::EIO
54
- # PTY raises EIO when the child process exits after closing the slave.
53
+ rescue Errno::EIO, EOFError
54
+ # PTY platforms signal a closed child with EIO or EOFError.
55
55
  rescue Kettle::Dev::Error
56
56
  Process.kill("TERM", pid)
57
57
  raise
@@ -3,6 +3,7 @@
3
3
  # External stdlib
4
4
  require "digest"
5
5
  require "open3"
6
+ require "pathname"
6
7
  require "shellwords"
7
8
  require "time"
8
9
  require "fileutils"
@@ -214,6 +215,7 @@ module Kettle
214
215
  @version_override = Kettle::Dev::Versioning.normalize_explicit_version(version)
215
216
  @appraisal_task = normalize_appraisal_task(appraisal_task || ENV["KETTLE_RELEASE_APPRAISAL_TASK"])
216
217
  @release_candidate = nil
218
+ @release_ci_pull_request = nil
217
219
  @event_stream = options[:event_stream]
218
220
  @event_recorder = Kettle::Ndjson.event_recorder(@event_stream, phase_timings: [])
219
221
  @secrets_provider = options[:secrets_provider] || Kettle::Dev::ReleaseSecrets::Factory.build(provider_name: secrets_provider_name)
@@ -555,6 +557,11 @@ module Kettle
555
557
  # 19. push tags to remotes (final step)
556
558
  push_tags! if run_step?(19) && !local_ci?
557
559
 
560
+ # Branch-stack PRs exist only to trigger pull-request-only CI. They are
561
+ # deliberately not merged into trunk, so close the release-created PR
562
+ # after the publication has completed successfully.
563
+ close_generated_branch_stack_pull_request!
564
+
558
565
  # Final success message
559
566
  begin
560
567
  version ||= detect_version
@@ -701,8 +708,8 @@ module Kettle
701
708
  end
702
709
 
703
710
  def same_path?(left, right)
704
- File.realpath(left) == File.realpath(right)
705
- rescue Errno::ENOENT
711
+ File.identical?(left, right)
712
+ rescue SystemCallError
706
713
  false
707
714
  end
708
715
 
@@ -710,7 +717,7 @@ module Kettle
710
717
  value = ENV["RUBOCOP_LTS_LOCAL"].to_s.strip
711
718
  return nil if value.empty? || %w[false 0 no off].include?(value.downcase)
712
719
  return File.join(Dir.home, "src", "rubocop-lts") if %w[true 1 yes on].include?(value.downcase)
713
- return value if value.start_with?("/")
720
+ return value if Pathname.new(value).absolute?
714
721
 
715
722
  File.join(Dir.home, value)
716
723
  end
@@ -1460,11 +1467,24 @@ module Kettle
1460
1467
 
1461
1468
  pull_request = github_pull_request_for_branch(owner: owner, repo: repo, branch: branch, base: trunk)
1462
1469
  if pull_request
1463
- puts "GitHub pull request ##{pull_request.fetch("number")} already open for #{branch} -> #{trunk}: #{pull_request.fetch("url")}"
1470
+ body = pull_request["body"]
1471
+ @release_ci_pull_request = {
1472
+ owner: owner,
1473
+ repo: repo,
1474
+ number: pull_request["number"],
1475
+ cleanup: body.is_a?(String) && body.index("Automated release validation PR for") == 0
1476
+ }
1477
+ puts "GitHub pull request ##{pull_request["number"]} already open for #{branch} -> #{trunk}: #{pull_request["url"]}"
1464
1478
  return
1465
1479
  end
1466
1480
 
1467
- create_github_pull_request!(owner: owner, repo: repo, branch: branch, base: trunk)
1481
+ number = create_github_pull_request!(owner: owner, repo: repo, branch: branch, base: trunk)
1482
+ @release_ci_pull_request = {
1483
+ owner: owner,
1484
+ repo: repo,
1485
+ number: number,
1486
+ cleanup: true
1487
+ }
1468
1488
  end
1469
1489
 
1470
1490
  def github_pull_request_for_branch(owner:, repo:, branch:, base:)
@@ -1480,7 +1500,7 @@ module Kettle
1480
1500
  "--state",
1481
1501
  "open",
1482
1502
  "--json",
1483
- "number,url",
1503
+ "number,url,body",
1484
1504
  "--limit",
1485
1505
  "1"
1486
1506
  )
@@ -1503,9 +1523,36 @@ module Kettle
1503
1523
  "--title",
1504
1524
  "Release #{branch}",
1505
1525
  "--body",
1506
- "Automated release validation PR for `#{branch}`.\n\nThis PR lets GitHub Actions run before kettle-release merges the branch into `#{base}`."
1526
+ release_validation_pull_request_body(branch)
1507
1527
  )
1508
1528
  puts "Created GitHub pull request for #{branch} -> #{base}: #{output.strip}"
1529
+ output[/\/pull\/(\d+)/, 1]
1530
+ end
1531
+
1532
+ def release_validation_pull_request_body(branch)
1533
+ "Automated release validation PR for `#{branch}`.\n\nThis PR exists only to run pull-request-only GitHub Actions before publishing the branch-stack release. Branch-stack releases are not merged into trunk."
1534
+ end
1535
+
1536
+ def close_generated_branch_stack_pull_request!
1537
+ pull_request = @release_ci_pull_request
1538
+ return unless pull_request && pull_request[:cleanup]
1539
+
1540
+ branch = current_branch
1541
+ trunk = detect_trunk_branch
1542
+ return unless branch_stack_release_branch?(branch, trunk)
1543
+
1544
+ args = [
1545
+ "pr", "close", pull_request[:number].to_s,
1546
+ "--repo", "#{pull_request[:owner]}/#{pull_request[:repo]}",
1547
+ "--comment", "Release completed successfully; closing the CI-only validation PR."
1548
+ ]
1549
+ stdout, stderr, status = Open3.capture3(self.class.send(:command_env), "gh", *args)
1550
+ if status.success?
1551
+ puts "Closed release validation PR ##{pull_request[:number]} for #{branch}."
1552
+ else
1553
+ detail = stderr.strip.empty? ? stdout.strip : stderr.strip
1554
+ warn "Could not close release validation PR ##{pull_request[:number]}: #{detail}"
1555
+ end
1509
1556
  end
1510
1557
 
1511
1558
  def gh_output!(*args)
@@ -1748,7 +1795,7 @@ module Kettle
1748
1795
  def git_output(args)
1749
1796
  # Route all git interactions through the GitAdapter so tests can safely mock them
1750
1797
  out, ok = @git.capture(args)
1751
- [out.to_s.strip, !!ok]
1798
+ [out ? out.strip : "", !!ok]
1752
1799
  end
1753
1800
 
1754
1801
  def ensure_git_user!
@@ -87,7 +87,18 @@ module Kettle
87
87
 
88
88
  def canonical_path(path)
89
89
  expanded = File.expand_path(path, @root)
90
- File.realpath(expanded)
90
+ candidate = expanded
91
+ suffix = []
92
+
93
+ until File.exist?(candidate) || File.symlink?(candidate)
94
+ parent = File.dirname(candidate)
95
+ return expanded if parent == candidate
96
+
97
+ suffix.unshift(File.basename(candidate))
98
+ candidate = parent
99
+ end
100
+
101
+ suffix.reduce(File.realpath(candidate)) { |base, component| File.join(base, component) }
91
102
  rescue Errno::ENOENT
92
103
  expanded
93
104
  end
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "3.1.0"
8
+ VERSION = "3.1.2"
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-dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -60,7 +60,7 @@ dependencies:
60
60
  version: '0.3'
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: 0.3.14
63
+ version: 0.3.16
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
@@ -70,7 +70,7 @@ dependencies:
70
70
  version: '0.3'
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 0.3.14
73
+ version: 0.3.16
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: kettle-ndjson
76
76
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +80,7 @@ dependencies:
80
80
  version: '0.1'
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: 0.1.15
83
+ version: 0.1.18
84
84
  type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  version: '0.1'
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: 0.1.15
93
+ version: 0.1.18
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: kettle-rb
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -100,7 +100,7 @@ dependencies:
100
100
  version: '0.1'
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 0.1.12
103
+ version: 0.1.15
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: '0.1'
111
111
  - - ">="
112
112
  - !ruby/object:Gem::Version
113
- version: 0.1.12
113
+ version: 0.1.15
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: kettle-test
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '2.0'
121
121
  - - ">="
122
122
  - !ruby/object:Gem::Version
123
- version: 2.0.21
123
+ version: 2.0.23
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  version: '2.0'
131
131
  - - ">="
132
132
  - !ruby/object:Gem::Version
133
- version: 2.0.21
133
+ version: 2.0.23
134
134
  - !ruby/object:Gem::Dependency
135
135
  name: ruby-progressbar
136
136
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +159,26 @@ dependencies:
159
159
  - - "~>"
160
160
  - !ruby/object:Gem::Version
161
161
  version: '0.18'
162
+ - !ruby/object:Gem::Dependency
163
+ name: version_gem
164
+ requirement: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '1.1'
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: 1.1.15
172
+ type: :runtime
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '1.1'
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: 1.1.15
162
182
  - !ruby/object:Gem::Dependency
163
183
  name: bundler-audit
164
184
  requirement: !ruby/object:Gem::Requirement
@@ -236,7 +256,7 @@ dependencies:
236
256
  version: '3.2'
237
257
  - - ">="
238
258
  - !ruby/object:Gem::Version
239
- version: 3.2.2
259
+ version: 3.2.4
240
260
  type: :development
241
261
  prerelease: false
242
262
  version_requirements: !ruby/object:Gem::Requirement
@@ -246,7 +266,7 @@ dependencies:
246
266
  version: '3.2'
247
267
  - - ">="
248
268
  - !ruby/object:Gem::Version
249
- version: 3.2.2
269
+ version: 3.2.4
250
270
  - !ruby/object:Gem::Dependency
251
271
  name: turbo_tests2
252
272
  requirement: !ruby/object:Gem::Requirement
@@ -256,7 +276,7 @@ dependencies:
256
276
  version: '3.2'
257
277
  - - ">="
258
278
  - !ruby/object:Gem::Version
259
- version: 3.2.6
279
+ version: 3.2.11
260
280
  type: :development
261
281
  prerelease: false
262
282
  version_requirements: !ruby/object:Gem::Requirement
@@ -266,7 +286,7 @@ dependencies:
266
286
  version: '3.2'
267
287
  - - ">="
268
288
  - !ruby/object:Gem::Version
269
- version: 3.2.6
289
+ version: 3.2.11
270
290
  - !ruby/object:Gem::Dependency
271
291
  name: stone_checksums
272
292
  requirement: !ruby/object:Gem::Requirement
@@ -276,7 +296,7 @@ dependencies:
276
296
  version: '1.0'
277
297
  - - ">="
278
298
  - !ruby/object:Gem::Version
279
- version: 1.0.8
299
+ version: 1.0.9
280
300
  type: :development
281
301
  prerelease: false
282
302
  version_requirements: !ruby/object:Gem::Requirement
@@ -286,7 +306,7 @@ dependencies:
286
306
  version: '1.0'
287
307
  - - ">="
288
308
  - !ruby/object:Gem::Version
289
- version: 1.0.8
309
+ version: 1.0.9
290
310
  - !ruby/object:Gem::Dependency
291
311
  name: gitmoji-regex
292
312
  requirement: !ruby/object:Gem::Requirement
@@ -296,7 +316,7 @@ dependencies:
296
316
  version: '2.0'
297
317
  - - ">="
298
318
  - !ruby/object:Gem::Version
299
- version: 2.0.12
319
+ version: 2.0.13
300
320
  type: :development
301
321
  prerelease: false
302
322
  version_requirements: !ruby/object:Gem::Requirement
@@ -306,7 +326,7 @@ dependencies:
306
326
  version: '2.0'
307
327
  - - ">="
308
328
  - !ruby/object:Gem::Version
309
- version: 2.0.12
329
+ version: 2.0.13
310
330
  description: "\U0001F372 Kettle::Dev is a meta tool from kettle-dev to streamline
311
331
  development and testing. Acts as a shim dependency, pulling in many other dependencies,
312
332
  to give you OOTB productivity with a RubyGem, or Ruby app project. Configures a
@@ -401,10 +421,10 @@ licenses:
401
421
  - AGPL-3.0-only
402
422
  metadata:
403
423
  homepage_uri: https://kettle-dev.galtzo.com
404
- source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.1.0
405
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.1.0/CHANGELOG.md
424
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.1.2
425
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.1.2/CHANGELOG.md
406
426
  bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
407
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.1.0
427
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.1.2
408
428
  funding_uri: https://github.com/sponsors/pboling
409
429
  wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
410
430
  news_uri: https://www.railsbling.com/tags/kettle-dev
@@ -434,7 +454,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
434
454
  - !ruby/object:Gem::Version
435
455
  version: '0'
436
456
  requirements: []
437
- rubygems_version: 4.0.17
457
+ rubygems_version: 4.0.20
438
458
  specification_version: 4
439
459
  summary: "\U0001F372 A kettle-dev meta tool to streamline development and testing"
440
460
  test_files: []
metadata.gz.sig CHANGED
Binary file