kettle-changelog 1.0.11 → 1.0.13
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 +46 -7
- data/README.md +1 -1
- data/lib/kettle/changelog/cli.rb +37 -4
- data/lib/kettle/changelog/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +8 -8
- 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: 2f00bf5b7d463c4932956ca216e4f568f369544a8f029621d525551a0f4af284
|
|
4
|
+
data.tar.gz: fa2778a1d9b5136eb5882afec786077297b78f42d063a92bc9eb276c53462572
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6163a5299be11fe7dd2811f9f2e640cd90427d5fe84eee371f13cc02adba421ef7513a652a520735514de9140a663994a29f695884c0f87034b3fc465d1bd81f
|
|
7
|
+
data.tar.gz: c371ebf642ce80a10fc95253f2564748205847bc65eef5d0e352e815114fe10badfbb0301dd82fd6862ec522015212980c6db2e390f436ab0ef25625170e7bd5
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -22,12 +22,6 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
22
22
|
|
|
23
23
|
### Changed
|
|
24
24
|
|
|
25
|
-
- [kc] kettle-jem/prepare: updated 4 project files:
|
|
26
|
-
- dependencies (4)
|
|
27
|
-
|
|
28
|
-
- [kc] kettle-jem/template: updated 1 project file:
|
|
29
|
-
- other (1)
|
|
30
|
-
|
|
31
25
|
### Deprecated
|
|
32
26
|
|
|
33
27
|
### Removed
|
|
@@ -36,6 +30,45 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
36
30
|
|
|
37
31
|
### Security
|
|
38
32
|
|
|
33
|
+
## [1.0.13] - 2026-10-18
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.0.13][1.0.13t]
|
|
36
|
+
- COVERAGE: 93.53% -- 1157/1237 lines in 6 files
|
|
37
|
+
- BRANCH COVERAGE: 77.55% -- 411/530 branches in 6 files
|
|
38
|
+
- 37.84% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Coverage failure reports point at the kettle-test log: when the fresh-coverage kettle-test run fails, the raised error names the newest tmp/kettle-test/turbo_tests2-*.log and its rspec summary (N examples, M failures) instead of only the exit status.
|
|
43
|
+
|
|
44
|
+
## [1.0.12] - 2026-10-16
|
|
45
|
+
|
|
46
|
+
- TAG: [v1.0.12][1.0.12t]
|
|
47
|
+
- COVERAGE: 94.29% -- 1156/1226 lines in 6 files
|
|
48
|
+
- BRANCH COVERAGE: 78.14% -- 411/526 branches in 6 files
|
|
49
|
+
- 37.84% documented
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- --backfill-released-version now builds the compare link from the latest older release section instead of the repository initial commit when an earlier section exists
|
|
54
|
+
|
|
55
|
+
- update-prep folding real Unreleased entries into a backfilled placeholder section now replaces the historical-notes placeholder instead of merging real entries alongside it
|
|
56
|
+
|
|
57
|
+
## [1.0.11] - 2026-10-15
|
|
58
|
+
|
|
59
|
+
- TAG: [v1.0.11][1.0.11t]
|
|
60
|
+
- COVERAGE: 94.26% -- 1149/1219 lines in 6 files
|
|
61
|
+
- BRANCH COVERAGE: 77.78% -- 406/522 branches in 6 files
|
|
62
|
+
- 38.89% documented
|
|
63
|
+
|
|
64
|
+
### Changed
|
|
65
|
+
|
|
66
|
+
- [kc] kettle-jem/prepare: updated 4 project files:
|
|
67
|
+
- dependencies (4)
|
|
68
|
+
|
|
69
|
+
- [kc] kettle-jem/template: updated 1 project file:
|
|
70
|
+
- other (1)
|
|
71
|
+
|
|
39
72
|
## [1.0.10] - 2026-10-14
|
|
40
73
|
|
|
41
74
|
- TAG: [v1.0.10][1.0.10t]
|
|
@@ -286,7 +319,13 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
286
319
|
|
|
287
320
|
- Initial release
|
|
288
321
|
|
|
289
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-changelog/compare/v1.0.
|
|
322
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-changelog/compare/v1.0.13...HEAD
|
|
323
|
+
[1.0.13]: https://github.com/kettle-dev/kettle-changelog/compare/v1.0.12...v1.0.13
|
|
324
|
+
[1.0.13t]: https://github.com/kettle-dev/kettle-changelog/releases/tag/v1.0.13
|
|
325
|
+
[1.0.12]: https://github.com/kettle-dev/kettle-changelog/compare/v1.0.11...v1.0.12
|
|
326
|
+
[1.0.12t]: https://github.com/kettle-dev/kettle-changelog/releases/tag/v1.0.12
|
|
327
|
+
[1.0.11]: https://github.com/kettle-dev/kettle-changelog/compare/v1.0.10...v1.0.11
|
|
328
|
+
[1.0.11t]: https://github.com/kettle-dev/kettle-changelog/releases/tag/v1.0.11
|
|
290
329
|
[1.0.10]: https://github.com/kettle-dev/kettle-changelog/compare/v1.0.9...v1.0.10
|
|
291
330
|
[1.0.10t]: https://github.com/kettle-dev/kettle-changelog/releases/tag/v1.0.10
|
|
292
331
|
[1.0.9]: https://github.com/kettle-dev/kettle-changelog/compare/v1.0.8...v1.0.9
|
data/README.md
CHANGED
|
@@ -417,7 +417,7 @@ Thanks for RTFM. ☺️
|
|
|
417
417
|
[📌gitmoji]: https://gitmoji.dev
|
|
418
418
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
419
419
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
420
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-1.
|
|
420
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-1.237-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
421
421
|
[🔐security]: https://github.com/kettle-dev/kettle-changelog/blob/main/SECURITY.md
|
|
422
422
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
423
423
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/lib/kettle/changelog/cli.rb
CHANGED
|
@@ -17,6 +17,7 @@ module Kettle
|
|
|
17
17
|
# includes coverage and YARD stats, and updates link references.
|
|
18
18
|
class CLI
|
|
19
19
|
UNRELEASED_SECTION_HEADING = "[Unreleased]:"
|
|
20
|
+
HISTORICAL_PLACEHOLDER_LINE = "- Historical release notes are unavailable in this changelog."
|
|
20
21
|
CHANGELOG_VERSION_PATTERN = /\d+\.\d+\.\d+(?:[.-][0-9A-Za-z]+)*/
|
|
21
22
|
CHANGELOG_VERSION_PATTERN_SOURCE = CHANGELOG_VERSION_PATTERN.source
|
|
22
23
|
COVERAGE_CHILD_ENV_PREFIXES = %w[K_CHANGELOG_].freeze
|
|
@@ -484,7 +485,7 @@ module Kettle
|
|
|
484
485
|
end
|
|
485
486
|
finish = [next_heading&.fetch(:start), footer, lines.length].compact.min
|
|
486
487
|
body = lines[heading.fetch(:start)...finish].join
|
|
487
|
-
heading.merge(finish: finish, placeholder: body.include?(
|
|
488
|
+
heading.merge(finish: finish, placeholder: body.include?(HISTORICAL_PLACEHOLDER_LINE))
|
|
488
489
|
end
|
|
489
490
|
end
|
|
490
491
|
|
|
@@ -505,11 +506,16 @@ module Kettle
|
|
|
505
506
|
|
|
506
507
|
### Changed
|
|
507
508
|
|
|
508
|
-
|
|
509
|
+
#{HISTORICAL_PLACEHOLDER_LINE}
|
|
509
510
|
|
|
510
511
|
MD
|
|
512
|
+
# Compare from the latest existing section when it is older than the
|
|
513
|
+
# backfilled version; the initial-commit base is only right when no
|
|
514
|
+
# earlier release section exists.
|
|
515
|
+
previous = detect_previous_version(after.to_s)
|
|
516
|
+
previous = nil if previous && Gem::Version.new(previous) >= Gem::Version.new(version)
|
|
511
517
|
updated = before + "## [Unreleased]\n" + unreleased_block.rstrip + "\n\n" + section + after.to_s
|
|
512
|
-
updated = update_link_refs(updated, owner, repo,
|
|
518
|
+
updated = update_link_refs(updated, owner, repo, previous, version)
|
|
513
519
|
updated = normalize_heading_spacing(updated).rstrip + "\n"
|
|
514
520
|
File.write(@changelog_path, updated)
|
|
515
521
|
emit_changelog_event(action: "backfill", status: "ok", version: version, plan: "historical_release")
|
|
@@ -707,6 +713,9 @@ module Kettle
|
|
|
707
713
|
incoming = filter_unreleased_sections(unreleased_block)
|
|
708
714
|
return existing if incoming.strip.empty?
|
|
709
715
|
return incoming if existing.strip.empty?
|
|
716
|
+
# A backfilled section holding only the historical-notes placeholder is
|
|
717
|
+
# documentation of absence; once real entries arrive they replace it.
|
|
718
|
+
return incoming if placeholder_only_release_body?(existing)
|
|
710
719
|
|
|
711
720
|
leading, sections = split_h3_sections(existing)
|
|
712
721
|
_incoming_leading, incoming_sections = split_h3_sections(incoming)
|
|
@@ -726,6 +735,11 @@ module Kettle
|
|
|
726
735
|
KeyedEntryUpserter.collapse_project_file_updates(merged)
|
|
727
736
|
end
|
|
728
737
|
|
|
738
|
+
def placeholder_only_release_body?(body)
|
|
739
|
+
remaining = body.lines.reject { |line| line.strip == HISTORICAL_PLACEHOLDER_LINE }
|
|
740
|
+
remaining.none? { |line| line.strip.start_with?("- ") }
|
|
741
|
+
end
|
|
742
|
+
|
|
729
743
|
def strip_release_metadata(release_body)
|
|
730
744
|
lines = release_body.lines
|
|
731
745
|
while lines.any? && lines.first.strip.empty?
|
|
@@ -836,7 +850,7 @@ module Kettle
|
|
|
836
850
|
|
|
837
851
|
unless success
|
|
838
852
|
emit_changelog_event(action: "coverage", status: "failed", command: "bundle exec kettle-test", root: Kettle::Dev.display_path(@coverage_root), reason: "exit status #{$?.exitstatus || "unknown"}")
|
|
839
|
-
raise "bundle exec kettle-test failed with exit status #{$?.exitstatus || "unknown"}"
|
|
853
|
+
raise "bundle exec kettle-test failed with exit status #{$?.exitstatus || "unknown"}#{coverage_failure_diagnostics}"
|
|
840
854
|
end
|
|
841
855
|
|
|
842
856
|
puts "Coverage generation complete."
|
|
@@ -924,6 +938,25 @@ module Kettle
|
|
|
924
938
|
)
|
|
925
939
|
end
|
|
926
940
|
|
|
941
|
+
# Best-effort diagnostics for a failed coverage test run: kettle-test
|
|
942
|
+
# writes a full turbo_tests2 log under tmp/kettle-test; surface the
|
|
943
|
+
# newest one and its rspec summary so the failure presents with the
|
|
944
|
+
# spec context instead of only an exit status.
|
|
945
|
+
def coverage_failure_diagnostics
|
|
946
|
+
log_dir = File.join(@coverage_root.to_s, "tmp", "kettle-test")
|
|
947
|
+
logs = Dir.glob(File.join(log_dir, "turbo_tests2-*.log")).sort_by { |path| File.mtime(path) }
|
|
948
|
+
return "" if logs.empty?
|
|
949
|
+
|
|
950
|
+
latest = logs.last
|
|
951
|
+
summary = File.readlines(latest).reverse.find { |line| line.match?(/^\d+ examples?, \d+ failures/) }
|
|
952
|
+
diag = " (full log: #{Kettle::Dev.display_path(latest)}"
|
|
953
|
+
diag << "; #{summary.strip}" if summary
|
|
954
|
+
diag << ")"
|
|
955
|
+
diag
|
|
956
|
+
rescue => e
|
|
957
|
+
" (could not read kettle-test logs: #{e.class}: #{e.message})"
|
|
958
|
+
end
|
|
959
|
+
|
|
927
960
|
# The coverage child runs against the Appraisal-generated coverage
|
|
928
961
|
# gemfile (gemfiles/coverage.gemfile) when present, and Bundler uses the
|
|
929
962
|
# lockfile sitting next to it. That lockfile is a local build artifact
|
|
@@ -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.0.
|
|
8
|
+
VERSION = "1.0.13"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-changelog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
version: '3.1'
|
|
67
67
|
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: 3.1.
|
|
69
|
+
version: 3.1.16
|
|
70
70
|
type: :runtime
|
|
71
71
|
prerelease: false
|
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -76,7 +76,7 @@ dependencies:
|
|
|
76
76
|
version: '3.1'
|
|
77
77
|
- - ">="
|
|
78
78
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: 3.1.
|
|
79
|
+
version: 3.1.16
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: version_gem
|
|
82
82
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -194,7 +194,7 @@ dependencies:
|
|
|
194
194
|
version: '2.0'
|
|
195
195
|
- - ">="
|
|
196
196
|
- !ruby/object:Gem::Version
|
|
197
|
-
version: 2.0.
|
|
197
|
+
version: 2.0.27
|
|
198
198
|
type: :development
|
|
199
199
|
prerelease: false
|
|
200
200
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -204,7 +204,7 @@ dependencies:
|
|
|
204
204
|
version: '2.0'
|
|
205
205
|
- - ">="
|
|
206
206
|
- !ruby/object:Gem::Version
|
|
207
|
-
version: 2.0.
|
|
207
|
+
version: 2.0.27
|
|
208
208
|
- !ruby/object:Gem::Dependency
|
|
209
209
|
name: turbo_tests2
|
|
210
210
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -304,10 +304,10 @@ licenses:
|
|
|
304
304
|
- AGPL-3.0-only
|
|
305
305
|
metadata:
|
|
306
306
|
homepage_uri: https://kettle-changelog.galtzo.com
|
|
307
|
-
source_code_uri: https://github.com/kettle-dev/kettle-changelog/tree/v1.0.
|
|
308
|
-
changelog_uri: https://github.com/kettle-dev/kettle-changelog/blob/v1.0.
|
|
307
|
+
source_code_uri: https://github.com/kettle-dev/kettle-changelog/tree/v1.0.13
|
|
308
|
+
changelog_uri: https://github.com/kettle-dev/kettle-changelog/blob/v1.0.13/CHANGELOG.md
|
|
309
309
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-changelog/issues
|
|
310
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-changelog/1.0.
|
|
310
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-changelog/1.0.13
|
|
311
311
|
funding_uri: https://github.com/sponsors/pboling
|
|
312
312
|
wiki_uri: https://github.com/kettle-dev/kettle-changelog/wiki
|
|
313
313
|
news_uri: https://www.railsbling.com/tags/kettle-changelog
|
metadata.gz.sig
CHANGED
|
Binary file
|