kettle-dev 1.0.9 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -2
  3. data/.envrc +4 -3
  4. data/.github/workflows/coverage.yml +3 -3
  5. data/.github/workflows/coverage.yml.example +127 -0
  6. data/.github/workflows/discord-notifier.yml +2 -1
  7. data/.github/workflows/truffle.yml +0 -8
  8. data/.junie/guidelines.md +4 -3
  9. data/.simplecov +5 -1
  10. data/Appraisals +5 -0
  11. data/Appraisals.example +102 -0
  12. data/CHANGELOG.md +80 -25
  13. data/CHANGELOG.md.example +4 -4
  14. data/CONTRIBUTING.md +43 -1
  15. data/Gemfile +3 -0
  16. data/README.md +65 -14
  17. data/README.md.example +515 -0
  18. data/{Rakefile → Rakefile.example} +17 -35
  19. data/exe/kettle-changelog +401 -0
  20. data/exe/kettle-commit-msg +11 -143
  21. data/exe/kettle-readme-backers +8 -352
  22. data/exe/kettle-release +7 -706
  23. data/gemfiles/modular/optional.gemfile +5 -0
  24. data/lib/kettle/dev/ci_helpers.rb +1 -0
  25. data/lib/kettle/dev/commit_msg.rb +39 -0
  26. data/lib/kettle/dev/exit_adapter.rb +36 -0
  27. data/lib/kettle/dev/git_adapter.rb +185 -0
  28. data/lib/kettle/dev/git_commit_footer.rb +130 -0
  29. data/lib/kettle/dev/input_adapter.rb +40 -0
  30. data/lib/kettle/dev/rakelib/appraisal.rake +8 -9
  31. data/lib/kettle/dev/rakelib/bench.rake +2 -7
  32. data/lib/kettle/dev/rakelib/bundle_audit.rake +2 -0
  33. data/lib/kettle/dev/rakelib/ci.rake +4 -396
  34. data/lib/kettle/dev/rakelib/install.rake +1 -295
  35. data/lib/kettle/dev/rakelib/reek.rake +2 -0
  36. data/lib/kettle/dev/rakelib/rubocop_gradual.rake +2 -0
  37. data/lib/kettle/dev/rakelib/spec_test.rake +2 -0
  38. data/lib/kettle/dev/rakelib/template.rake +3 -465
  39. data/lib/kettle/dev/readme_backers.rb +340 -0
  40. data/lib/kettle/dev/release_cli.rb +674 -0
  41. data/lib/kettle/dev/tasks/ci_task.rb +337 -0
  42. data/lib/kettle/dev/tasks/install_task.rb +516 -0
  43. data/lib/kettle/dev/tasks/template_task.rb +593 -0
  44. data/lib/kettle/dev/template_helpers.rb +65 -12
  45. data/lib/kettle/dev/version.rb +1 -1
  46. data/lib/kettle/dev/versioning.rb +68 -0
  47. data/lib/kettle/dev.rb +30 -1
  48. data/lib/kettle-dev.rb +2 -3
  49. data/sig/kettle/dev/ci_helpers.rbs +8 -17
  50. data/sig/kettle/dev/commit_msg.rbs +8 -0
  51. data/sig/kettle/dev/exit_adapter.rbs +8 -0
  52. data/sig/kettle/dev/git_adapter.rbs +15 -0
  53. data/sig/kettle/dev/git_commit_footer.rbs +16 -0
  54. data/sig/kettle/dev/input_adapter.rbs +8 -0
  55. data/sig/kettle/dev/readme_backers.rbs +20 -0
  56. data/sig/kettle/dev/release_cli.rbs +8 -0
  57. data/sig/kettle/dev/tasks/ci_task.rbs +9 -0
  58. data/sig/kettle/dev/tasks/install_task.rbs +10 -0
  59. data/sig/kettle/dev/tasks/template_task.rbs +10 -0
  60. data/sig/kettle/dev/tasks.rbs +0 -0
  61. data/sig/kettle/dev/template_helpers.rbs +3 -1
  62. data/sig/kettle/dev/version.rbs +0 -0
  63. data/sig/kettle/emoji_regex.rbs +5 -0
  64. data/sig/kettle-dev.rbs +0 -0
  65. data.tar.gz.sig +0 -0
  66. metadata +59 -10
  67. metadata.gz.sig +0 -0
  68. data/.gitlab-ci.yml +0 -45
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # :nocov:
3
+ # External stdlibs
4
4
  require "find"
