kettle-dev 2.2.5 → 2.2.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba33ed9512e4bc65a82886c163c0c01c3b8c59895326fb64c64b01c97fbbbf77
4
- data.tar.gz: 9c14bb68844fd3c46315215b6e60a9f35b3ebd9c416a8fad96552e361e061f30
3
+ metadata.gz: b8c22a00d9dde1e8574e1b8018fcf356b683c5a0c558b304bfac6d4b307d2de1
4
+ data.tar.gz: 69b132d5faa7e4d07f52344491295fb349e1453b2aa43b2de2ae25fbff21a9a2
5
5
  SHA512:
6
- metadata.gz: fd4cb6930f617bcbc033d1366a69a0f11911b6293145e37a30d149ecb7a3b54fc2c2cda287294105ca4a5d1b9598765318a9291e5999bafefe6a066be27b1ecb
7
- data.tar.gz: 9cf023ac4edeb2d13bb063e62f5fb73b61405e3e7d12e63b5350de1dab920ff5fa8a9bb3425f76648e4fa8bc1254392d1fb0a7b7dbfb13603cf8dc77415ad2d3
6
+ metadata.gz: 0f0c9b87d7bc0cf30712c3e6cbbedabd66d6af631ed39586fe7853f78970b3b8ea80e18c78130394c323f3d09d61cf7b5c39d9c1927ed71fe9fb30a3e1c7453d
7
+ data.tar.gz: 7eb506783c68f81ac54ae37b54d4b415d996f1a2f50ce112c2733cd0726ca55088b3875c281743aa8eed389243d4049ca01f07f2a0211cc99b4f462ff17a4c5e
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,21 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.2.6] - 2026-06-13
34
+
35
+ - TAG: [v2.2.6][2.2.6t]
36
+ - COVERAGE: 92.27% -- 3833/4154 lines in 28 files
37
+ - BRANCH COVERAGE: 73.51% -- 1518/2065 branches in 28 files
38
+ - 66.67% documented
39
+
40
+ ### Added
41
+
42
+ #### Changelog
43
+
44
+ - Added `kettle-changelog --pending-release`, a non-mutating query that exits
45
+ successfully when `CHANGELOG.md` has unreleased entries or its most recent
46
+ release section has not been published yet.
47
+
33
48
  ## [2.2.5] - 2026-06-13
34
49
 
35
50
  - TAG: [v2.2.5][2.2.5t]
@@ -2060,7 +2075,9 @@ Please file a bug if you notice a violation of semantic versioning.
2060
2075
  - Selecting will run the selected workflow via `act`
2061
2076
  - This may move to its own gem in the future.
2062
2077
 
