kettle-dev 2.0.3 → 2.0.5

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: 79a49f87b3b9af1b0aa2cb1b9d8f3b026a923df0ab1164df416a5dc3af72dc42
4
- data.tar.gz: b989207755b131704aec4e5a76e29c1a2e236efbe9fa7717939111d21c475a74
3
+ metadata.gz: 81a506b1bf2188f003f54bfcb7626eb8240603ef203818cc7ed3bf28d6732ca7
4
+ data.tar.gz: 97fa9a80a4f2a85e62ff8b045c6404ed256562166d339bb333742f8a7db796cf
5
5
  SHA512:
6
- metadata.gz: ffd633d7aab286c63bbdbb039621fd0512ce4d4d478b9af5bcb37b7c9202bbab8e7cf4ab41fecb5b6306da2ba2d42bf7f20770066131ac19344655ff3f9c7b58
7
- data.tar.gz: ce2c0ed8704aa2aa0aaa248f0a2269a74ac2fe9e765117cb96e80004a98c20c7420ebddd876d887543895240732c5edf64ad2fc417efdf9cd19bc4ae6390791f
6
+ metadata.gz: 9dc856a6fe6db2294b387870c5e1ce4bdc32c729b80fea98c53ffbbc1d5f0776c4ced4545ecc0db2ba34892afa3a6a8bf4577824c1a4c0c071be2a9255b6a29b
7
+ data.tar.gz: c6793a8ee249cc47ab8793d834b6f218a074456001208a7cfe33353c3bd5b9a6cbcae5b0f6ebd2c26637eff5760421a04a1d499d2b794314c7277e7ec86cbac6
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,6 +28,33 @@ Please file a bug if you notice a violation of semantic versioning.
28
28
 
29
29
  ### Fixed
30
30
 
31
+ ### Security
32
+
33
+ ## [2.0.5] - 2026-05-28
34
+
35
+ - TAG: [v2.0.5][2.0.5t]
36
+ - COVERAGE: 93.46% -- 2972/3180 lines in 25 files
37
+ - BRANCH COVERAGE: 76.94% -- 1208/1570 branches in 25 files
38
+ - 76.40% documented
39
+
40
+ ### Added
41
+
42
+ - Added `appraisal:generate`, which regenerates Appraisal gemfiles inside the
43
+ `Appraisal.root.gemfile` bundle context without resolving appraisal locks.
44
+
45
+ ## [2.0.4] - 2026-05-27
46
+
47
+ - TAG: [v2.0.4][2.0.4t]
48
+ - COVERAGE: 94.42% -- 2944/3118 lines in 24 files
49
+ - BRANCH COVERAGE: 78.22% -- 1203/1538 branches in 24 files
50
+ - 76.40% documented
51
+
52
+ ### Fixed
53
+
54
+ - `kettle-changelog` now refuses to merge Unreleased entries or generated
55
+ metadata into a release section when `version.rb` already matches the latest
56
+ published version for that release line; bump the version before preparing a
57
+ new changelog release.
31
58
  - The `yard` rake spec now reloads the task file directly and uses Ruby
32
59
  2.4-compatible cleanup syntax, fixing order-dependent CI failures across the
33
60
  appraisal matrix.
@@ -36,8 +63,6 @@ Please file a bug if you notice a violation of semantic versioning.
36
63
  - The Rakefile now falls back to a stub `kettle:jem:selftest` task when the
37
64
  installed `kettle-jem` package does not expose rake task installation.
38
65
 
39
- ### Security
40
-
41
66
  ## [2.0.3] - 2026-05-27
42
67
 
43
68
  - TAG: [v2.0.3][2.0.3t]
@@ -1787,7 +1812,11 @@ Please file a bug if you notice a violation of semantic versioning.
1787
1812
  - Selecting will run the selected workflow via `act`
1788
1813
  - This may move to its own gem in the future.
1789
1814
 
