kettle-family 0.2.1 → 0.2.2
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 +15 -1
- data/README.md +1 -1
- data/lib/kettle/family/git_status.rb +7 -0
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +49 -0
- 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: 4cb4c502493482718d093219b202a58d6b4eef4d99890bdd300a18646fd87448
|
|
4
|
+
data.tar.gz: 396fa2013f8ebb7ae7a3f84f2c74a12d38af9443311f5da5629154d7cb730023
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e81e3a9cfba607441cbd5ae8dce13002c92cd9a2744dce24a1928b03d607360bec111d1314fec7570a3365e1631b86ae62af6fe00498084eabc2d74d07bde916
|
|
7
|
+
data.tar.gz: af9e4962ed8bcad15481eca3e38139ad610ab7ce470009ea6aa815e7c46c396efe382d1a520a24c3411d47d127b9311cc9f8137c6691fcaca226ddd046311d3b
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,18 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [0.2.2] - 2026-07-02
|
|
34
|
+
|
|
35
|
+
- TAG: [v0.2.2][0.2.2t]
|
|
36
|
+
- COVERAGE: 95.54% -- 2205/2308 lines in 21 files
|
|
37
|
+
- BRANCH COVERAGE: 76.53% -- 714/933 branches in 21 files
|
|
38
|
+
- 29.82% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Branch-target workflows now fail before doing member work when a dirty
|
|
43
|
+
worktree would block `git checkout` for configured release target branches.
|
|
44
|
+
|
|
33
45
|
## [0.2.1] - 2026-07-02
|
|
34
46
|
|
|
35
47
|
- TAG: [v0.2.1][0.2.1t]
|
|
@@ -605,7 +617,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
605
617
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
606
618
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
607
619
|
|
|
608
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.2.
|
|
620
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.2.2...HEAD
|
|
621
|
+
[0.2.2]: https://github.com/kettle-dev/kettle-family/compare/v0.2.1...v0.2.2
|
|
622
|
+
[0.2.2t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.2.2
|
|
609
623
|
[0.2.1]: https://github.com/kettle-dev/kettle-family/compare/v0.2.0...v0.2.1
|
|
610
624
|
[0.2.1t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.2.1
|
|
611
625
|
[0.2.0]: https://github.com/kettle-dev/kettle-family/compare/v0.1.32...v0.2.0
|
data/README.md
CHANGED
|
@@ -592,7 +592,7 @@ Thanks for RTFM. ☺️
|
|
|
592
592
|
[📌gitmoji]: https://gitmoji.dev
|
|
593
593
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
594
594
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
595
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-2.
|
|
595
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-2.308-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
596
596
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
597
597
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
598
598
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -9,6 +9,13 @@ module Kettle
|
|
|
9
9
|
stdout, _stderr, status = Open3.capture3("git", "status", "--short", chdir: root)
|
|
10
10
|
status.success? && !stdout.empty?
|
|
11
11
|
end
|
|
12
|
+
|
|
13
|
+
def self.dirty_paths(root)
|
|
14
|
+
stdout, _stderr, status = Open3.capture3("git", "status", "--short", chdir: root)
|
|
15
|
+
return [] unless status.success?
|
|
16
|
+
|
|
17
|
+
stdout.lines.map(&:chomp).reject(&:empty?)
|
|
18
|
+
end
|
|
12
19
|
end
|
|
13
20
|
end
|
|
14
21
|
end
|
|
@@ -73,6 +73,9 @@ module Kettle
|
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def results
|
|
76
|
+
preflight = branch_checkout_dirty_preflight_results
|
|
77
|
+
return preflight unless preflight.empty?
|
|
78
|
+
|
|
76
79
|
prompt_for_gem_signing_password if command == "release" && execute && release_signing_prompt_required?
|
|
77
80
|
return branch_target_results unless config.release_target_branches.empty?
|
|
78
81
|
return member_local_branch_target_results if member_local_branch_targets?
|
|
@@ -204,6 +207,52 @@ module Kettle
|
|
|
204
207
|
end
|
|
205
208
|
end
|
|
206
209
|
|
|
210
|
+
def branch_checkout_dirty_preflight_results
|
|
211
|
+
return [] unless execute
|
|
212
|
+
return [] if allow_dirty
|
|
213
|
+
return [] unless branch_checkout_preflight_required?
|
|
214
|
+
|
|
215
|
+
branch_checkout_preflight_members.filter_map do |member|
|
|
216
|
+
dirty_paths = GitStatus.dirty_paths(member.root)
|
|
217
|
+
next if dirty_paths.empty?
|
|
218
|
+
|
|
219
|
+
branch_checkout_dirty_result(member, dirty_paths)
|
|
220
|
+
end
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def branch_checkout_preflight_required?
|
|
224
|
+
!config.release_target_branches.empty? || member_local_branch_targets?
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def branch_checkout_preflight_members
|
|
228
|
+
members_with_targets = members.select { |member| member_local_release_config(member) }
|
|
229
|
+
members_with_targets = [family_member] if !config.release_target_branches.empty?
|
|
230
|
+
members_with_targets
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
def branch_checkout_dirty_result(member, dirty_paths)
|
|
234
|
+
CommandResult.new(
|
|
235
|
+
member_name: member.name,
|
|
236
|
+
phase: "release_checkout_preflight",
|
|
237
|
+
command: ["git", "status", "--short"],
|
|
238
|
+
workdir: member.root,
|
|
239
|
+
status: 1,
|
|
240
|
+
success: false,
|
|
241
|
+
stdout: "",
|
|
242
|
+
stderr: branch_checkout_dirty_message(dirty_paths),
|
|
243
|
+
elapsed_seconds: 0.0,
|
|
244
|
+
skipped: false,
|
|
245
|
+
reason: "dirty worktree blocks release target branch checkout"
|
|
246
|
+
)
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
def branch_checkout_dirty_message(dirty_paths)
|
|
250
|
+
[
|
|
251
|
+
"local changes would block release target branch checkout; commit or stash them before running kettle-family",
|
|
252
|
+
*dirty_paths
|
|
253
|
+
].join("\n")
|
|
254
|
+
end
|
|
255
|
+
|
|
207
256
|
def release_member_local_branch_target_results
|
|
208
257
|
runner = command_runner
|
|
209
258
|
results = []
|
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: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -339,10 +339,10 @@ licenses:
|
|
|
339
339
|
- AGPL-3.0-only
|
|
340
340
|
metadata:
|
|
341
341
|
homepage_uri: https://kettle-family.galtzo.com
|
|
342
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.2.
|
|
343
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.2.
|
|
342
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.2.2
|
|
343
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.2.2/CHANGELOG.md
|
|
344
344
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
345
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.2.
|
|
345
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.2.2
|
|
346
346
|
funding_uri: https://github.com/sponsors/pboling
|
|
347
347
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
348
348
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|