2063
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.5...HEAD
2078
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.6...HEAD
2079
+ [2.2.6]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.5...v2.2.6
2080
+ [2.2.6t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.6
2064
2081
  [2.2.5]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.4...v2.2.5
2065
2082
  [2.2.5t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.2.5
2066
2083
  [2.2.4]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.3...v2.2.4
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.137-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
857
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.154-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
data/exe/kettle-changelog CHANGED
@@ -51,7 +51,7 @@ end
51
51
  begin
52
52
  if ARGV.include?("-h") || ARGV.include?("--help")
53
53
  puts <<~USAGE
54
- Usage: kettle-changelog [--update-prep] [--no-strict] [--no-coverage-threshold]
54
+ Usage: kettle-changelog [--update-prep] [--pending-release] [--no-strict] [--no-coverage-threshold]
55
55
 
56
56
  Detects the current version from lib/**/version.rb, the latest live release, and
57
57
  the most recent CHANGELOG.md release section, then prompts to confirm the selected plan:
@@ -62,6 +62,7 @@ begin
62
62
 
63
63
  Options:
64
64
  --update-prep Force updating the most recent prepared release section in place
65
+ --pending-release Query whether the changelog has release work pending; exits 0 for yes, 1 for no
65
66
  --no-strict Allow missing coverage and yard data (warnings only, no errors)
66
67
  --no-coverage-threshold Generate coverage without hard-failing below configured thresholds
67
68
 
@@ -89,11 +90,19 @@ end
89
90
  begin
90
91
  # Determine if strict mode is enabled (default: true)
91
92
  strict_mode = !ARGV.include?("--no-strict") && ENV.fetch("K_CHANGELOG_STRICT", "true").downcase != "false"
92
- update_prep = ARGV.include?("--update-prep")
93
+ update_prep = ARGV.delete("--update-prep")
94
+ pending_release_query = ARGV.delete("--pending-release")
93
95
  coverage_threshold_disabled = ARGV.include?("--no-coverage-threshold") || ARGV.include?("--no-coverage-thresholds")
94
96
  coverage_hard = !coverage_threshold_disabled && ENV.fetch("K_CHANGELOG_COVERAGE_HARD", "true").downcase != "false"
95
97
 
96
- Kettle::Dev::ChangelogCLI.new(strict: strict_mode, enforce_coverage_thresholds: coverage_hard, update_prep: update_prep).run
98
+ cli = Kettle::Dev::ChangelogCLI.new(strict: strict_mode, enforce_coverage_thresholds: coverage_hard, update_prep: update_prep)
99
+ if pending_release_query
100
+ status = cli.pending_release_status
101
+ puts status.fetch(:pending) ? "true" : "false"
102
+ exit(status.fetch(:pending) ? 0 : 1)
103
+ end
104
+
105
+ cli.run
97
106
  rescue LoadError => e
98
107
  warn("#{script_basename}: could not load dependency: #{e.class}: #{e.message}")
99
108
  warn(e.backtrace.join("\n")) if ENV["DEBUG"]
@@ -135,6 +135,41 @@ module Kettle
135
135
  puts "CHANGELOG.md updated with v#{version} section."
136
136
  end
137
137
 
138
+ def pending_release_status
139
+ changelog = File.read(@changelog_path)
140
+ unreleased_block, _before, after = extract_unreleased(changelog)
141
+ unreleased_entries = unreleased_block_has_entries?(unreleased_block)
142
+ latest_changelog_version = detect_previous_version(after.to_s)
143
+ gem_name = nil
144
+ latest_overall = nil
145
+ latest_for_series = nil
146
+ latest_target = nil
147
+
148
+ if latest_changelog_version && !unreleased_entries
149
+ begin
150
+ gem_name = detect_gem_name
151
+ latest_overall, latest_for_series = latest_released_versions(gem_name, latest_changelog_version)
152
+ latest_target = latest_release_target(latest_changelog_version, latest_overall, latest_for_series)
153
+ rescue => e
154
+ warn("[kettle-changelog] gem.coop release check failed: #{e.class}: #{e.message}")
155
+ warn("Treating the most recent CHANGELOG.md release section as pending because live release info is unavailable.")
156
+ end
157
+ end
158
+
159
+ prepared_release_pending = !unreleased_entries && !!latest_changelog_version && latest_target != latest_changelog_version
160
+
161
+ {
162
+ pending: unreleased_entries || prepared_release_pending,
163
+ unreleased_entries: unreleased_entries,
164
+ prepared_release_pending: prepared_release_pending,
165
+ latest_changelog_version: latest_changelog_version,
166
+ latest_released: latest_overall,
167
+ latest_released_for_current_series: latest_for_series,
168
+ latest_release_target: latest_target,
169
+ gem_name: gem_name
170
+ }
171
+ end
172
+
138
173
  private
139
174
 
140
175
  def abort(msg)
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Dev
5
5
  module Version
6
- VERSION = "2.2.5"
6
+ VERSION = "2.2.6"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
@@ -15,6 +15,8 @@ module Kettle
15
15
  # Main entry point that updates CHANGELOG.md
16
16
  def run: () -> void
17
17
 
18
+ def pending_release_status: () -> Hash[Symbol, untyped]
19
+
18
20
  private
19
21
 
20
22
  # Abort with error message
@@ -61,4 +63,3 @@ module Kettle
61
63
  end
62
64
  end
63
65
  end
64
-
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.5
4
+ version: 2.2.6
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.5
342
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.2.5/CHANGELOG.md
341
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.2.6
342
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.2.6/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.5
344
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.2.6
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