5
- require_relative "ci_helpers"
5
+ # Internal
6
+ require "kettle/dev/input_adapter"
6
7
 
7
8
  module Kettle
8
9
  module Dev
@@ -39,7 +40,7 @@ module Kettle
39
40
  return true
40
41
  end
41
42
  print("#{prompt} #{default ? "[Y/n]" : "[y/N]"}: ")
42
- ans = $stdin.gets&.strip
43
+ ans = Kettle::Dev::InputAdapter.gets&.strip
43
44
  ans = "" if ans.nil?
44
45
  if default
45
46
  ans.empty? || ans =~ /\Ay(es)?\z/i
@@ -176,6 +177,21 @@ module Kettle
176
177
  FileUtils.mkdir_p(target)
177
178
  else
178
179
  FileUtils.mkdir_p(File.dirname(target))
180
+ if File.exist?(target)
181
+ # Skip only if contents are identical. If source and target paths are the same,
182
+ # avoid FileUtils.cp (which raises) and do an in-place rewrite to satisfy "copy".
183
+ begin
184
+ if FileUtils.compare_file(path, target)
185
+ next
186
+ elsif path == target
187
+ data = File.binread(path)
188
+ File.open(target, "wb") { |f| f.write(data) }
189
+ next
190
+ end
191
+ rescue StandardError
192
+ # ignore compare errors; fall through to copy
193
+ end
194
+ end
179
195
  FileUtils.cp(path, target)
180
196
  end
181
197
  end
@@ -195,6 +211,21 @@ module Kettle
195
211
  FileUtils.mkdir_p(target)
196
212
  else
197
213
  FileUtils.mkdir_p(File.dirname(target))
214
+ if File.exist?(target)
215
+ # Skip only if contents are identical. If source and target paths are the same,
216
+ # avoid FileUtils.cp (which raises) and do an in-place rewrite to satisfy "copy".
217
+ begin
218
+ if FileUtils.compare_file(path, target)
219
+ next
220
+ elsif path == target
221
+ data = File.binread(path)
222
+ File.open(target, "wb") { |f| f.write(data) }
223
+ next
224
+ end
225
+ rescue StandardError
226
+ # ignore compare errors; fall through to copy
227
+ end
228
+ end
198
229
  FileUtils.cp(path, target)
199
230
  end
200
231
  end
@@ -205,15 +236,15 @@ module Kettle
205
236
 
206
237
  # Apply common token replacements used when templating text files
207
238
  # @param content [String]
208
- # @param gh_org [String, nil]
239
+ # @param org [String, nil]
209
240
  # @param gem_name [String]
210
241
  # @param namespace [String]
211
242
  # @param namespace_shield [String]
212
243
  # @param gem_shield [String]
213
244
  # @return [String]
214
- def apply_common_replacements(content, gh_org:, gem_name:, namespace:, namespace_shield:, gem_shield:)
245
+ def apply_common_replacements(content, org:, gem_name:, namespace:, namespace_shield:, gem_shield:)
215
246
  c = content.dup
216
- c = c.gsub("kettle-rb", gh_org.to_s) if gh_org && !gh_org.empty?
247
+ c = c.gsub("kettle-rb", org.to_s) if org && !org.empty?
217
248
  if gem_name && !gem_name.empty?
218
249
  # Replace occurrences of the template gem name in text, including inside
219
250
  # markdown reference labels like [🖼️kettle-dev] and identifiers like kettle-dev-i
@@ -249,13 +280,15 @@ module Kettle
249
280
  end
250
281
  end
251
282
  gh_match = homepage_val&.match(%r{github\.com/([^/]+)/([^/]+)}i)
252
- gh_org = gh_match && gh_match[1]
283
+ forge_org = gh_match && gh_match[1]
253
284
  gh_repo = gh_match && gh_match[2]&.sub(/\.git\z/, "")
254
- if gh_org.nil?
285
+ if forge_org.nil?
255
286
  begin
256
- origin_url = IO.popen(["git", "-C", root.to_s, "remote", "get-url", "origin"], &:read).to_s.strip
287
+ origin_out = IO.popen(["git", "-C", root.to_s, "remote", "get-url", "origin"], &:read)
288
+ origin_out = origin_out.read if origin_out.respond_to?(:read)
289
+ origin_url = origin_out.to_s.strip
257
290
  if (m = origin_url.match(%r{github\.com[/:]([^/]+)/([^/]+)}i))