1790
- [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.3...HEAD
1815
+ [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.5...HEAD
1816
+ [2.0.5]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.4...v2.0.5
1817
+ [2.0.5t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v2.0.5
1818
+ [2.0.4]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.3...v2.0.4
1819
+ [2.0.4t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v2.0.4
1791
1820
  [2.0.3]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.2...v2.0.3
1792
1821
  [2.0.3t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v2.0.3
1793
1822
  [2.0.2]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.1...v2.0.2
data/README.md CHANGED
@@ -1010,7 +1010,7 @@ Thanks for RTFM. ☺️
1010
1010
  [📌gitmoji]: https://gitmoji.dev
1011
1011
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1012
1012
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1013
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-3.124-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1013
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-3.180-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1014
1014
  [🔐security]: https://github.com/kettle-rb/kettle-dev/blob/main/SECURITY.md
1015
1015
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1016
1016
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -167,7 +167,10 @@ module Kettle
167
167
  end
168
168
 
169
169
  action = if section_exists && latest_target == version
170
- current_release_needs_update?(changelog, version, unreleased_block) ? :update_prepared_release : :reformat_only
170
+ if unreleased_block_has_entries?(unreleased_block)
171
+ abort("Aborting: version.rb (#{version}) matches the latest released version for this release line (#{latest_target}); bump version.rb before moving Unreleased entries into a release section.")
172
+ end
173
+ :reformat_only
171
174
  elsif section_exists
172
175
  :update_prepared_release
173
176
  elsif latest_target == version
@@ -504,28 +507,10 @@ module Kettle
504
507
  out.join
505
508
  end
506
509
 
507
- def current_release_needs_update?(changelog, version, unreleased_block)
508
- return true if unreleased_block_has_entries?(unreleased_block)
509
-
510
- !release_metadata_complete?(release_body_for(changelog, version))
511
- end
512
-
513
510
  def unreleased_block_has_entries?(unreleased_block)
514
511
  !filter_unreleased_sections(unreleased_block.to_s).strip.empty?
515
512
  end
516
513
 
517
- def release_body_for(changelog, version)
518
- pattern = /^## \[#{Regexp.escape(version)}\][^\n]*\n(?<body>.*?)(?=^## \[|\z)/m
519
- changelog.match(pattern)&.[](:body).to_s
520
- end
521
-
522
- def release_metadata_complete?(release_body)
523
- stripped_body = release_body.to_s
524
- stripped_body.match?(/^- COVERAGE: /) &&
525
- stripped_body.match?(/^- BRANCH COVERAGE: /) &&
526
- stripped_body.match?(/^- \d+(?:\.\d+)?%\s+documented$/)
527
- end
528
-
529
514
  def coverage_lines
530
515
  if @strict
531
516
  # Always generate fresh coverage data in strict mode
@@ -31,6 +31,29 @@ begin
31
31
  end
32
32
  end
33
33
 
34
+ desc("Generate Appraisal gemfiles without resolving appraisal locks")
35
+ task("appraisal:generate") do
36
+ bundle = "bundle"
37
+
38
+ run_in_unbundled = proc do
39
+ env = {"BUNDLE_GEMFILE" => "Appraisal.root.gemfile"}
40
+
41
+ # 1) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle install
42
+ ok = system(env, bundle, "install")
43
+ abort("appraisal:generate failed: BUNDLE_GEMFILE=Appraisal.root.gemfile bundle install") unless ok
44
+
45
+ # 2) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal generate
46
+ ok = system(env, bundle, "exec", "appraisal", "generate")
47
+ abort("appraisal:generate failed: BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal generate") unless ok
48
+ end
49
+
50
+ if defined?(Bundler)
51
+ Bundler.with_unbundled_env(&run_in_unbundled)
52
+ else
53
+ run_in_unbundled.call
54
+ end
55
+ end
56
+
34
57
  desc("Update Appraisal gemfiles and run RuboCop Gradual autocorrect")
35
58
  task("appraisal:update") do
36
59
  bundle = "bundle"
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Dev
5
5
  module Version
6
- VERSION = "2.0.3"
6
+ VERSION = "2.0.5"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
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.0.3
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -312,10 +312,10 @@ licenses:
312
312
  - AGPL-3.0-only
313
313
  metadata:
314
314
  homepage_uri: https://kettle-dev.galtzo.com
315
- source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v2.0.3
316
- changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v2.0.3/CHANGELOG.md
315
+ source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v2.0.5
316
+ changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v2.0.5/CHANGELOG.md
317
317
  bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
318
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.0.3
318
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.0.5
319
319
  funding_uri: https://github.com/sponsors/pboling
320
320
  wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
321
321
  news_uri: https://www.railsbling.com/tags/kettle-dev
metadata.gz.sig CHANGED
Binary file