kettle-dev 2.2.20 → 2.2.21
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 +16 -1
- data/README.md +1 -1
- data/lib/kettle/dev/gem_spec_reader.rb +1 -1
- data/lib/kettle/dev/release_cli.rb +59 -4
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5c84739dfdebb3ae9c5c6fd438c7cc1db6e5707d9cecfe7a3e2e754e41390301
|
|
4
|
+
data.tar.gz: 9e1f2b9e2f3c842c218977027c6cf69c1a753072f2d281e39239dc3e7097e9ee
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 287be3949983f25366e89ec2de3058bc63cf14dee7ff5b45a5da6a49a09d524493e91318788a370bb6ff92d4bed313771596368638f5026802850523be74f4df
|
|
7
|
+
data.tar.gz: 20bf852b21d4fa605b151e9ee4fe91b50921fa7320ded4ec937951e3cfcc4177ae653246448139ede0188d4741d70f0b5d1b7afce04ed042442d31cbbbb4f98b
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,19 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [2.2.21] - 2026-06-28
|
|
34
|
+
|
|
35
|
+
- TAG: [v2.2.21][2.2.21t]
|
|
36
|
+
- COVERAGE: 92.34% -- 4182/4529 lines in 33 files
|
|
37
|
+
- BRANCH COVERAGE: 73.34% -- 1659/2262 branches in 33 files
|
|
38
|
+
- 61.04% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- `kettle-release` now detects local `.kettle-family.yml` branch-stack release
|
|
43
|
+
targets and skips trunk sync, trunk merge, and trunk checkout for those release
|
|
44
|
+
branches.
|
|
45
|
+
|
|
33
46
|
## [2.2.20] - 2026-06-27
|
|
34
47
|
|
|
35
48
|
- TAG: [v2.2.20][2.2.20t]
|
|
@@ -2321,7 +2334,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2321
2334
|
- Selecting will run the selected workflow via `act`
|
|
2322
2335
|
- This may move to its own gem in the future.
|
|
2323
2336
|
|
|
2324
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.
|
|
2337
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.21...HEAD
|
|
2338
|
+
[2.2.21]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.20...v2.2.21
|
|
2339
|
+
[2.2.21t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.21
|
|
2325
2340
|
[2.2.20]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.19...v2.2.20
|
|
2326
2341
|
[2.2.20t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.20
|
|
2327
2342
|
[2.2.19]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.18...v2.2.19
|
data/README.md
CHANGED
|
@@ -874,7 +874,7 @@ Thanks for RTFM. ☺️
|
|
|
874
874
|
[📌gitmoji]: https://gitmoji.dev
|
|
875
875
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
876
876
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
877
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.
|
|
877
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.529-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
878
878
|
[🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
|
|
879
879
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
880
880
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -196,7 +196,7 @@ module Kettle
|
|
|
196
196
|
end
|
|
197
197
|
|
|
198
198
|
def declared_version_file_path(root)
|
|
199
|
-
gemspec_path = Dir.glob(File.join(root.to_s, "*.gemspec")).
|
|
199
|
+
gemspec_path = Dir.glob(File.join(root.to_s, "*.gemspec")).min
|
|
200
200
|
return unless gemspec_path && File.file?(gemspec_path)
|
|
201
201
|
|
|
202
202
|
gemspec_source = File.read(gemspec_path)
|
|
@@ -9,6 +9,7 @@ require "fileutils"
|
|
|
9
9
|
require "net/http"
|
|
10
10
|
require "json"
|
|
11
11
|
require "uri"
|
|
12
|
+
require "yaml"
|
|
12
13
|
|
|
13
14
|
# External gems
|
|
14
15
|
require "kettle/rb/compat_matrix"
|
|
@@ -128,6 +129,7 @@ module Kettle
|
|
|
128
129
|
committed = nil
|
|
129
130
|
trunk = nil
|
|
130
131
|
feature = nil
|
|
132
|
+
branch_stack_release = false
|
|
131
133
|
|
|
132
134
|
# 2. Version detection and sanity checks + prompt
|
|
133
135
|
if run_step?(2)
|
|
@@ -257,8 +259,12 @@ module Kettle
|
|
|
257
259
|
if run_step?(8) && !local_ci?
|
|
258
260
|
trunk = detect_trunk_branch
|
|
259
261
|
feature = current_branch
|
|
262
|
+
branch_stack_release = branch_stack_release_branch?(feature, trunk)
|
|
263
|
+
if branch_stack_release
|
|
264
|
+
puts "Kettle-family branch stack release branch detected: #{feature}; skipping trunk sync/rebase."
|
|
265
|
+
end
|
|
260
266
|
puts "Trunk branch detected: #{trunk}"
|
|
261
|
-
ensure_trunk_synced_before_push!(trunk, feature)
|
|
267
|
+
ensure_trunk_synced_before_push!(trunk, feature) unless branch_stack_release
|
|
262
268
|
elsif run_step?(8)
|
|
263
269
|
puts "Local CI release mode: skipping remote trunk sync before publishing."
|
|
264
270
|
end
|
|
@@ -273,14 +279,25 @@ module Kettle
|
|
|
273
279
|
if run_step?(11) && !local_ci?
|
|
274
280
|
trunk ||= detect_trunk_branch
|
|
275
281
|
feature ||= current_branch
|
|
276
|
-
|
|
282
|
+
branch_stack_release ||= branch_stack_release_branch?(feature, trunk)
|
|
283
|
+
if branch_stack_release
|
|
284
|
+
puts "Kettle-family branch stack release branch detected: #{feature}; skipping merge into #{trunk}."
|
|
285
|
+
else
|
|
286
|
+
merge_feature_into_trunk_and_push!(trunk, feature)
|
|
287
|
+
end
|
|
277
288
|
end
|
|
278
289
|
|
|
279
290
|
# 12. checkout trunk and pull
|
|
280
291
|
if run_step?(12) && !local_ci?
|
|
281
292
|
trunk ||= detect_trunk_branch
|
|
282
|
-
|
|
283
|
-
|
|
293
|
+
feature ||= current_branch
|
|
294
|
+
branch_stack_release ||= branch_stack_release_branch?(feature, trunk)
|
|
295
|
+
if branch_stack_release
|
|
296
|
+
puts "Kettle-family branch stack release branch detected: #{feature}; staying on release branch."
|
|
297
|
+
else
|
|
298
|
+
checkout!(trunk)
|
|
299
|
+
pull!(trunk)
|
|
300
|
+
end
|
|
284
301
|
end
|
|
285
302
|
|
|
286
303
|
# 13. signing guidance and checks
|
|
@@ -1086,6 +1103,44 @@ module Kettle
|
|
|
1086
1103
|
puts "Merged #{feature} into #{trunk} and pushed. The PR (if any) should auto-close."
|
|
1087
1104
|
end
|
|
1088
1105
|
|
|
1106
|
+
def branch_stack_release_branch?(branch, trunk = nil)
|
|
1107
|
+
return false if branch.to_s.empty?
|
|
1108
|
+
return false if trunk && branch == trunk
|
|
1109
|
+
|
|
1110
|
+
local_kettle_family_release_target_branches.include?(branch)
|
|
1111
|
+
end
|
|
1112
|
+
|
|
1113
|
+
def local_kettle_family_release_target_branches
|
|
1114
|
+
local_kettle_family_config_paths.each do |path|
|
|
1115
|
+
next unless File.file?(path)
|
|
1116
|
+
|
|
1117
|
+
begin
|
|
1118
|
+
data = YAML.safe_load(File.read(path), permitted_classes: [], aliases: false) || {}
|
|
1119
|
+
branches = Array(dig_string_keys(data, "release", "target_branches")) +
|
|
1120
|
+
Array(dig_string_keys(data, "branches", "release_targets"))
|
|
1121
|
+
return branches.map(&:to_s).reject(&:empty?) unless branches.empty?
|
|
1122
|
+
rescue Psych::Exception => e
|
|
1123
|
+
warn("Ignoring invalid kettle-family config #{Kettle::Dev.display_path(path)}: #{e.message}")
|
|
1124
|
+
end
|
|
1125
|
+
end
|
|
1126
|
+
[]
|
|
1127
|
+
end
|
|
1128
|
+
|
|
1129
|
+
def local_kettle_family_config_paths
|
|
1130
|
+
[
|
|
1131
|
+
File.join(@root, ".kettle-family.yml"),
|
|
1132
|
+
File.join(@root, ".structuredmerge", "kettle-family.yml")
|
|
1133
|
+
]
|
|
1134
|
+
end
|
|
1135
|
+
|
|
1136
|
+
def dig_string_keys(data, *keys)
|
|
1137
|
+
keys.reduce(data) do |memo, key|
|
|
1138
|
+
break nil unless memo.is_a?(Hash)
|
|
1139
|
+
|
|
1140
|
+
memo[key] || memo[key.to_sym]
|
|
1141
|
+
end
|
|
1142
|
+
end
|
|
1143
|
+
|
|
1089
1144
|
def ensure_signing_setup_or_skip!
|
|
1090
1145
|
# Treat any non-/true/i value as an explicit skip signal
|
|
1091
1146
|
return if ENV.fetch("SKIP_GEM_SIGNING", "").casecmp("true").zero?
|
data/lib/kettle/dev/version.rb
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.2.
|
|
4
|
+
version: 2.2.21
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -359,10 +359,10 @@ licenses:
|
|
|
359
359
|
- AGPL-3.0-only
|
|
360
360
|
metadata:
|
|
361
361
|
homepage_uri: https://kettle-dev.galtzo.com
|
|
362
|
-
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.2.
|
|
363
|
-
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.2.
|
|
362
|
+
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.2.21
|
|
363
|
+
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.2.21/CHANGELOG.md
|
|
364
364
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
|
|
365
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.2.
|
|
365
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.2.21
|
|
366
366
|
funding_uri: https://github.com/sponsors/pboling
|
|
367
367
|
wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
|
|
368
368
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|