258
- gh_org = m[1]
291
+ forge_org = m[1]
259
292
  gh_repo = m[2]&.sub(/\.git\z/, "")
260
293
  end
261
294
  rescue StandardError
@@ -271,12 +304,33 @@ module Kettle
271
304
  entrypoint_require = gem_name.to_s.tr("-", "/")
272
305
  gem_shield = gem_name.to_s.gsub("-", "--").gsub("_", "__")
273
306
 
307
+ # Determine funding_org independently of forge_org (GitHub org)
308
+ funding_org = ENV["FUNDING_ORG"].to_s.strip
309
+ funding_org = ENV["OPENCOLLECTIVE_ORG"].to_s.strip if funding_org.empty?
310
+ funding_org = ENV["OPENCOLLECTIVE_HANDLE"].to_s.strip if funding_org.empty?
311
+ if funding_org.empty?
312
+ begin
313
+ oc_path = File.join(root.to_s, ".opencollective.yml")
314
+ if File.file?(oc_path)
315
+ txt = File.read(oc_path)
316
+ if (m = txt.match(/\borg:\s*([\w\-]+)/i))
317
+ funding_org = m[1].to_s
318
+ end
319
+ end
320
+ rescue StandardError
321
+ # ignore
322
+ end
323
+ end
324
+ funding_org = forge_org.to_s if funding_org.to_s.empty?
325
+
274
326
  {
275
327
  gemspec_path: gemspec_path,
276
328
  gem_name: gem_name,
277
329
  min_ruby: min_ruby,
278
330
  homepage: homepage_val,
279
- gh_org: gh_org,
331
+ gh_org: forge_org, # Backward compat: keep old key synonymous with forge_org
332
+ forge_org: forge_org,
333
+ funding_org: funding_org,
280
334
  gh_repo: gh_repo,
281
335
  namespace: namespace,
282
336
  namespace_shield: namespace_shield,
@@ -287,4 +341,3 @@ module Kettle
287
341
  end
288
342
  end
289
343
  end
290
- # :nocov:
@@ -6,7 +6,7 @@ module Kettle
6
6
  module Version
7
7
  # The gem version.
8
8
  # @return [String]
9
- VERSION = "1.0.9"
9
+ VERSION = "1.0.11"
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kettle
4
+ module Dev
5
+ # Shared helpers for version detection and bump classification.
6
+ module Versioning
7
+ module_function
8
+
9
+ # Detects a unique VERSION constant declared under lib/**/version.rb
10
+ # @param root [String] project root
11
+ # @return [String] version string
12
+ def detect_version(root)
13
+ candidates = Dir[File.join(root, "lib", "**", "version.rb")]
14
+ abort!("Could not find version.rb under lib/**.") if candidates.empty?
15
+ versions = candidates.map do |path|
16
+ content = File.read(path)
17
+ m = content.match(/VERSION\s*=\s*(["'])([^"']+)\1/)
18
+ next unless m
19
+ m[2]
20
+ end.compact
21
+ abort!("VERSION constant not found in #{root}/lib/**/version.rb") if versions.none?
22
+ abort!("Multiple VERSION constants found to be out of sync (#{versions.inspect}) in #{root}/lib/**/version.rb") unless versions.uniq.length == 1
23
+ versions.first
24
+ end
25
+
26
+ # Classify the bump type from prev -> cur.
27
+ # EPIC is a MAJOR > 1000.
28
+ # @param prev [String] previous released version
29
+ # @param cur [String] current version (from version.rb)
30
+ # @return [Symbol] one of :epic, :major, :minor, :patch, :same, :downgrade
31
+ def classify_bump(prev, cur)
32
+ pv = Gem::Version.new(prev)
33
+ cv = Gem::Version.new(cur)
34
+ return :same if cv == pv
35
+ return :downgrade if cv < pv
36
+
37
+ pmaj, pmin, ppatch = (pv.segments + [0, 0, 0])[0, 3]
38
+ cmaj, cmin, cpatch = (cv.segments + [0, 0, 0])[0, 3]
39
+
40
+ if cmaj > pmaj
41
+ return :epic if cmaj && cmaj > 1000
42
+ :major
43
+ elsif cmin > pmin
44
+ :minor
45
+ elsif cpatch > ppatch
46
+ :patch
47
+ else
48
+ # Fallback; should be covered by :same above, but in case of weird segment shapes
49
+ :same
50
+ end
51
+ end
52
+
53
+ # Whether MAJOR is an EPIC version (strictly > 1000)
54
+ # @param major [Integer]
55
+ # @return [Boolean]
56
+ def epic_major?(major)
57
+ major && major > 1000
58
+ end
59
+
60
+ # Abort via ExitAdapter if available; otherwise Kernel.abort
61
+ # @param msg [String]
62
+ # @return [void]
63
+ def abort!(msg)
64
+ Kettle::Dev::ExitAdapter.abort(msg)
65
+ end
66
+ end
67
+ end
68
+ end
data/lib/kettle/dev.rb CHANGED
@@ -6,7 +6,6 @@
6
6
  require "require_bench" if ENV.fetch("REQUIRE_BENCH", "false").casecmp("true").zero?
7
7
  # :nocov:
8
8
  require "version_gem"
9
- require_relative "dev/version"
10
9
 
11
10
  module Kettle
12
11
  module Dev
@@ -22,6 +21,11 @@ module Kettle
22
21
  # Whether to benchmark requires with require_bench.
23
22
  # @return [Boolean]
24
23
  REQUIRE_BENCH = ENV.fetch("REQUIRE_BENCH", "false").casecmp("true").zero?
24
+ # Whether to load rake tasks at the bottom of this file.
25
+ # Normally they would be loaded in the project's Rakefile,
26
+ # but if we do that in this project then we can't get accurate code coverage.
27
+ # @return [Boolean]
28
+ RUNNING_AS = File.basename($PROGRAM_NAME)
25
29
 
26
30
  @defaults = []
27
31
 
@@ -103,6 +107,31 @@ module Kettle
103
107
  end
104
108
  end
105
109
 
110
+ # Autoload public CLI/APIs so requiring "kettle-dev" exposes them lazily
111
+ # for tests and executables. Files will be loaded on first constant access.
112
+ module Kettle
113
+ autoload :EmojiRegex, "kettle/emoji_regex"
114
+ module Dev
115
+ autoload :CIHelpers, "kettle/dev/ci_helpers"
116
+ autoload :CommitMsg, "kettle/dev/commit_msg"
117
+ autoload :GitCommitFooter, "kettle/dev/git_commit_footer"
118
+ autoload :ReadmeBackers, "kettle/dev/readme_backers"
119
+ autoload :ReleaseCLI, "kettle/dev/release_cli"
120
+ autoload :TemplateHelpers, "kettle/dev/template_helpers"
121
+ autoload :ExitAdapter, "kettle/dev/exit_adapter"
122
+ autoload :Version, "kettle/dev/version"
123
+
124
+ # Nested tasks namespace with autoloaded task modules
125
+ module Tasks
126
+ autoload :TemplateTask, "kettle/dev/tasks/template_task"
127
+ autoload :InstallTask, "kettle/dev/tasks/install_task"
128
+ autoload :CITask, "kettle/dev/tasks/ci_task"
129
+ end
130
+ end
131
+ end
132
+
106
133
  Kettle::Dev::Version.class_eval do
107
134
  extend VersionGem::Basic
108
135
  end
136
+
137
+ Kettle::Dev.install_tasks if Kettle::Dev::RUNNING_AS == "rake"
data/lib/kettle-dev.rb CHANGED
@@ -15,9 +15,8 @@
15
15
  # Hook for other libraries to load this library (e.g. via bundler)
16
16
  #
17
17
  # @example In your spec/spec_helper.rb
18
- # require "kettle-dev"
18
+ # require "kettle-dev" # or require "kettle/dev"
19
19
  # @example In your Rakefile
20
- # require "kettle/dev"
21
- # Kettle::Dev.install_tasks
20
+ # require "kettle-dev" # or require "kettle/dev"
22
21
  require "kettle/dev"
23
22
  # rubocop:enable Naming/FileName
@@ -1,14 +1,11 @@
1
1
  module Kettle
2
2
  module Dev
3
3
  module CIHelpers
4
+ # singleton (module) methods
4
5
  def self.project_root: () -> String
5
-
6
6
  def self.repo_info: () -> [String, String]?
7
-
8
7
  def self.current_branch: () -> String?
9
-
10
8
  def self.workflows_list: (?String root) -> Array[String]
11
-
12
9
  def self.exclusions: () -> Array[String]
13
10
 
14
11
  def self.latest_run: (
@@ -17,32 +14,26 @@ module Kettle
17
14
  workflow_file: String,
18
15
  ?branch: String?,
19
16
  ?token: String?
20
- ) -> { "status" => String?, "conclusion" => String?, "html_url" => String?, "id" => untyped }?
21
-
22
- def self.success?: ({ "status" => String?, "conclusion" => String? } | nil run) -> bool
17
+ ) -> { "status" => String, "conclusion" => String?, "html_url" => String, "id" => Integer }?
23
18
 
24
- def self.failed?: ({ "status" => String?, "conclusion" => String? } | nil run) -> bool
19
+ def self.success?: ({ "status" => String, "conclusion" => String? }?) -> bool
20
+ def self.failed?: ({ "status" => String, "conclusion" => String? }?) -> bool
25
21
 
26
22
  def self.default_token: () -> String?
27
23
 
28
- # GitLab support
24
+ # GitLab
29
25
  def self.origin_url: () -> String?
30
-
31
26
  def self.repo_info_gitlab: () -> [String, String]?
32
-
33
27
  def self.default_gitlab_token: () -> String?
34
-
35
28
  def self.gitlab_latest_pipeline: (
36
29
  owner: String,
37
30
  repo: String,
38
31
  ?branch: String?,
39
32
  ?host: String,
40
33
  ?token: String?
41
- ) -> { "status" => String?, "web_url" => String?, "id" => untyped }?
42
-
43
- def self.gitlab_success?: ({ "status" => String? } | nil pipeline) -> bool
44
-
45
- def self.gitlab_failed?: ({ "status" => String? } | nil pipeline) -> bool
34
+ ) -> { "status" => String, "web_url" => String, "id" => Integer }?
35
+ def self.gitlab_success?: ({ "status" => String }?) -> bool
36
+ def self.gitlab_failed?: ({ "status" => String }?) -> bool
46
37
  end
47
38
  end
48
39
  end
@@ -0,0 +1,8 @@
1
+ module Kettle
2
+ module Dev
3
+ module CommitMsg
4
+ BRANCH_RULES: ::Hash[String, ::Regexp]
5
+ def self.enforce_branch_rule!: (String path) -> void
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Kettle
2
+ module Dev
3
+ module ExitAdapter
4
+ def self.abort: (String msg) -> void
5
+ def self.exit: (?Integer status) -> void
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module Kettle
2
+ module Dev
3
+ class GitAdapter
4
+ def initialize: () -> void
5
+ def push: (String?, String, force: bool) -> bool
6
+ def current_branch: () -> String?
7
+ def remotes: () -> Array[String]
8
+ def remotes_with_urls: () -> Hash[String, String]
9
+ def remote_url: (String) -> String?
10
+ def checkout: (String) -> bool
11
+ def pull: (String, String) -> bool
12
+ def fetch: (String, String?) -> bool
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ class GitCommitFooter
2
+ NAME_ASSIGNMENT_REGEX: ::Regexp
3
+ FOOTER_APPEND: bool
4
+ SENTINEL: String?
5
+
6
+ def self.git_toplevel: () -> String?
7
+ def self.local_hooks_dir: () -> String?
8
+ def self.global_hooks_dir: () -> String
9
+ def self.hooks_path_for: (String filename) -> String
10
+ def self.commit_goalie_path: () -> String
11
+ def self.goalie_allows_footer?: (String subject_line) -> bool
12
+ def self.render: (*Array[String]) -> void
13
+
14
+ def initialize: () -> void
15
+ def render: () -> String
16
+ end
@@ -0,0 +1,8 @@
1
+ module Kettle
2
+ module Dev
3
+ module InputAdapter
4
+ def self.gets: (*untyped args) -> String?
5
+ def self.readline: (*untyped args) -> String
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,20 @@
1
+ module Kettle
2
+ module Dev
3
+ class ReadmeBackers
4
+ def initialize: (
5
+ handle: String?,
6
+ readme_path: String?,
7
+ osc_api_base: String?,
8
+ osc_default_name: String?,
9
+ osc_empty_message: String?
10
+ ) -> void
11
+
12
+ def run!: () -> void
13
+
14
+ # Selected public helpers (kept minimal)
15
+ def readme_osc_tag: () -> String
16
+ def tag_strings: () -> [String, String]
17
+ def resolve_handle: () -> String
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,8 @@
1
+ module Kettle
2
+ module Dev
3
+ class ReleaseCLI
4
+ def initialize: () -> void
5
+ def run: () -> void
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module Kettle
2
+ module Dev
3
+ module Tasks
4
+ module CITask
5
+ def self.act: (?String opt) -> void
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ module Kettle
2
+ module Dev
3
+ module Tasks
4
+ module InstallTask
5
+ # Entrypoint to perform installation steps and project setup.
6
+ def self.run: () -> void
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Kettle
2
+ module Dev
3
+ module Tasks
4
+ module TemplateTask
5
+ # Entrypoint to copy/update template files into a host project.
6
+ def self.run: () -> void
7
+ end
8
+ end
9
+ end
10
+ end
File without changes
@@ -44,7 +44,7 @@ module Kettle
44
44
  # Apply common token replacements used when templating text files
45
45
  def self.apply_common_replacements: (
46
46
  String content,
47
- gh_org: String?,
47
+ org: String?,
48
48
  gem_name: String,
49
49
  namespace: String,
50
50
  namespace_shield: String,
@@ -59,6 +59,8 @@ module Kettle
59
59
  min_ruby: String,
60
60
  homepage: String,
61
61
  gh_org: String?,
62
+ forge_org: String?,
63
+ funding_org: String?,
62
64
  gh_repo: String?,
63
65
  namespace: String,
64
66
  namespace_shield: String,
File without changes
@@ -0,0 +1,5 @@
1
+ module Kettle
2
+ module EmojiRegex
3
+ REGEX: ::Regexp
4
+ end
5
+ end
File without changes
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: 1.0.9
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -35,7 +35,7 @@ cert_chain:
35
35
  DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
36
36
  L9nRqA==
37
37
  -----END CERTIFICATE-----
38
- date: 2025-08-25 00:00:00.000000000 Z
38
+ date: 1980-01-02 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: version_gem
@@ -133,6 +133,20 @@ dependencies:
133
133
  - - "~>"
134
134
  - !ruby/object:Gem::Version
135
135
  version: '1.0'
136
+ - !ruby/object:Gem::Dependency
137
+ name: rspec-pending_for
138
+ requirement: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
136
150
  - !ruby/object:Gem::Dependency
137
151
  name: ruby-progressbar
138
152
  requirement: !ruby/object:Gem::Requirement
@@ -154,6 +168,9 @@ dependencies:
154
168
  - - "~>"
155
169
  - !ruby/object:Gem::Version
156
170
  version: '1.0'
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: 1.0.2
157
174
  type: :runtime
158
175
  prerelease: false
159
176
  version_requirements: !ruby/object:Gem::Requirement
@@ -161,6 +178,9 @@ dependencies:
161
178
  - - "~>"
162
179
  - !ruby/object:Gem::Version
163
180
  version: '1.0'
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: 1.0.2
164
184
  - !ruby/object:Gem::Dependency
165
185
  name: gitmoji-regex
166
186
  requirement: !ruby/object:Gem::Requirement
@@ -216,6 +236,7 @@ files:
216
236
  - ".github/workflows/auto-assign.yml"
217
237
  - ".github/workflows/codeql-analysis.yml"
218
238
  - ".github/workflows/coverage.yml"
239
+ - ".github/workflows/coverage.yml.example"
219
240
  - ".github/workflows/current.yml"
220
241
  - ".github/workflows/dependency-review.yml"
221
242
  - ".github/workflows/discord-notifier.yml"
@@ -230,7 +251,6 @@ files:
230
251
  - ".github/workflows/unlocked_deps.yml"
231
252
  - ".github/workflows/unsupported.yml"
232
253
  - ".gitignore"
233
- - ".gitlab-ci.yml"
234
254
  - ".junie/guidelines-rbs.md"
235
255
  - ".junie/guidelines.md"
236
256
  - ".opencollective.yml"
@@ -243,6 +263,7 @@ files:
243
263
  - ".yardopts"
244
264
  - Appraisal.root.gemfile
245
265
  - Appraisals
266
+ - Appraisals.example
246
267
  - CHANGELOG.md
247
268
  - CHANGELOG.md.example
248
269
  - CITATION.cff
@@ -251,19 +272,27 @@ files:
251
272
  - Gemfile
252
273
  - LICENSE.txt
253
274
  - README.md
275
+ - README.md.example
254
276
  - REEK
255
277
  - RUBOCOP.md
256
- - Rakefile
278
+ - Rakefile.example
257
279
  - SECURITY.md
280
+ - exe/kettle-changelog
258
281
  - exe/kettle-commit-msg
259
282
  - exe/kettle-readme-backers
260
283
  - exe/kettle-release
261
284
  - gemfiles/modular/coverage.gemfile
262
285
  - gemfiles/modular/documentation.gemfile
286
+ - gemfiles/modular/optional.gemfile
263
287
  - gemfiles/modular/style.gemfile
264
288
  - lib/kettle-dev.rb
265
289
  - lib/kettle/dev.rb
266
290
  - lib/kettle/dev/ci_helpers.rb
291
+ - lib/kettle/dev/commit_msg.rb
292
+ - lib/kettle/dev/exit_adapter.rb
293
+ - lib/kettle/dev/git_adapter.rb
294
+ - lib/kettle/dev/git_commit_footer.rb
295
+ - lib/kettle/dev/input_adapter.rb
267
296
  - lib/kettle/dev/rakelib/appraisal.rake
268
297
  - lib/kettle/dev/rakelib/bench.rake
269
298
  - lib/kettle/dev/rakelib/bundle_audit.rake
@@ -275,24 +304,44 @@ files:
275
304
  - lib/kettle/dev/rakelib/spec_test.rake
276
305
  - lib/kettle/dev/rakelib/template.rake
277
306
  - lib/kettle/dev/rakelib/yard.rake
307
+ - lib/kettle/dev/readme_backers.rb
308
+ - lib/kettle/dev/release_cli.rb
278
309
  - lib/kettle/dev/tasks.rb
310
+ - lib/kettle/dev/tasks/ci_task.rb
311
+ - lib/kettle/dev/tasks/install_task.rb
312
+ - lib/kettle/dev/tasks/template_task.rb
279
313
  - lib/kettle/dev/template_helpers.rb
280
314
  - lib/kettle/dev/version.rb
315
+ - lib/kettle/dev/versioning.rb
281
316
  - lib/kettle/emoji_regex.rb
317
+ - sig/kettle-dev.rbs
282
318
  - sig/kettle/dev.rbs
283
319
  - sig/kettle/dev/ci_helpers.rbs
320
+ - sig/kettle/dev/commit_msg.rbs
321
+ - sig/kettle/dev/exit_adapter.rbs
322
+ - sig/kettle/dev/git_adapter.rbs
323
+ - sig/kettle/dev/git_commit_footer.rbs
324
+ - sig/kettle/dev/input_adapter.rbs
325
+ - sig/kettle/dev/readme_backers.rbs
326
+ - sig/kettle/dev/release_cli.rbs
327
+ - sig/kettle/dev/tasks.rbs
328
+ - sig/kettle/dev/tasks/ci_task.rbs
329
+ - sig/kettle/dev/tasks/install_task.rbs
330
+ - sig/kettle/dev/tasks/template_task.rbs
284
331
  - sig/kettle/dev/template_helpers.rbs
285
- homepage: https://github.com/galtzo-floss/kettle-dev
332
+ - sig/kettle/dev/version.rbs
333
+ - sig/kettle/emoji_regex.rbs
334
+ homepage: https://github.com/kettle-rb/kettle-dev
286
335
  licenses:
287
336
  - MIT
288
337
  metadata:
289
338
  homepage_uri: https://kettle-dev.galtzo.com/
290
- source_code_uri: https://github.com/galtzo-floss/kettle-dev/tree/v1.0.9
291
- changelog_uri: https://github.com/galtzo-floss/kettle-dev/blob/v1.0.9/CHANGELOG.md
292
- bug_tracker_uri: https://github.com/galtzo-floss/kettle-dev/issues
293
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.0.9
339
+ source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.0.11
340
+ changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.0.11/CHANGELOG.md
341
+ bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
342
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.0.11
294
343
  funding_uri: https://github.com/sponsors/pboling
295
- wiki_uri: https://github.com/galtzo-floss/kettle-dev/wiki
344
+ wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
296
345
  news_uri: https://www.railsbling.com/tags/kettle-dev
297
346
  discord_uri: https://discord.gg/3qme4XHNKN
298
347
  rubygems_mfa_required: 'true'
metadata.gz.sig CHANGED
Binary file