kettle-family 1.3.34 → 1.3.35
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 +24 -1
- data/README.md +1 -1
- data/lib/kettle/family/discovery.rb +15 -1
- data/lib/kettle/family/release_state_check.rb +15 -3
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +4 -1
- data.tar.gz.sig +0 -0
- metadata +14 -14
- 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: df70ef40b82ccb54155fc57a43a1137d620d3cbd78cd74643d050b9056f3ecdb
|
|
4
|
+
data.tar.gz: aff84d0529ac6ef7b78a3248160eb72b4077f51609362c887837b1cd390a9a10
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e3ba12f341362839b45835afda346efa79c49aa886cf5d731980e0d9a2090ffe0297abb752bf72a293135e6ab4fa64c1f132210c882edfef2583c56204fb8355
|
|
7
|
+
data.tar.gz: 7cd500810f8b034e00be64dc03574d957c578be29ef1df6d17ca4bf73999c1c47a381d57799e445f1f4c0cabae3622c0ad44152b1152175c1a4b252e0800a034
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,27 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.3.35] - 2026-10-26
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.3.35][1.3.35t]
|
|
36
|
+
- COVERAGE: 93.07% -- 7558/8121 lines in 45 files
|
|
37
|
+
- BRANCH COVERAGE: 77.45% -- 3016/3894 branches in 45 files
|
|
38
|
+
- 38.89% documented
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- [kc] kettle-jem/prepare: updated 9 project files:
|
|
43
|
+
- dependencies (9)
|
|
44
|
+
|
|
45
|
+
- [kc] kettle-jem/template: updated 4 project files:
|
|
46
|
+
- dependencies (2)
|
|
47
|
+
- other (1)
|
|
48
|
+
- workflows (1)
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- [kc] duplicate-family-member-diagnostics: Duplicate gem names found in different directories now report both roots and gemspecs, with guidance for excluding scratch checkouts or disabling discovery when `members.roots` is complete.
|
|
53
|
+
|
|
33
54
|
## [1.3.34] - 2026-10-25
|
|
34
55
|
|
|
35
56
|
- TAG: [v1.3.34][1.3.34t]
|
|
@@ -3278,7 +3299,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
3278
3299
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
3279
3300
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
3280
3301
|
|
|
3281
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.3.
|
|
3302
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.3.35...HEAD
|
|
3303
|
+
[1.3.35]: https://github.com/kettle-dev/kettle-family/compare/v1.3.34...v1.3.35
|
|
3304
|
+
[1.3.35t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.3.35
|
|
3282
3305
|
[1.3.34]: https://github.com/kettle-dev/kettle-family/compare/v1.3.33...v1.3.34
|
|
3283
3306
|
[1.3.34t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.3.34
|
|
3284
3307
|
[1.3.33]: https://github.com/kettle-dev/kettle-family/compare/v1.3.32...v1.3.33
|
data/README.md
CHANGED
|
@@ -1191,7 +1191,7 @@ Thanks for RTFM. ☺️
|
|
|
1191
1191
|
[📌gitmoji]: https://gitmoji.dev
|
|
1192
1192
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1193
1193
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1194
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-8.
|
|
1194
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-8.121-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1195
1195
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
1196
1196
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1197
1197
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -37,7 +37,9 @@ module Kettle
|
|
|
37
37
|
|
|
38
38
|
(configured + discovered).each do |member|
|
|
39
39
|
existing = by_name[member.name]
|
|
40
|
-
|
|
40
|
+
if existing && !same_directory?(existing.root, member.root)
|
|
41
|
+
raise duplicate_member_error(existing, member)
|
|
42
|
+
end
|
|
41
43
|
|
|
42
44
|
by_name[member.name] = member
|
|
43
45
|
end
|
|
@@ -82,6 +84,18 @@ module Kettle
|
|
|
82
84
|
release_dependency_member_names.include?(File.basename(File.expand_path(root)))
|
|
83
85
|
end
|
|
84
86
|
|
|
87
|
+
def duplicate_member_error(first, second)
|
|
88
|
+
Error.new(<<~MESSAGE.strip)
|
|
89
|
+
duplicate family member #{first.name.inspect} found in different directories:
|
|
90
|
+
- #{first.root} (#{first.gemspec_path})
|
|
91
|
+
- #{second.root} (#{second.gemspec_path})
|
|
92
|
+
Each gem name must resolve to one family directory. If one is a scratch
|
|
93
|
+
checkout or worktree, move it outside the discovery roots or exclude it
|
|
94
|
+
with members.exclude. If members.roots lists the complete family, set
|
|
95
|
+
members.discover: false.
|
|
96
|
+
MESSAGE
|
|
97
|
+
end
|
|
98
|
+
|
|
85
99
|
def primary_gemspec(root)
|
|
86
100
|
gemspecs = Paths.glob(root, "*.gemspec")
|
|
87
101
|
raise Error, "no gemspec found in #{root}" if gemspecs.empty?
|
|
@@ -803,7 +803,10 @@ module Kettle
|
|
|
803
803
|
member_config = member_local_release_config(member)
|
|
804
804
|
return unless member_config
|
|
805
805
|
|
|
806
|
-
|
|
806
|
+
current_result = check_member(member, event_handler: event_handler)
|
|
807
|
+
return [current_result] unless current_result.ok?
|
|
808
|
+
|
|
809
|
+
[current_result, *self.class.new(config: member_config, members: [member]).results(event_handler: event_handler)]
|
|
807
810
|
end
|
|
808
811
|
|
|
809
812
|
def emit_event(event_handler, member:, branch:, action:, status:, **details)
|
|
@@ -997,9 +1000,18 @@ module Kettle
|
|
|
997
1000
|
|
|
998
1001
|
def add_branch_worktree(root:, branch:, worktree_root:)
|
|
999
1002
|
WORKTREE_ADMIN_MUTEX.synchronize do
|
|
1000
|
-
|
|
1001
|
-
|
|
1003
|
+
ref = resolvable_branch_ref(root, branch)
|
|
1004
|
+
_stdout, stderr, status = Open3.capture3("git", "worktree", "add", "--detach", worktree_root, ref, chdir: root)
|
|
1005
|
+
raise Error, "could not add worktree for #{branch}: #{stderr.strip}; fetch the branch or create a local ref (git fetch origin #{branch})" unless status.success?
|
|
1006
|
+
end
|
|
1007
|
+
end
|
|
1008
|
+
|
|
1009
|
+
def resolvable_branch_ref(root, branch)
|
|
1010
|
+
[branch, "refs/remotes/origin/#{branch}"].each do |ref|
|
|
1011
|
+
_stdout, _stderr, status = Open3.capture3("git", "rev-parse", "--verify", "#{ref}^{commit}", chdir: root)
|
|
1012
|
+
return ref if status.success?
|
|
1002
1013
|
end
|
|
1014
|
+
branch
|
|
1003
1015
|
end
|
|
1004
1016
|
|
|
1005
1017
|
def remove_branch_worktree(root:, worktree_root:)
|
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "1.3.
|
|
8
|
+
VERSION = "1.3.35"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -2223,11 +2223,14 @@ module Kettle
|
|
|
2223
2223
|
# repositories through one-at-a-time release workflows. Run those
|
|
2224
2224
|
# members through the normal release scheduler first so configured
|
|
2225
2225
|
# waves and their worker budget remain effective.
|
|
2226
|
-
|
|
2226
|
+
current_members = start_branch ? current_branch_members : members
|
|
2227
|
+
results.concat(current_branch_results(current_members)) unless current_members.empty?
|
|
2227
2228
|
return results unless results.all?(&:ok?)
|
|
2228
2229
|
|
|
2229
2230
|
target_members.each_with_object(results) do |member, memo|
|
|
2230
2231
|
member_config = member_local_release_config(member)
|
|
2232
|
+
next if start_branch.nil? && BranchTargetConfig.branch_targets_for(command, member_config.release_target_branches).empty?
|
|
2233
|
+
|
|
2231
2234
|
memo.concat(member_local_workflow(member: member, member_config: member_config).results)
|
|
2232
2235
|
break memo unless memo.last&.ok?
|
|
2233
2236
|
end
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-family
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.35
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -174,7 +174,7 @@ dependencies:
|
|
|
174
174
|
version: '0.3'
|
|
175
175
|
- - ">="
|
|
176
176
|
- !ruby/object:Gem::Version
|
|
177
|
-
version: 0.3.
|
|
177
|
+
version: 0.3.19
|
|
178
178
|
type: :runtime
|
|
179
179
|
prerelease: false
|
|
180
180
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -184,7 +184,7 @@ dependencies:
|
|
|
184
184
|
version: '0.3'
|
|
185
185
|
- - ">="
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: 0.3.
|
|
187
|
+
version: 0.3.19
|
|
188
188
|
- !ruby/object:Gem::Dependency
|
|
189
189
|
name: kettle-jem
|
|
190
190
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -214,7 +214,7 @@ dependencies:
|
|
|
214
214
|
version: '0.1'
|
|
215
215
|
- - ">="
|
|
216
216
|
- !ruby/object:Gem::Version
|
|
217
|
-
version: 0.1.
|
|
217
|
+
version: 0.1.22
|
|
218
218
|
type: :runtime
|
|
219
219
|
prerelease: false
|
|
220
220
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -224,7 +224,7 @@ dependencies:
|
|
|
224
224
|
version: '0.1'
|
|
225
225
|
- - ">="
|
|
226
226
|
- !ruby/object:Gem::Version
|
|
227
|
-
version: 0.1.
|
|
227
|
+
version: 0.1.22
|
|
228
228
|
- !ruby/object:Gem::Dependency
|
|
229
229
|
name: kettle-test
|
|
230
230
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -234,7 +234,7 @@ dependencies:
|
|
|
234
234
|
version: '2.0'
|
|
235
235
|
- - ">="
|
|
236
236
|
- !ruby/object:Gem::Version
|
|
237
|
-
version: 2.0.
|
|
237
|
+
version: 2.0.28
|
|
238
238
|
type: :runtime
|
|
239
239
|
prerelease: false
|
|
240
240
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -244,7 +244,7 @@ dependencies:
|
|
|
244
244
|
version: '2.0'
|
|
245
245
|
- - ">="
|
|
246
246
|
- !ruby/object:Gem::Version
|
|
247
|
-
version: 2.0.
|
|
247
|
+
version: 2.0.28
|
|
248
248
|
- !ruby/object:Gem::Dependency
|
|
249
249
|
name: psych-merge
|
|
250
250
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -336,7 +336,7 @@ dependencies:
|
|
|
336
336
|
version: '1.1'
|
|
337
337
|
- - ">="
|
|
338
338
|
- !ruby/object:Gem::Version
|
|
339
|
-
version: 1.1.
|
|
339
|
+
version: 1.1.17
|
|
340
340
|
type: :runtime
|
|
341
341
|
prerelease: false
|
|
342
342
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -346,7 +346,7 @@ dependencies:
|
|
|
346
346
|
version: '1.1'
|
|
347
347
|
- - ">="
|
|
348
348
|
- !ruby/object:Gem::Version
|
|
349
|
-
version: 1.1.
|
|
349
|
+
version: 1.1.17
|
|
350
350
|
- !ruby/object:Gem::Dependency
|
|
351
351
|
name: bundler-audit
|
|
352
352
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -404,7 +404,7 @@ dependencies:
|
|
|
404
404
|
version: '0.1'
|
|
405
405
|
- - ">="
|
|
406
406
|
- !ruby/object:Gem::Version
|
|
407
|
-
version: 0.1.
|
|
407
|
+
version: 0.1.5
|
|
408
408
|
type: :development
|
|
409
409
|
prerelease: false
|
|
410
410
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -414,7 +414,7 @@ dependencies:
|
|
|
414
414
|
version: '0.1'
|
|
415
415
|
- - ">="
|
|
416
416
|
- !ruby/object:Gem::Version
|
|
417
|
-
version: 0.1.
|
|
417
|
+
version: 0.1.5
|
|
418
418
|
- !ruby/object:Gem::Dependency
|
|
419
419
|
name: appraisal2
|
|
420
420
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -608,10 +608,10 @@ licenses:
|
|
|
608
608
|
- AGPL-3.0-only
|
|
609
609
|
metadata:
|
|
610
610
|
homepage_uri: https://kettle-family.galtzo.com
|
|
611
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.3.
|
|
612
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.3.
|
|
611
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.3.35
|
|
612
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.3.35/CHANGELOG.md
|
|
613
613
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
614
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.3.
|
|
614
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.3.35
|
|
615
615
|
funding_uri: https://github.com/sponsors/pboling
|
|
616
616
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
617
617
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|