kettle-dev 2.0.0 → 2.0.1
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 +74 -1
- data/CITATION.cff +6 -6
- data/CONTRIBUTING.md +55 -31
- data/FUNDING.md +1 -1
- data/LICENSE.md +12 -0
- data/README.md +127 -207
- data/certs/pboling.pem +27 -0
- data/exe/kettle-changelog +24 -13
- data/exe/kettle-check-eof +7 -0
- data/exe/kettle-check-eof.sh +118 -0
- data/lib/kettle/dev/changelog_cli.rb +373 -62
- data/lib/kettle/dev/ci_monitor.rb +2 -2
- data/lib/kettle/dev/dvcs_cli.rb +1 -1
- data/lib/kettle/dev/gem_spec_reader.rb +98 -8
- data/lib/kettle/dev/git_adapter.rb +37 -1
- data/lib/kettle/dev/open_collective_config.rb +3 -3
- data/lib/kettle/dev/pre_release_cli.rb +4 -4
- data/lib/kettle/dev/rakelib/reek.rake +9 -6
- data/lib/kettle/dev/rakelib/spec_test.rake +25 -25
- data/lib/kettle/dev/rakelib/yard.rake +15 -30
- data/lib/kettle/dev/readme_backers.rb +4 -4
- data/lib/kettle/dev/release_cli.rb +27 -24
- data/lib/kettle/dev/version.rb +2 -87
- data/lib/kettle/dev.rb +28 -6
- data/sig/kettle/dev/version.rbs +8 -0
- data.tar.gz.sig +0 -0
- metadata +57 -30
- metadata.gz.sig +0 -0
- data/LICENSE.txt +0 -21
- data/REEK +0 -0
- data/bin/setup +0 -8
|
@@ -21,7 +21,7 @@ module Kettle
|
|
|
21
21
|
# For Bundler-invoked build/release, explicitly prefix SKIP_GEM_SIGNING so
|
|
22
22
|
# the signing step is skipped even when Bundler scrubs ENV.
|
|
23
23
|
# Always do this on CI to avoid interactive prompts; locally only when explicitly requested.
|
|
24
|
-
if ENV["SKIP_GEM_SIGNING"] &&
|
|
24
|
+
if ENV["SKIP_GEM_SIGNING"] && /\Abundle(\s+exec)?\s+rake\s+(build|release)\b/.match?(cmd)
|
|
25
25
|
cmd = "SKIP_GEM_SIGNING=true #{cmd}"
|
|
26
26
|
end
|
|
27
27
|
puts "$ #{cmd}"
|
|
@@ -31,7 +31,7 @@ module Kettle
|
|
|
31
31
|
# Some commands are interactive (e.g., `bundle exec rake release` prompting for RubyGems MFA).
|
|
32
32
|
# Using capture3 detaches STDIN, preventing prompts from working. For such commands, use system
|
|
33
33
|
# so they inherit the current TTY and can read the user's input.
|
|
34
|
-
interactive =
|
|
34
|
+
interactive = /\Abundle(\s+exec)?\s+rake\s+release\b/.match?(cmd) || /\Agem\s+push\b/.match?(cmd)
|
|
35
35
|
if interactive
|
|
36
36
|
ok = system(env_hash, cmd)
|
|
37
37
|
unless ok
|
|
@@ -97,9 +97,9 @@ module Kettle
|
|
|
97
97
|
gem_name = detect_gem_name
|
|
98
98
|
latest_overall, latest_for_series = latest_released_versions(gem_name, version)
|
|
99
99
|
rescue StandardError => e
|
|
100
|
-
warn("[kettle-release]
|
|
101
|
-
warn(e.backtrace.first(3).map { |l| " " + l }.join("\n")) if ENV["
|
|
102
|
-
warn("Proceeding without
|
|
100
|
+
warn("[kettle-release] gem.coop release check failed: #{e.class}: #{e.message}")
|
|
101
|
+
warn(e.backtrace.first(3).map { |l| " " + l }.join("\n")) if ENV["KETTLE_DEV_DEBUG"]
|
|
102
|
+
warn("Proceeding without gem.coop latest version info.")
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
if latest_overall
|
|
@@ -121,7 +121,7 @@ module Kettle
|
|
|
121
121
|
latest_for_series = nil unless lfs_series == cur_series
|
|
122
122
|
end
|
|
123
123
|
# Determine the sanity-check target correctly for the current series.
|
|
124
|
-
# If
|
|
124
|
+
# If gem.coop has a newer overall series than our current series, only compare
|
|
125
125
|
# against the latest published in our current series. If that cannot be determined
|
|
126
126
|
# (e.g., offline), skip the sanity check rather than treating the overall as target.
|
|
127
127
|
target = if (cur_series <=> overall_series) == -1
|
|
@@ -130,10 +130,10 @@ module Kettle
|
|
|
130
130
|
latest_overall
|
|
131
131
|
end
|
|
132
132
|
# IMPORTANT: Never treat a higher different-series "latest_overall" as a downgrade target.
|
|
133
|
-
# If our current series is behind overall and
|
|
133
|
+
# If our current series is behind overall and gem.coop does not report a latest_for_series,
|
|
134
134
|
# then we cannot determine the correct target for this series and should skip the check.
|
|
135
135
|
if (cur_series <=> overall_series) == -1 && target.nil?
|
|
136
|
-
puts "Could not determine latest released version from
|
|
136
|
+
puts "Could not determine latest released version from gem.coop (offline?). Proceeding without sanity check."
|
|
137
137
|
elsif target
|
|
138
138
|
bump = Kettle::Dev::Versioning.classify_bump(target, version)
|
|
139
139
|
case bump
|
|
@@ -150,10 +150,10 @@ module Kettle
|
|
|
150
150
|
puts "Proposed bump type: #{label} (from #{target} -> #{version})"
|
|
151
151
|
end
|
|
152
152
|
else
|
|
153
|
-
puts "Could not determine latest released version from
|
|
153
|
+
puts "Could not determine latest released version from gem.coop (offline?). Proceeding without sanity check."
|
|
154
154
|
end
|
|
155
155
|
else
|
|
156
|
-
puts "Could not determine latest released version from
|
|
156
|
+
puts "Could not determine latest released version from gem.coop (offline?). Proceeding without sanity check."
|
|
157
157
|
end
|
|
158
158
|
|
|
159
159
|
puts "Have you updated lib/**/version.rb and CHANGELOG.md for v#{version}? [y/N]"
|
|
@@ -184,15 +184,18 @@ module Kettle
|
|
|
184
184
|
# 4. bin/rake
|
|
185
185
|
run_cmd!("bin/rake") if @start_step <= 4
|
|
186
186
|
|
|
187
|
-
# 5. appraisal:update (optional)
|
|
187
|
+
# 5. appraisal:update (optional) + canonical docs build
|
|
188
188
|
if @start_step <= 5
|
|
189
189
|
appraisals_path = File.join(@root, "Appraisals")
|
|
190
190
|
if File.file?(appraisals_path)
|
|
191
|
-
puts "Appraisals detected at #{appraisals_path}. Running: bin/rake appraisal:update"
|
|
191
|
+
puts "Appraisals detected at #{Kettle::Dev.display_path(appraisals_path)}. Running: bin/rake appraisal:update"
|
|
192
192
|
run_cmd!("bin/rake appraisal:update")
|
|
193
193
|
else
|
|
194
194
|
puts "No Appraisals file found; skipping appraisal:update"
|
|
195
195
|
end
|
|
196
|
+
|
|
197
|
+
puts "Generating docs site via canonical task: bin/rake yard"
|
|
198
|
+
run_cmd!("bin/rake yard")
|
|
196
199
|
end
|
|
197
200
|
|
|
198
201
|
# 6. git user + commit release prep
|
|
@@ -317,7 +320,7 @@ module Kettle
|
|
|
317
320
|
return unless section
|
|
318
321
|
|
|
319
322
|
# Example match: "- COVERAGE: 97.70% -- 2125/2175 lines in 20 files"
|
|
320
|
-
m = section.lines.find { |l|
|
|
323
|
+
m = section.lines.find { |l| /-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i.match?(l) }
|
|
321
324
|
return unless m
|
|
322
325
|
|
|
323
326
|
denom = m.match(/-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i)[1].to_i
|
|
@@ -408,7 +411,7 @@ module Kettle
|
|
|
408
411
|
content = File.read(path)
|
|
409
412
|
# Only consider lines that look like copyright notices to reduce false positives
|
|
410
413
|
content.each_line do |line|
|
|
411
|
-
next unless
|
|
414
|
+
next unless /copyright/i.match?(line)
|
|
412
415
|
|
|
413
416
|
# Expand ranges first (supports hyphen-minus and en dash)
|
|
414
417
|
line.scan(/\b(19\d{2}|20\d{2})\s*[\-–]\s*(19\d{2}|20\d{2})\b/).each do |a, b|
|
|
@@ -459,7 +462,7 @@ module Kettle
|
|
|
459
462
|
changed = false
|
|
460
463
|
canonical_all = collapse_years(years_set)
|
|
461
464
|
new_lines = content.each_line.map do |line|
|
|
462
|
-
unless
|
|
465
|
+
unless /copyright/i.match?(line)
|
|
463
466
|
next line
|
|
464
467
|
end
|
|
465
468
|
|
|
@@ -483,7 +486,7 @@ module Kettle
|
|
|
483
486
|
content = File.read(path)
|
|
484
487
|
changed = false
|
|
485
488
|
new_lines = content.each_line.map do |line|
|
|
486
|
-
unless
|
|
489
|
+
unless /copyright/i.match?(line)
|
|
487
490
|
next line
|
|
488
491
|
end
|
|
489
492
|
|
|
@@ -556,7 +559,7 @@ module Kettle
|
|
|
556
559
|
when "ask"
|
|
557
560
|
print("Run local CI with 'act' before pushing? [Y/n] ")
|
|
558
561
|
ans = Kettle::Dev::InputAdapter.gets&.strip
|
|
559
|
-
ans.nil? || ans.empty? ||
|
|
562
|
+
ans.nil? || ans.empty? || /\Ay(es)?\z/i.match?(ans)
|
|
560
563
|
else
|
|
561
564
|
false
|
|
562
565
|
end
|
|
@@ -579,7 +582,7 @@ module Kettle
|
|
|
579
582
|
|
|
580
583
|
chosen = (ENV["K_RELEASE_LOCAL_CI_WORKFLOW"] || "").strip
|
|
581
584
|
if !chosen.empty?
|
|
582
|
-
chosen = "#{chosen}.yml" unless
|
|
585
|
+
chosen = "#{chosen}.yml" unless /\.ya?ml\z/.match?(chosen)
|
|
583
586
|
else
|
|
584
587
|
chosen = if candidates.include?("locked_deps.yml")
|
|
585
588
|
"locked_deps.yml"
|
|
@@ -597,7 +600,7 @@ module Kettle
|
|
|
597
600
|
|
|
598
601
|
file_path = File.join(workflows_dir, chosen)
|
|
599
602
|
unless File.file?(file_path)
|
|
600
|
-
puts "Skipping local CI: selected workflow not found: #{file_path}"
|
|
603
|
+
puts "Skipping local CI: selected workflow not found: #{Kettle::Dev.display_path(file_path)}"
|
|
601
604
|
return
|
|
602
605
|
end
|
|
603
606
|
|
|
@@ -625,18 +628,18 @@ module Kettle
|
|
|
625
628
|
path = gemspecs.min
|
|
626
629
|
content = File.read(path)
|
|
627
630
|
m = content.match(/spec\.name\s*=\s*(["'])([^"']+)\1/)
|
|
628
|
-
abort("Could not determine gem name from #{path}.") unless m
|
|
631
|
+
abort("Could not determine gem name from #{Kettle::Dev.display_path(path)}.") unless m
|
|
629
632
|
m[2]
|
|
630
633
|
end
|
|
631
634
|
|
|
632
635
|
def latest_released_versions(gem_name, current_version)
|
|
633
|
-
uri = URI("https://
|
|
636
|
+
uri = URI("https://gem.coop/api/v1/versions/#{gem_name}.json")
|
|
634
637
|
res = Net::HTTP.get_response(uri)
|
|
635
638
|
return [nil, nil] unless res.is_a?(Net::HTTPSuccess)
|
|
636
639
|
|
|
637
640
|
data = JSON.parse(res.body)
|
|
638
641
|
versions = data.map { |h| h["number"] }.compact
|
|
639
|
-
versions.reject! { |v| v.to_s.include?("-pre") || v.to_s.include?(".pre") ||
|
|
642
|
+
versions.reject! { |v| v.to_s.include?("-pre") || v.to_s.include?(".pre") || /[a-zA-Z]/.match?(v.to_s) }
|
|
640
643
|
gversions = versions.map { |s| Gem::Version.new(s) }.sort
|
|
641
644
|
latest_overall = gversions.last&.to_s
|
|
642
645
|
|
|
@@ -924,11 +927,11 @@ module Kettle
|
|
|
924
927
|
unless File.exist?(cert_path)
|
|
925
928
|
abort(<<~MSG)
|
|
926
929
|
Gem signing appears enabled but no public cert found at:
|
|
927
|
-
#{cert_path}
|
|
930
|
+
#{Kettle::Dev.display_path(cert_path)}
|
|
928
931
|
Add your public key to certs/<USER>.pem (or set GEM_CERT_USER), or set SKIP_GEM_SIGNING to build unsigned.
|
|
929
932
|
MSG
|
|
930
933
|
end
|
|
931
|
-
puts "Found signing cert: #{cert_path}"
|
|
934
|
+
puts "Found signing cert: #{Kettle::Dev.display_path(cert_path)}"
|
|
932
935
|
puts "When prompted during build/release, enter the PEM password for ~/.ssh/gem-private_key.pem"
|
|
933
936
|
end
|
|
934
937
|
|
data/lib/kettle/dev/version.rb
CHANGED
|
@@ -2,94 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
module Kettle
|
|
4
4
|
module Dev
|
|
5
|
-
# Version namespace for kettle-dev.
|
|
6
5
|
module Version
|
|
7
|
-
|
|
8
|
-
# @return [String]
|
|
9
|
-
VERSION = "2.0.0"
|
|
10
|
-
|
|
11
|
-
module_function
|
|
12
|
-
|
|
13
|
-
# rubocop:disable ThreadSafety/ClassInstanceVariable
|
|
14
|
-
#
|
|
15
|
-
# The logic below, through the end of the file, comes from version_gem.
|
|
16
|
-
# Extracted because version_gem depends on this gem, and circular dependencies are bad.
|
|
17
|
-
#
|
|
18
|
-
# A Gem::Version for this version string
|
|
19
|
-
#
|
|
20
|
-
# Useful when you need to compare versions or pass a Gem::Version instance
|
|
21
|
-
# to APIs that expect it. This is equivalent to `Gem::Version.new(to_s)`.
|
|
22
|
-
#
|
|
23
|
-
# @return [Gem::Version]
|
|
24
|
-
def gem_version
|
|
25
|
-
@gem_version ||= ::Gem::Version.new(to_s)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# The version number as a string
|
|
29
|
-
#
|
|
30
|
-
# @return [String]
|
|
31
|
-
def to_s
|
|
32
|
-
self::VERSION
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# The major version
|
|
36
|
-
#
|
|
37
|
-
# @return [Integer]
|
|
38
|
-
def major
|
|
39
|
-
@major ||= _to_a[0].to_i
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
# The minor version
|
|
43
|
-
#
|
|
44
|
-
# @return [Integer]
|
|
45
|
-
def minor
|
|
46
|
-
@minor ||= _to_a[1].to_i
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# The patch version
|
|
50
|
-
#
|
|
51
|
-
# @return [Integer]
|
|
52
|
-
def patch
|
|
53
|
-
@patch ||= _to_a[2].to_i
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# The pre-release version, if any
|
|
57
|
-
#
|
|
58
|
-
# @return [String, NilClass]
|
|
59
|
-
def pre
|
|
60
|
-
@pre ||= _to_a[3]
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# The version number as a hash
|
|
64
|
-
#
|
|
65
|
-
# @return [Hash]
|
|
66
|
-
def to_h
|
|
67
|
-
@to_h ||= {
|
|
68
|
-
major: major,
|
|
69
|
-
minor: minor,
|
|
70
|
-
patch: patch,
|
|
71
|
-
pre: pre,
|
|
72
|
-
}
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# The version number as an array of cast values
|
|
76
|
-
#
|
|
77
|
-
# @return [Array<[Integer, String, NilClass]>]
|
|
78
|
-
def to_a
|
|
79
|
-
@to_a ||= [major, minor, patch, pre]
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
private
|
|
83
|
-
|
|
84
|
-
module_function
|
|
85
|
-
|
|
86
|
-
# The version number as an array of strings
|
|
87
|
-
#
|
|
88
|
-
# @return [Array<String>]
|
|
89
|
-
def _to_a
|
|
90
|
-
@_to_a = self::VERSION.split(".")
|
|
91
|
-
end
|
|
92
|
-
# rubocop:enable ThreadSafety/ClassInstanceVariable
|
|
6
|
+
VERSION = "2.0.1"
|
|
93
7
|
end
|
|
8
|
+
VERSION = Version::VERSION # Traditional Constant Location
|
|
94
9
|
end
|
|
95
10
|
end
|
data/lib/kettle/dev.rb
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "version_gem"
|
|
4
|
+
require_relative "dev/version"
|
|
5
|
+
|
|
6
|
+
Kettle::Dev::Version.class_eval do
|
|
7
|
+
extend VersionGem::Basic
|
|
8
|
+
end
|
|
3
9
|
# External gems
|
|
4
10
|
|
|
5
11
|
# It's not reasonable to test this ENV variable
|
|
@@ -38,9 +44,9 @@ module Kettle
|
|
|
38
44
|
class Error < StandardError; end
|
|
39
45
|
|
|
40
46
|
# Whether debug logging is enabled for kettle-dev internals.
|
|
41
|
-
#
|
|
47
|
+
# Controlled by KETTLE_DEV_DEBUG=true.
|
|
42
48
|
# @return [Boolean]
|
|
43
|
-
DEBUGGING = ENV.fetch("KETTLE_DEV_DEBUG",
|
|
49
|
+
DEBUGGING = ENV.fetch("KETTLE_DEV_DEBUG", "false").casecmp("true").zero?
|
|
44
50
|
# Whether we are running on CI.
|
|
45
51
|
# @return [Boolean]
|
|
46
52
|
IS_CI = ENV.fetch("CI", "false").casecmp("true") == 0
|
|
@@ -70,23 +76,39 @@ module Kettle
|
|
|
70
76
|
@defaults = [].freeze
|
|
71
77
|
|
|
72
78
|
class << self
|
|
79
|
+
VAR_HOME_PREFIX = %r{\A/var/home(?=/|\z)}
|
|
80
|
+
VAR_HOME_TEXT = %r{/var/home(?=/|\z)}
|
|
81
|
+
|
|
82
|
+
def display_path(path)
|
|
83
|
+
return path if path.nil?
|
|
84
|
+
|
|
85
|
+
path.to_s.sub(VAR_HOME_PREFIX, "/home")
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def display_text(text)
|
|
89
|
+
return text if text.nil?
|
|
90
|
+
|
|
91
|
+
text.to_s.gsub(VAR_HOME_TEXT, "/home")
|
|
92
|
+
end
|
|
93
|
+
|
|
73
94
|
# Emit a debug warning for rescued errors when kettle-dev debugging is enabled.
|
|
74
|
-
# Controlled by KETTLE_DEV_DEBUG=true
|
|
95
|
+
# Controlled by KETTLE_DEV_DEBUG=true.
|
|
75
96
|
# @param error [Exception]
|
|
76
97
|
# @param context [String, Symbol, nil] optional label, often __method__
|
|
98
|
+
# @param backtrace [Boolean] whether to emit the rescued error backtrace
|
|
77
99
|
# @return [void]
|
|
78
|
-
def debug_error(error, context = nil)
|
|
100
|
+
def debug_error(error, context = nil, backtrace: true)
|
|
79
101
|
return unless DEBUGGING
|
|
80
102
|
|
|
81
103
|
ctx = context ? context.to_s : "KETTLE-DEV-RESCUE"
|
|
82
104
|
Kernel.warn("[#{ctx}] #{error.class}: #{error.message}")
|
|
83
|
-
Kernel.warn(error.backtrace.first(5).join("\n")) if error.respond_to?(:backtrace) && error.backtrace
|
|
105
|
+
Kernel.warn(Array(error.backtrace).first(5).join("\n")) if backtrace && error.respond_to?(:backtrace) && error.backtrace
|
|
84
106
|
rescue StandardError
|
|
85
107
|
# never raise from debug logging
|
|
86
108
|
end
|
|
87
109
|
|
|
88
110
|
# Emit a debug log line when kettle-dev debugging is enabled.
|
|
89
|
-
# Controlled by KETTLE_DEV_DEBUG=true
|
|
111
|
+
# Controlled by KETTLE_DEV_DEBUG=true.
|
|
90
112
|
# @param msg [String]
|
|
91
113
|
# @return [void]
|
|
92
114
|
def debug_log(msg, context = nil)
|
data/sig/kettle/dev/version.rbs
CHANGED
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: 2.0.
|
|
4
|
+
version: 2.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -37,6 +37,46 @@ cert_chain:
|
|
|
37
37
|
-----END CERTIFICATE-----
|
|
38
38
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
39
39
|
dependencies:
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: kettle-test
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '2.0'
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: 2.0.1
|
|
50
|
+
type: :runtime
|
|
51
|
+
prerelease: false
|
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
53
|
+
requirements:
|
|
54
|
+
- - "~>"
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: '2.0'
|
|
57
|
+
- - ">="
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: 2.0.1
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: version_gem
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "~>"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '1.1'
|
|
67
|
+
- - ">="
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: 1.1.9
|
|
70
|
+
type: :runtime
|
|
71
|
+
prerelease: false
|
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - "~>"
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '1.1'
|
|
77
|
+
- - ">="
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: 1.1.9
|
|
40
80
|
- !ruby/object:Gem::Dependency
|
|
41
81
|
name: bundler-audit
|
|
42
82
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,33 +132,19 @@ dependencies:
|
|
|
92
132
|
- - "~>"
|
|
93
133
|
- !ruby/object:Gem::Version
|
|
94
134
|
version: '3.0'
|
|
95
|
-
type: :development
|
|
96
|
-
prerelease: false
|
|
97
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
98
|
-
requirements:
|
|
99
|
-
- - "~>"
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: '3.0'
|
|
102
|
-
- !ruby/object:Gem::Dependency
|
|
103
|
-
name: kettle-test
|
|
104
|
-
requirement: !ruby/object:Gem::Requirement
|
|
105
|
-
requirements:
|
|
106
|
-
- - "~>"
|
|
107
|
-
- !ruby/object:Gem::Version
|
|
108
|
-
version: '1.0'
|
|
109
135
|
- - ">="
|
|
110
136
|
- !ruby/object:Gem::Version
|
|
111
|
-
version:
|
|
137
|
+
version: 3.0.6
|
|
112
138
|
type: :development
|
|
113
139
|
prerelease: false
|
|
114
140
|
version_requirements: !ruby/object:Gem::Requirement
|
|
115
141
|
requirements:
|
|
116
142
|
- - "~>"
|
|
117
143
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: '
|
|
144
|
+
version: '3.0'
|
|
119
145
|
- - ">="
|
|
120
146
|
- !ruby/object:Gem::Version
|
|
121
|
-
version:
|
|
147
|
+
version: 3.0.6
|
|
122
148
|
- !ruby/object:Gem::Dependency
|
|
123
149
|
name: ruby-progressbar
|
|
124
150
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -182,6 +208,7 @@ email:
|
|
|
182
208
|
- floss@galtzo.com
|
|
183
209
|
executables:
|
|
184
210
|
- kettle-changelog
|
|
211
|
+
- kettle-check-eof
|
|
185
212
|
- kettle-commit-msg
|
|
186
213
|
- kettle-dev-setup
|
|
187
214
|
- kettle-dvcs
|
|
@@ -196,9 +223,8 @@ extra_rdoc_files:
|
|
|
196
223
|
- CODE_OF_CONDUCT.md
|
|
197
224
|
- CONTRIBUTING.md
|
|
198
225
|
- FUNDING.md
|
|
199
|
-
- LICENSE.
|
|
226
|
+
- LICENSE.md
|
|
200
227
|
- README.md
|
|
201
|
-
- REEK
|
|
202
228
|
- RUBOCOP.md
|
|
203
229
|
- SECURITY.md
|
|
204
230
|
files:
|
|
@@ -207,13 +233,14 @@ files:
|
|
|
207
233
|
- CODE_OF_CONDUCT.md
|
|
208
234
|
- CONTRIBUTING.md
|
|
209
235
|
- FUNDING.md
|
|
210
|
-
- LICENSE.
|
|
236
|
+
- LICENSE.md
|
|
211
237
|
- README.md
|
|
212
|
-
- REEK
|
|
213
238
|
- RUBOCOP.md
|
|
214
239
|
- SECURITY.md
|
|
215
|
-
-
|
|
240
|
+
- certs/pboling.pem
|
|
216
241
|
- exe/kettle-changelog
|
|
242
|
+
- exe/kettle-check-eof
|
|
243
|
+
- exe/kettle-check-eof.sh
|
|
217
244
|
- exe/kettle-commit-msg
|
|
218
245
|
- exe/kettle-dev-setup
|
|
219
246
|
- exe/kettle-dvcs
|
|
@@ -282,13 +309,13 @@ files:
|
|
|
282
309
|
- sig/kettle/emoji_regex.rbs
|
|
283
310
|
homepage: https://github.com/kettle-rb/kettle-dev
|
|
284
311
|
licenses:
|
|
285
|
-
-
|
|
312
|
+
- AGPL-3.0-only
|
|
286
313
|
metadata:
|
|
287
|
-
homepage_uri: https://kettle-dev.galtzo.com
|
|
288
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v2.0.
|
|
289
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v2.0.
|
|
314
|
+
homepage_uri: https://kettle-dev.galtzo.com
|
|
315
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v2.0.1
|
|
316
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v2.0.1/CHANGELOG.md
|
|
290
317
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
|
291
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.0.
|
|
318
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.0.1
|
|
292
319
|
funding_uri: https://github.com/sponsors/pboling
|
|
293
320
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
|
294
321
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
|
@@ -310,14 +337,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
310
337
|
requirements:
|
|
311
338
|
- - ">="
|
|
312
339
|
- !ruby/object:Gem::Version
|
|
313
|
-
version: 2.
|
|
340
|
+
version: 2.4.0
|
|
314
341
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
342
|
requirements:
|
|
316
343
|
- - ">="
|
|
317
344
|
- !ruby/object:Gem::Version
|
|
318
345
|
version: '0'
|
|
319
346
|
requirements: []
|
|
320
|
-
rubygems_version: 4.0.
|
|
347
|
+
rubygems_version: 4.0.10
|
|
321
348
|
specification_version: 4
|
|
322
349
|
summary: "\U0001F372 A kettle-rb meta tool to streamline development and testing"
|
|
323
350
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|
data/LICENSE.txt
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023, 2025 Peter Boling
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
|
13
|
-
all copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
THE SOFTWARE.
|
data/REEK
DELETED
|
File without changes
|