kettle-dev 2.2.7 → 2.2.9
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 +39 -1
- data/README.md +1 -1
- data/lib/kettle/dev/changelog_cli.rb +33 -2
- data/lib/kettle/dev/gha_sha_pins_cli.rb +7 -5
- data/lib/kettle/dev/pre_release_cli.rb +1 -1
- 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: 3bee699f7f3622c9ae1e63f19cec10ec46a54fe67bd97869169b309bbbcb4bb2
|
|
4
|
+
data.tar.gz: '099d1ddeab902593baa43b8a1fe6de1b899f1ab3bdff9bd6ddba3363d5627b02'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7af3f2c8a7a278416c97a9a006d4a45946c371fcf75d11f9e6dc29b2a29fbc629fa53fb647cc3fbab0b7a18436dd4ecfa1139fcb993f51c89c798c7f3e95a6c0
|
|
7
|
+
data.tar.gz: 78c1377327823ab8ae01bb76f4e318fc501fc0ba8e3c60ffc95dc661a68853a338bc501c9ea631992ea6cc7bf5b31b74865ed3a503770c6c9223e253ece33403
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,40 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [2.2.9] - 2026-06-14
|
|
34
|
+
|
|
35
|
+
- TAG: [v2.2.9][2.2.9t]
|
|
36
|
+
- COVERAGE: 92.57% -- 3863/4173 lines in 28 files
|
|
37
|
+
- BRANCH COVERAGE: 74.00% -- 1534/2073 branches in 28 files
|
|
38
|
+
- 65.38% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- `kettle-gha-sha-pins --check` no longer fails solely because releases outside
|
|
43
|
+
the selected `--upgrade` policy exist, and `kettle-pre-release` now validates
|
|
44
|
+
workflow pins with the inclusive `major` policy used for release readiness.
|
|
45
|
+
|
|
46
|
+
- `kettle-gha-sha-pins --write` now handles major-line adjacent version comments
|
|
47
|
+
such as `# v7` idempotently instead of repeatedly planning the same
|
|
48
|
+
`update_version_comment` change.
|
|
49
|
+
|
|
50
|
+
## [2.2.8] - 2026-06-13
|
|
51
|
+
|
|
52
|
+
- TAG: [v2.2.8][2.2.8t]
|
|
53
|
+
- COVERAGE: 92.40% -- 3854/4171 lines in 28 files
|
|
54
|
+
- BRANCH COVERAGE: 73.37% -- 1521/2073 branches in 28 files
|
|
55
|
+
- 66.02% documented
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
#### Changelog
|
|
60
|
+
|
|
61
|
+
- `kettle-changelog --release-state` now reports a clear family-root hint when
|
|
62
|
+
run outside a single gem instead of raising a missing `CHANGELOG.md` stack
|
|
63
|
+
trace.
|
|
64
|
+
- `kettle-changelog --release-state` now reports a successful no-changelog state
|
|
65
|
+
for individual gems that do not have a `CHANGELOG.md`.
|
|
66
|
+
|
|
33
67
|
## [2.2.7] - 2026-06-13
|
|
34
68
|
|
|
35
69
|
- TAG: [v2.2.7][2.2.7t]
|
|
@@ -2092,7 +2126,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2092
2126
|
- Selecting will run the selected workflow via `act`
|
|
2093
2127
|
- This may move to its own gem in the future.
|
|
2094
2128
|
|
|
2095
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.
|
|
2129
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.9...HEAD
|
|
2130
|
+
[2.2.9]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.8...v2.2.9
|
|
2131
|
+
[2.2.9t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.9
|
|
2132
|
+
[2.2.8]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.7...v2.2.8
|
|
2133
|
+
[2.2.8t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.8
|
|
2096
2134
|
[2.2.7]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.6...v2.2.7
|
|
2097
2135
|
[2.2.7t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.7
|
|
2098
2136
|
[2.2.6]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.5...v2.2.6
|
data/README.md
CHANGED
|
@@ -854,7 +854,7 @@ Thanks for RTFM. ☺️
|
|
|
854
854
|
[📌gitmoji]: https://gitmoji.dev
|
|
855
855
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
856
856
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
857
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.
|
|
857
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.173-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
858
858
|
[🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
|
|
859
859
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
860
860
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -140,12 +140,32 @@ module Kettle
|
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
def release_state
|
|
143
|
+
changelog_present = ensure_changelog_for_release_state!
|
|
144
|
+
version = detect_version
|
|
145
|
+
gem_name = detect_gem_name
|
|
146
|
+
unless changelog_present
|
|
147
|
+
latest_overall, latest_for_series = latest_released_versions(gem_name, version)
|
|
148
|
+
latest_target = latest_release_target(version, latest_overall, latest_for_series)
|
|
149
|
+
return {
|
|
150
|
+
root: @root,
|
|
151
|
+
gem_name: gem_name,
|
|
152
|
+
version: version,
|
|
153
|
+
changelog_present: false,
|
|
154
|
+
pending: false,
|
|
155
|
+
pending_release: false,
|
|
156
|
+
unreleased_entries: false,
|
|
157
|
+
prepared_release_pending: false,
|
|
158
|
+
latest_changelog_version: nil,
|
|
159
|
+
latest_released: latest_overall,
|
|
160
|
+
latest_released_for_current_series: latest_for_series,
|
|
161
|
+
latest_release_target: latest_target
|
|
162
|
+
}
|
|
163
|
+
end
|
|
164
|
+
|
|
143
165
|
changelog = File.read(@changelog_path)
|
|
144
166
|
unreleased_block, _before, after = extract_unreleased(changelog)
|
|
145
167
|
unreleased_entries = unreleased_block_has_entries?(unreleased_block)
|
|
146
168
|
latest_changelog_version = detect_previous_version(after.to_s)
|
|
147
|
-
version = detect_version
|
|
148
|
-
gem_name = detect_gem_name
|
|
149
169
|
release_lookup_version = latest_changelog_version || version
|
|
150
170
|
latest_overall, latest_for_series = latest_released_versions(gem_name, release_lookup_version)
|
|
151
171
|
latest_target = latest_release_target(release_lookup_version, latest_overall, latest_for_series)
|
|
@@ -155,6 +175,7 @@ module Kettle
|
|
|
155
175
|
root: @root,
|
|
156
176
|
gem_name: gem_name,
|
|
157
177
|
version: version,
|
|
178
|
+
changelog_present: true,
|
|
158
179
|
pending: unreleased_entries || prepared_release_pending,
|
|
159
180
|
pending_release: unreleased_entries || prepared_release_pending,
|
|
160
181
|
unreleased_entries: unreleased_entries,
|
|
@@ -196,6 +217,16 @@ module Kettle
|
|
|
196
217
|
Kettle::Dev::ExitAdapter.abort(msg)
|
|
197
218
|
end
|
|
198
219
|
|
|
220
|
+
def ensure_changelog_for_release_state!
|
|
221
|
+
return true if File.file?(@changelog_path)
|
|
222
|
+
|
|
223
|
+
if File.file?(File.join(@root, "Gemfile")) && Dir.glob(File.join(@root, "*", "*.gemspec")).any?
|
|
224
|
+
abort("Could not find CHANGELOG.md in #{Kettle::Dev.display_path(@root)}. This looks like a gem-family root; run `kettle-family release-state` from this directory, or run `kettle-changelog --release-state` from an individual gem directory.")
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
false
|
|
228
|
+
end
|
|
229
|
+
|
|
199
230
|
def yes_no(value)
|
|
200
231
|
value ? "yes" : "no"
|
|
201
232
|
end
|
|
@@ -33,6 +33,8 @@ module Kettle
|
|
|
33
33
|
DEFAULT_UPGRADE_LEVEL = "patch"
|
|
34
34
|
DEFAULT_CACHE_TTL_SECONDS = 24 * 60 * 60
|
|
35
35
|
VALID_UPGRADE_LEVELS = %w[major minor patch].freeze
|
|
36
|
+
VERSION_COMMENT_SUFFIX_RE = /\A\s+#\s*v?(?<version>\d+(?:\.\d+\.\d+(?:[-.]?[0-9A-Za-z.-]+)?)?)/
|
|
37
|
+
VERSION_COMMENT_REPLACEMENT_RE = /\A(?<prefix>\s+#\s*)v?\d+(?:\.\d+\.\d+(?:[-.]?[0-9A-Za-z.-]+)?)?/
|
|
36
38
|
|
|
37
39
|
def initialize(argv, err: $stderr)
|
|
38
40
|
@argv = argv
|
|
@@ -215,7 +217,7 @@ module Kettle
|
|
|
215
217
|
|
|
216
218
|
print_report(state)
|
|
217
219
|
return 2 unless state[:failures].zero?
|
|
218
|
-
return 3 if @options[:check] &&
|
|
220
|
+
return 3 if @options[:check] && state[:updates].positive?
|
|
219
221
|
|
|
220
222
|
0
|
|
221
223
|
end
|
|
@@ -745,8 +747,8 @@ module Kettle
|
|
|
745
747
|
return nil unless token_info[:token] == old_token
|
|
746
748
|
|
|
747
749
|
suffix = raw[token_info[:span]..-1].to_s
|
|
748
|
-
match = suffix.match(
|
|
749
|
-
match && match[
|
|
750
|
+
match = suffix.match(VERSION_COMMENT_SUFFIX_RE)
|
|
751
|
+
match && match[:version]
|
|
750
752
|
end
|
|
751
753
|
|
|
752
754
|
def build_replacement_from_line(text, line, col, old_token, new_ref, new_version = nil)
|
|
@@ -767,7 +769,7 @@ module Kettle
|
|
|
767
769
|
new_scalar = rendered[:quoted]
|
|
768
770
|
if new_version && token_info[:quote] == :plain
|
|
769
771
|
suffix = raw[span..-1].to_s
|
|
770
|
-
comment = suffix.match(
|
|
772
|
+
comment = suffix.match(VERSION_COMMENT_REPLACEMENT_RE)
|
|
771
773
|
if comment
|
|
772
774
|
span += comment[0].length
|
|
773
775
|
new_scalar += "#{comment[:prefix]}v#{new_version}"
|
|
@@ -902,7 +904,7 @@ module Kettle
|
|
|
902
904
|
lines << "- #{change[:path]}:#{change[:line]} #{from} -> #{to} #{change[:reason]}"
|
|
903
905
|
end
|
|
904
906
|
end
|
|
905
|
-
if @options[:check] &&
|
|
907
|
+
if @options[:check] && state[:planned_changes].any?
|
|
906
908
|
lines << ""
|
|
907
909
|
lines << "Recommended fix: kettle-gha-sha-pins --write --upgrade #{@options[:upgrade]}"
|
|
908
910
|
end
|
|
@@ -210,7 +210,7 @@ module Kettle
|
|
|
210
210
|
# @return [void]
|
|
211
211
|
def check_github_actions_sha_pins!
|
|
212
212
|
puts "[kettle-pre-release] Check 1: Validate GitHub Actions SHA pins"
|
|
213
|
-
status = Kettle::Dev::GhaShaPinsCLI.new(["--root", Dir.pwd, "--check"]).run!
|
|
213
|
+
status = Kettle::Dev::GhaShaPinsCLI.new(["--root", Dir.pwd, "--check", "--upgrade", "major"]).run!
|
|
214
214
|
return nil if status.zero?
|
|
215
215
|
|
|
216
216
|
Kettle::Dev::ExitAdapter.abort("GitHub Actions SHA pin validation failed")
|
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.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -338,10 +338,10 @@ licenses:
|
|
|
338
338
|
- AGPL-3.0-only
|
|
339
339
|
metadata:
|
|
340
340
|
homepage_uri: https://kettle-dev.galtzo.com
|
|
341
|
-
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.2.
|
|
342
|
-
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.2.
|
|
341
|
+
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.2.9
|
|
342
|
+
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.2.9/CHANGELOG.md
|
|
343
343
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
|
|
344
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.2.
|
|
344
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.2.9
|
|
345
345
|
funding_uri: https://github.com/sponsors/pboling
|
|
346
346
|
wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
|
|
347
347
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|