kettle-family 0.1.17 → 0.1.18
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 +21 -1
- data/README.md +1 -1
- data/lib/kettle/family/cli.rb +6 -0
- data/lib/kettle/family/command_runner.rb +23 -4
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +6 -4
- 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: 10fbba264a541a5e75a232b97eaeb6345ca8d39e4890cfbdd94b8e6e8e603b9c
|
|
4
|
+
data.tar.gz: '09e74048d1d9a5bb5bb0bdcad08d501f3aee4d9d0a35902b3e6eeabbb9bd61c0'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c531f29f32761826c0898234853805f0af313a151232fde19d851e812a8255fd9543515e4142ded8bc2e50146a3887fe950ed1c3de77432f688be76f5809fa2a
|
|
7
|
+
data.tar.gz: de6ea714b9b25f9339b5748b76de0d035b35a32d4fd33f9fd643ab518f0f4e9979d0be9d9267b56470f4fd0ca9abf99ea6df99de67e11468eb010085ba0e6ff5
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,24 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [0.1.18] - 2026-06-25
|
|
34
|
+
|
|
35
|
+
- TAG: [v0.1.18][0.1.18t]
|
|
36
|
+
- COVERAGE: 94.72% -- 1524/1609 lines in 21 files
|
|
37
|
+
- BRANCH COVERAGE: 76.14% -- 536/704 branches in 21 files
|
|
38
|
+
- 39.63% documented
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- `kettle-family release` now accepts `--accept` / `--no-accept` to control
|
|
43
|
+
whether interactive confirmation prompts are answered automatically.
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- Interactive release commands now answer `[y/N]` confirmation prompts before
|
|
48
|
+
writing cached PEM passphrases, preventing confirmation prompts from consuming
|
|
49
|
+
the signing password as input.
|
|
50
|
+
|
|
33
51
|
## [0.1.17] - 2026-06-25
|
|
34
52
|
|
|
35
53
|
- TAG: [v0.1.17][0.1.17t]
|
|
@@ -319,7 +337,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
319
337
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
320
338
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
321
339
|
|
|
322
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.
|
|
340
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.18...HEAD
|
|
341
|
+
[0.1.18]: https://github.com/kettle-dev/kettle-family/compare/v0.1.17...v0.1.18
|
|
342
|
+
[0.1.18t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.18
|
|
323
343
|
[0.1.17]: https://github.com/kettle-dev/kettle-family/compare/v0.1.11...v0.1.17
|
|
324
344
|
[0.1.17t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.17
|
|
325
345
|
[0.1.12]: https://github.com/kettle-dev/kettle-family/compare/v0.1.11...v0.1.12
|
data/README.md
CHANGED
|
@@ -571,7 +571,7 @@ Thanks for RTFM. ☺️
|
|
|
571
571
|
[📌gitmoji]: https://gitmoji.dev
|
|
572
572
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
573
573
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
574
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-1.
|
|
574
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-1.609-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
575
575
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
576
576
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
577
577
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/lib/kettle/family/cli.rb
CHANGED
|
@@ -93,6 +93,8 @@ module Kettle
|
|
|
93
93
|
--local-ci Pass --local-ci through to kettle-release commands
|
|
94
94
|
--continue-ci-failures
|
|
95
95
|
Set K_RELEASE_CI_CONTINUE=true for release commands
|
|
96
|
+
--accept Answer yes to confirmation prompts in interactive commands (default)
|
|
97
|
+
--no-accept Wait for user input at confirmation prompts
|
|
96
98
|
--tag Add release tag phase
|
|
97
99
|
--push Add release push phase
|
|
98
100
|
--commit Allow each templated member's kettle-jem run to commit (default)
|
|
@@ -122,6 +124,7 @@ module Kettle
|
|
|
122
124
|
release_start_step: nil,
|
|
123
125
|
release_local_ci: false,
|
|
124
126
|
release_continue_ci_failures: false,
|
|
127
|
+
accept: true,
|
|
125
128
|
tag: false,
|
|
126
129
|
push: false,
|
|
127
130
|
commit: true,
|
|
@@ -147,6 +150,8 @@ module Kettle
|
|
|
147
150
|
parser.on("--start-step N", Integer) { |value| options[:release_start_step] = value }
|
|
148
151
|
parser.on("--local-ci") { options[:release_local_ci] = true }
|
|
149
152
|
parser.on("--continue-ci-failures") { options[:release_continue_ci_failures] = true }
|
|
153
|
+
parser.on("--accept") { options[:accept] = true }
|
|
154
|
+
parser.on("--no-accept") { options[:accept] = false }
|
|
150
155
|
parser.on("--tag") { options[:tag] = true }
|
|
151
156
|
parser.on("--push") { options[:push] = true }
|
|
152
157
|
parser.on("--commit") { options[:commit] = true }
|
|
@@ -212,6 +217,7 @@ module Kettle
|
|
|
212
217
|
config: config,
|
|
213
218
|
members: members,
|
|
214
219
|
execute: options[:execute],
|
|
220
|
+
accept: options[:accept],
|
|
215
221
|
commit: options[:commit],
|
|
216
222
|
allow_dirty: options[:allow_dirty],
|
|
217
223
|
publish: options[:publish],
|
|
@@ -5,8 +5,9 @@ require "open3"
|
|
|
5
5
|
module Kettle
|
|
6
6
|
module Family
|
|
7
7
|
class CommandRunner
|
|
8
|
-
def initialize(execute: false, gem_signing_password: nil)
|
|
8
|
+
def initialize(execute: false, accept: true, gem_signing_password: nil)
|
|
9
9
|
@execute = execute
|
|
10
|
+
@accept = accept
|
|
10
11
|
@gem_signing_password = gem_signing_password
|
|
11
12
|
end
|
|
12
13
|
|
|
@@ -41,7 +42,7 @@ module Kettle
|
|
|
41
42
|
|
|
42
43
|
private
|
|
43
44
|
|
|
44
|
-
attr_reader :execute, :gem_signing_password
|
|
45
|
+
attr_reader :execute, :accept, :gem_signing_password
|
|
45
46
|
|
|
46
47
|
def run_interactive(env:, argv:, chdir:)
|
|
47
48
|
return run_interactive_pty(env: env, argv: argv, chdir: chdir) if pty_available?
|
|
@@ -63,7 +64,7 @@ module Kettle
|
|
|
63
64
|
chunk = output.readpartial(1024)
|
|
64
65
|
stdout << chunk
|
|
65
66
|
$stdout.print(chunk)
|
|
66
|
-
|
|
67
|
+
handle_interactive_prompt(input, chunk)
|
|
67
68
|
else
|
|
68
69
|
input.write($stdin.readpartial(1024))
|
|
69
70
|
end
|
|
@@ -108,7 +109,7 @@ module Kettle
|
|
|
108
109
|
captured_stderr << chunk
|
|
109
110
|
$stderr.print(chunk)
|
|
110
111
|
end
|
|
111
|
-
|
|
112
|
+
handle_interactive_prompt(input, chunk)
|
|
112
113
|
rescue EOFError
|
|
113
114
|
readers.delete(reader)
|
|
114
115
|
end
|
|
@@ -129,6 +130,24 @@ module Kettle
|
|
|
129
130
|
input.flush
|
|
130
131
|
end
|
|
131
132
|
|
|
133
|
+
def handle_interactive_prompt(input, chunk)
|
|
134
|
+
if accept_confirmation_prompt?(chunk)
|
|
135
|
+
write_accept_response(input) if accept
|
|
136
|
+
return
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
write_signing_password(input, chunk)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def write_accept_response(input)
|
|
143
|
+
input.write("y\n")
|
|
144
|
+
input.flush
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def accept_confirmation_prompt?(chunk)
|
|
148
|
+
chunk.match?(/\[[Yy]\/[Nn]\]\s*:?/)
|
|
149
|
+
end
|
|
150
|
+
|
|
132
151
|
def signing_password_prompt?(chunk)
|
|
133
152
|
chunk.match?(/pass(?:\s|-)?phrase|PEM password|private key password/i)
|
|
134
153
|
end
|
|
@@ -21,11 +21,12 @@ module Kettle
|
|
|
21
21
|
"up" => [["pull", %w[git pull --rebase]], ["push", %w[git push]]]
|
|
22
22
|
}.freeze
|
|
23
23
|
|
|
24
|
-
def initialize(command:, config:, members:, execute: false, commit: true, allow_dirty: false, publish: false, push: false, tag: false, start_step: nil, local_ci: false, continue_ci_failures: false, gha_sha_pins_upgrade: "patch", gha_sha_pins_check: false, env_overrides: {}, gem_signing_password: nil)
|
|
24
|
+
def initialize(command:, config:, members:, execute: false, accept: true, commit: true, allow_dirty: false, publish: false, push: false, tag: false, start_step: nil, local_ci: false, continue_ci_failures: false, gha_sha_pins_upgrade: "patch", gha_sha_pins_check: false, env_overrides: {}, gem_signing_password: nil)
|
|
25
25
|
@command = command
|
|
26
26
|
@config = config
|
|
27
27
|
@members = members
|
|
28
28
|
@execute = execute
|
|
29
|
+
@accept = accept
|
|
29
30
|
@commit = commit
|
|
30
31
|
@allow_dirty = allow_dirty
|
|
31
32
|
@publish = publish
|
|
@@ -50,7 +51,7 @@ module Kettle
|
|
|
50
51
|
|
|
51
52
|
private
|
|
52
53
|
|
|
53
|
-
attr_reader :command, :config, :members, :execute, :commit, :allow_dirty, :publish, :push, :tag, :start_step, :local_ci, :continue_ci_failures, :gha_sha_pins_upgrade, :gha_sha_pins_check, :env_overrides
|
|
54
|
+
attr_reader :command, :config, :members, :execute, :accept, :commit, :allow_dirty, :publish, :push, :tag, :start_step, :local_ci, :continue_ci_failures, :gha_sha_pins_upgrade, :gha_sha_pins_check, :env_overrides
|
|
54
55
|
|
|
55
56
|
def current_branch_results(workflow_members)
|
|
56
57
|
return check_results(workflow_members) if command == "check"
|
|
@@ -61,7 +62,7 @@ module Kettle
|
|
|
61
62
|
end
|
|
62
63
|
|
|
63
64
|
def member_workflow_results(workflow_members)
|
|
64
|
-
runner = CommandRunner.new(execute: execute)
|
|
65
|
+
runner = CommandRunner.new(execute: execute, accept: accept)
|
|
65
66
|
workflow_members.each_with_object([]) do |member, memo|
|
|
66
67
|
if command == "template" && config.normalize_lockfiles?
|
|
67
68
|
normalize_lockfiles(member: member, runner: runner, memo: memo, phase: "prepare_lockfiles")
|
|
@@ -139,6 +140,7 @@ module Kettle
|
|
|
139
140
|
config: member_config,
|
|
140
141
|
members: [member],
|
|
141
142
|
execute: execute,
|
|
143
|
+
accept: accept,
|
|
142
144
|
commit: commit,
|
|
143
145
|
allow_dirty: allow_dirty,
|
|
144
146
|
publish: publish,
|
|
@@ -203,7 +205,7 @@ module Kettle
|
|
|
203
205
|
end
|
|
204
206
|
|
|
205
207
|
def command_runner
|
|
206
|
-
CommandRunner.new(execute: execute, gem_signing_password: @gem_signing_password)
|
|
208
|
+
CommandRunner.new(execute: execute, accept: accept, gem_signing_password: @gem_signing_password)
|
|
207
209
|
end
|
|
208
210
|
|
|
209
211
|
def rediscovered_selected_members(selected_names)
|
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.1.
|
|
4
|
+
version: 0.1.18
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -310,10 +310,10 @@ licenses:
|
|
|
310
310
|
- AGPL-3.0-only
|
|
311
311
|
metadata:
|
|
312
312
|
homepage_uri: https://kettle-family.galtzo.com
|
|
313
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.1.
|
|
314
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.
|
|
313
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.1.18
|
|
314
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.18/CHANGELOG.md
|
|
315
315
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
316
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.1.
|
|
316
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.1.18
|
|
317
317
|
funding_uri: https://github.com/sponsors/pboling
|
|
318
318
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
319
319
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|