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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -2
- data/.envrc +4 -3
- data/.github/workflows/coverage.yml +3 -3
- data/.github/workflows/coverage.yml.example +127 -0
- data/.github/workflows/discord-notifier.yml +2 -1
- data/.github/workflows/truffle.yml +0 -8
- data/.junie/guidelines.md +4 -3
- data/.simplecov +5 -1
- data/Appraisals +5 -0
- data/Appraisals.example +102 -0
- data/CHANGELOG.md +80 -25
- data/CHANGELOG.md.example +4 -4
- data/CONTRIBUTING.md +43 -1
- data/Gemfile +3 -0
- data/README.md +65 -14
- data/README.md.example +515 -0
- data/{Rakefile → Rakefile.example} +17 -35
- data/exe/kettle-changelog +401 -0
- data/exe/kettle-commit-msg +11 -143
- data/exe/kettle-readme-backers +8 -352
- data/exe/kettle-release +7 -706
- data/gemfiles/modular/optional.gemfile +5 -0
- data/lib/kettle/dev/ci_helpers.rb +1 -0
- data/lib/kettle/dev/commit_msg.rb +39 -0
- data/lib/kettle/dev/exit_adapter.rb +36 -0
- data/lib/kettle/dev/git_adapter.rb +185 -0
- data/lib/kettle/dev/git_commit_footer.rb +130 -0
- data/lib/kettle/dev/input_adapter.rb +40 -0
- data/lib/kettle/dev/rakelib/appraisal.rake +8 -9
- data/lib/kettle/dev/rakelib/bench.rake +2 -7
- data/lib/kettle/dev/rakelib/bundle_audit.rake +2 -0
- data/lib/kettle/dev/rakelib/ci.rake +4 -396
- data/lib/kettle/dev/rakelib/install.rake +1 -295
- data/lib/kettle/dev/rakelib/reek.rake +2 -0
- data/lib/kettle/dev/rakelib/rubocop_gradual.rake +2 -0
- data/lib/kettle/dev/rakelib/spec_test.rake +2 -0
- data/lib/kettle/dev/rakelib/template.rake +3 -465
- data/lib/kettle/dev/readme_backers.rb +340 -0
- data/lib/kettle/dev/release_cli.rb +674 -0
- data/lib/kettle/dev/tasks/ci_task.rb +337 -0
- data/lib/kettle/dev/tasks/install_task.rb +516 -0
- data/lib/kettle/dev/tasks/template_task.rb +593 -0
- data/lib/kettle/dev/template_helpers.rb +65 -12
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle/dev/versioning.rb +68 -0
- data/lib/kettle/dev.rb +30 -1
- data/lib/kettle-dev.rb +2 -3
- data/sig/kettle/dev/ci_helpers.rbs +8 -17
- data/sig/kettle/dev/commit_msg.rbs +8 -0
- data/sig/kettle/dev/exit_adapter.rbs +8 -0
- data/sig/kettle/dev/git_adapter.rbs +15 -0
- data/sig/kettle/dev/git_commit_footer.rbs +16 -0
- data/sig/kettle/dev/input_adapter.rbs +8 -0
- data/sig/kettle/dev/readme_backers.rbs +20 -0
- data/sig/kettle/dev/release_cli.rbs +8 -0
- data/sig/kettle/dev/tasks/ci_task.rbs +9 -0
- data/sig/kettle/dev/tasks/install_task.rbs +10 -0
- data/sig/kettle/dev/tasks/template_task.rbs +10 -0
- data/sig/kettle/dev/tasks.rbs +0 -0
- data/sig/kettle/dev/template_helpers.rbs +3 -1
- data/sig/kettle/dev/version.rbs +0 -0
- data/sig/kettle/emoji_regex.rbs +5 -0
- data/sig/kettle-dev.rbs +0 -0
- data.tar.gz.sig +0 -0
- metadata +59 -10
- metadata.gz.sig +0 -0
- data/.gitlab-ci.yml +0 -45
@@ -1,8 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
#
|
3
|
+
# External stdlibs
|
4
4
|
require "find"
|
5
|
-
|
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 =
|
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
|
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,
|
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",
|
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
|
-
|
283
|
+
forge_org = gh_match && gh_match[1]
|
253
284
|
gh_repo = gh_match && gh_match[2]&.sub(/\.git\z/, "")
|
254
|
-
if
|
285
|
+
if forge_org.nil?
|
255
286
|
begin
|
256
|
-
|
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
|
-
|
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:
|
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:
|
data/lib/kettle/dev/version.rb
CHANGED
@@ -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
|
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.
|
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
|
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
|
42
|
-
|
43
|
-
def self.
|
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,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,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
|
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
|
-
|
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
|
data/sig/kettle-dev.rbs
ADDED
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.
|
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:
|
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
|
-
|
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/
|
291
|
-
changelog_uri: https://github.com/
|
292
|
-
bug_tracker_uri: https://github.com/
|
293
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.0.
|
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/
|
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
|