kettle-dev 2.3.1 → 2.3.3

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: 9af988c7e6584e30cd1ee4c7a799dbe13a7322e166c95a439fb131d627bb5145
4
- data.tar.gz: 7579a10cf684681b1ae88cb9d9c2f0c0a73a1acd3a7f22f74a35277a03882e2f
3
+ metadata.gz: d0eac779166d21287700da4314c58b8ef4fb814b38584000e6caf5473e6fabef
4
+ data.tar.gz: 7fa37dd397bc4f43e37c6b08988d904ddb4703e2b86232a44e8feca28e32d667
5
5
  SHA512:
6
- metadata.gz: 77ca7f3d5b0135b37e2f817c173cc111561d37c805103d1f34fada9b3f4cc42f8c4e47b9e45e2327436221f67918b25ff80e8f6b86b8fca2e2364318bbec059f
7
- data.tar.gz: 82e064b7576902016b5443f2b30db1b6a2203259d51b865ea3c0eeaec2e3612b00dabcaee453ae74b7f0015066eedc47bcb2803856ba56b95f16b16ae837cfc0
6
+ metadata.gz: 339b4c334661ecdfaebb50b24a0edb90048e25ea64346b4cc2b81c6930db856d667fcc08cbffd1c212989315e23afade77d1423bfebceac2ab8ed78f3cd5d57b
7
+ data.tar.gz: ed9867ce71241eafe10609a48df22ec09df5e610ada01cf52c2c069c6621dd8fde46033dd03cfd1e975d2eab53433e03f232d07d25696c638b7cbaf8e20cc488
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,30 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.3.3] - 2026-07-13
34
+
35
+ - TAG: [v2.3.3][2.3.3t]
36
+ - COVERAGE: 91.62% -- 4276/4667 lines in 36 files
37
+ - BRANCH COVERAGE: 72.80% -- 1678/2305 branches in 36 files
38
+ - 56.88% documented
39
+
40
+ ### Fixed
41
+
42
+ - AST-based version edits now apply Prism byte offsets as byte offsets, avoiding
43
+ corrupted Ruby when non-ASCII content appears before the edited string.
44
+
45
+ ## [2.3.2] - 2026-07-13
46
+
47
+ - TAG: [v2.3.2][2.3.2t]
48
+ - COVERAGE: 91.89% -- 4285/4663 lines in 36 files
49
+ - BRANCH COVERAGE: 73.15% -- 1686/2305 branches in 36 files
50
+ - 57.09% documented
51
+
52
+ ### Fixed
53
+
54
+ - `kettle-bump patch` now finalizes prerelease versions to the matching full
55
+ release instead of rejecting non-numeric prerelease segments.
56
+
33
57
  ## [2.3.1] - 2026-07-10
34
58
 
35
59
  - TAG: [v2.3.1][2.3.1t]
@@ -2442,7 +2466,11 @@ Please file a bug if you notice a violation of semantic versioning.
2442
2466
  - Selecting will run the selected workflow via `act`
2443
2467
  - This may move to its own gem in the future.
2444
2468
 
2445
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.3.1...HEAD
2469
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.3.3...HEAD
2470
+ [2.3.3]: https://github.com/kettle-dev/kettle-dev/compare/v2.3.2...v2.3.3
2471
+ [2.3.3t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.3.3
2472
+ [2.3.2]: https://github.com/kettle-dev/kettle-dev/compare/v2.3.1...v2.3.2
2473
+ [2.3.2t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.3.2
2446
2474
  [2.3.1]: https://github.com/kettle-dev/kettle-dev/compare/v2.3.0...v2.3.1
2447
2475
  [2.3.1t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.3.1
2448
2476
  [2.3.0]: https://github.com/kettle-dev/kettle-dev/compare/v2.2.25...v2.3.0
data/README.md CHANGED
@@ -882,7 +882,7 @@ Thanks for RTFM. ☺️
882
882
  [📌gitmoji]: https://gitmoji.dev
883
883
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
884
884
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
885
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.658-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
885
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.667-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
886
886
  [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
887
887
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
888
888
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Dev
5
5
  module Version
6
- VERSION = "2.3.1"
6
+ VERSION = "2.3.3"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
@@ -27,6 +27,8 @@ module Kettle
27
27
 
28
28
  version = Gem::Version.new(current_version)
29
29
  segments = version.segments
30
+ return released_patch_version(segments) if type == "patch" && segments.any? { |segment| !segment.is_a?(Integer) }
31
+
30
32
  unless segments.all? { |segment| segment.is_a?(Integer) }
31
33
  raise Kettle::Dev::Error, "cannot #{type}-bump non-numeric version #{current_version.inspect}"
32
34
  end
@@ -42,6 +44,12 @@ module Kettle
42
44
  end
43
45
  end
44
46
 
47
+ def released_patch_version(segments)
48
+ release_segments = segments.take_while { |segment| segment.is_a?(Integer) }
49
+ major, minor, patch = (release_segments + [0, 0, 0])[0, 3]
50
+ "#{major}.#{minor}.#{patch}"
51
+ end
52
+
45
53
  def bumped_prerelease_version(current_version)
46
54
  version = Gem::Version.new(current_version)
47
55
  segments = version.segments
@@ -119,11 +127,22 @@ module Kettle
119
127
  edits.group_by { |edit| edit.fetch(:path) }.each_value do |file_edits|
120
128
  source = file_edits.first.fetch(:source)
121
129
  file_edits.sort_by { |edit| -edit.fetch(:start_offset) }.each do |edit|
122
- source[edit.fetch(:start_offset)...edit.fetch(:end_offset)] = edit.fetch(:replacement)
130
+ source = replace_byte_range(
131
+ source,
132
+ edit.fetch(:start_offset),
133
+ edit.fetch(:end_offset),
134
+ edit.fetch(:replacement)
135
+ )
123
136
  end
124
137
  File.write(file_edits.first.fetch(:path), source)
125
138
  end
126
139
  end
140
+
141
+ def replace_byte_range(source, start_offset, end_offset, replacement)
142
+ before = source.byteslice(0, start_offset) || +""
143
+ after = source.byteslice(end_offset, source.bytesize - end_offset) || +""
144
+ "#{before}#{replacement}#{after}"
145
+ end
127
146
  end
128
147
 
129
148
  def initialize(root:, target_version:, current_version: nil, from_version: nil)
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.3.1
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -377,10 +377,10 @@ licenses:
377
377
  - AGPL-3.0-only
378
378
  metadata:
379
379
  homepage_uri: https://kettle-dev.galtzo.com
380
- source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.3.1
381
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.3.1/CHANGELOG.md
380
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.3.3
381
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.3.3/CHANGELOG.md
382
382
  bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
383
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.3.1
383
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.3.3
384
384
  funding_uri: https://github.com/sponsors/pboling
385
385
  wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
386
386
  news_uri: https://www.railsbling.com/tags/kettle-dev
metadata.gz.sig CHANGED
Binary file