kettle-dev 1.1.29 → 1.1.30
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 +15 -1
- data/README.md +1 -1
- data/README.md.example +1 -1
- data/Rakefile.example +1 -1
- data/lib/kettle/dev/changelog_cli.rb +108 -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: 24950b17a0a1ee458861480335acd45429b027a17fd133f72d17f732b403f415
|
4
|
+
data.tar.gz: e68596a5a5055a3858b59e0c8ae8ac92f5e5bdcd5bbd3387755762b736c02f88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 796b0154e4776325371c10d084145fc0e7e137dfc5dd306e11f2f7f2cf15977521530d4ea8871ad68975096e55148df10714dfda6b15a54c1b47afa5dfa35849
|
7
|
+
data.tar.gz: 251c64190d20d26286d36cfbfed62c4d9243b1bd2897feb0f3ba1c438f7bcba479db53370416695f6f04cd083934ab69b8f7576125aca0e0fe7cca7b0e95837b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -30,6 +30,18 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
30
30
|
|
31
31
|
### Security
|
32
32
|
|
33
|
+
## [1.1.30] - 2025-09-21
|
34
|
+
|
35
|
+
- TAG: [v1.1.30][1.1.30t]
|
36
|
+
- COVERAGE: 96.27% -- 3926/4078 lines in 26 files
|
37
|
+
- BRANCH COVERAGE: 80.97% -- 1617/1997 branches in 26 files
|
38
|
+
- 79.12% documented
|
39
|
+
|
40
|
+
### Added
|
41
|
+
|
42
|
+
- kettle-changelog: handle legacy tag-in-release-heading style
|
43
|
+
- convert to tag-in-list style
|
44
|
+
|
33
45
|
## [1.1.29] - 2025-09-21
|
34
46
|
|
35
47
|
- TAG: [v1.1.29][1.1.29t]
|
@@ -1018,7 +1030,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
1018
1030
|
- Selecting will run the selected workflow via `act`
|
1019
1031
|
- This may move to its own gem in the future.
|
1020
1032
|
|
1021
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.
|
1033
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.30...HEAD
|
1034
|
+
[1.1.30]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.29...v1.1.30
|
1035
|
+
[1.1.30t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.30
|
1022
1036
|
[1.1.29]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.28...v1.1.29
|
1023
1037
|
[1.1.29t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.29
|
1024
1038
|
[1.1.28]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.27...v1.1.28
|
data/README.md
CHANGED
@@ -925,7 +925,7 @@ Thanks for RTFM. ☺️
|
|
925
925
|
[📌gitmoji]:https://gitmoji.dev
|
926
926
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
927
927
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
928
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.
|
928
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.078-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
929
929
|
[🔐security]: SECURITY.md
|
930
930
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
931
931
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/README.md.example
CHANGED
@@ -519,7 +519,7 @@ Thanks for RTFM. ☺️
|
|
519
519
|
[📌gitmoji]:https://gitmoji.dev
|
520
520
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
521
521
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
522
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.
|
522
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-4.078-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
523
523
|
[🔐security]: SECURITY.md
|
524
524
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
525
525
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/Rakefile.example
CHANGED
@@ -31,7 +31,8 @@ module Kettle
|
|
31
31
|
print("Proceed with reformat only? [y/N]: ")
|
32
32
|
ans = Kettle::Dev::InputAdapter.gets&.strip&.downcase
|
33
33
|
if ans == "y" || ans == "yes"
|
34
|
-
updated =
|
34
|
+
updated = convert_heading_tag_suffix_to_list(changelog)
|
35
|
+
updated = normalize_heading_spacing(updated)
|
35
36
|
updated = ensure_footer_spacing(updated)
|
36
37
|
updated = updated.rstrip + "\n"
|
37
38
|
File.write(@changelog_path, updated)
|
@@ -99,6 +100,9 @@ module Kettle
|
|
99
100
|
|
100
101
|
updated = update_link_refs(updated, owner, repo, prev_version, version)
|
101
102
|
|
103
|
+
# Transform legacy heading suffix tags into list items under headings
|
104
|
+
updated = convert_heading_tag_suffix_to_list(updated)
|
105
|
+
|
102
106
|
# Normalize spacing around headings to aid Markdown renderers
|
103
107
|
updated = normalize_heading_spacing(updated)
|
104
108
|
|
@@ -262,6 +266,109 @@ module Kettle
|
|
262
266
|
nil
|
263
267
|
end
|
264
268
|
|
269
|
+
# Transform legacy release headings that include a tag suffix, e.g.:
|
270
|
+
# "## [1.2.3] 2022-08-29 ([tag][1.2.3t])"
|
271
|
+
# into a heading followed by a list item:
|
272
|
+
# "## [1.2.3] 2022-08-29\n\n- TAG: [v1.2.3][1.2.3t]"
|
273
|
+
# The method is idempotent: if the next non-blank line already starts with "- TAG:",
|
274
|
+
# no new list item is inserted. Case-insensitive match for [tag].
|
275
|
+
def convert_heading_tag_suffix_to_list(text)
|
276
|
+
lines = text.lines
|
277
|
+
# Build a set of versions that have a tag reference (e.g., "[1.2.3t]: ...").
|
278
|
+
# IMPORTANT: Only scan the footer link-ref block (starting at the [Unreleased]: line)
|
279
|
+
# to avoid accidentally picking up body content.
|
280
|
+
scan_start = lines.index { |l| l.start_with?(UNRELEASED_SECTION_HEADING) } || lines.length
|
281
|
+
t_versions = {}
|
282
|
+
non_t_tag_refs = {}
|
283
|
+
lines[scan_start..-1].to_a.each do |l|
|
284
|
+
# Case A: explicit tag ref key like [1.2.3t]: ...
|
285
|
+
if (m = l.match(/^\[(\d+\.\d+\.\d+)t\]:\s+(\S+)/))
|
286
|
+
t_versions[m[1]] = true
|
287
|
+
next
|
288
|
+
end
|
289
|
+
# Case B: non-t ref that nevertheless points to a tag URL (GitHub or GitLab)
|
290
|
+
if (m2 = l.match(/^\[(\d+\.\d+\.\d+)\]:\s+(\S+)/))
|
291
|
+
url = m2[2]
|
292
|
+
# Accept only when the URL clearly points to a tag for the SAME version
|
293
|
+
# Support both GitHub and GitLab style tag URLs
|
294
|
+
if (murl = url.match(%r{/(?:releases/)?tags?/v(\d+\.\d+\.\d+)}i))
|
295
|
+
version_in_url = murl[1]
|
296
|
+
if version_in_url == m2[1]
|
297
|
+
non_t_tag_refs[m2[1]] = url
|
298
|
+
end
|
299
|
+
end
|
300
|
+
end
|
301
|
+
end
|
302
|
+
# Any version that has either explicit t-ref or a non-t tag-ref is considered tagged
|
303
|
+
tag_ref_versions = {}
|
304
|
+
t_versions.keys.each { |v| tag_ref_versions[v] = true }
|
305
|
+
non_t_tag_refs.keys.each { |v| tag_ref_versions[v] = true }
|
306
|
+
|
307
|
+
out = []
|
308
|
+
i = 0
|
309
|
+
while i < lines.length
|
310
|
+
line = lines[i]
|
311
|
+
# Case 1: Heading contains legacy tag suffix we should convert
|
312
|
+
m = line.match(/^## \[(\d+\.\d+\.\d+)\](.*)\(\[tag\]\[(\d+\.\d+\.\d+)t\]\)\s*$/i)
|
313
|
+
if m && m[1] == m[3]
|
314
|
+
ver = m[1]
|
315
|
+
middle = m[2]
|
316
|
+
new_heading = ("## [#{ver}]" + middle).rstrip + "\n"
|
317
|
+
out << new_heading
|
318
|
+
# If the next non-blank line is already a TAG list item, don't add another
|
319
|
+
k = i + 1
|
320
|
+
k += 1 while k < lines.length && lines[k].strip == ""
|
321
|
+
unless k < lines.length && lines[k].lstrip.start_with?("- TAG:")
|
322
|
+
out << "\n"
|
323
|
+
out << "- TAG: [v#{ver}][#{ver}t]\n"
|
324
|
+
out << "\n"
|
325
|
+
end
|
326
|
+
# Skip any existing blank lines following the heading to avoid duplicate spacing
|
327
|
+
i = k
|
328
|
+
next
|
329
|
+
end
|
330
|
+
|
331
|
+
# Case 2: Heading does NOT contain suffix, but a matching tag ref exists; ensure a TAG list item
|
332
|
+
if (m2 = line.match(/^## \[(\d+\.\d+\.\d+)\](.*)$/))
|
333
|
+
ver2 = m2[1]
|
334
|
+
# Skip Unreleased heading and non-release headings
|
335
|
+
unless ver2.nil?
|
336
|
+
k = i + 1
|
337
|
+
k += 1 while k < lines.length && lines[k].strip == ""
|
338
|
+
needs_tag = tag_ref_versions[ver2] && !(k < lines.length && lines[k].lstrip.start_with?("- TAG:"))
|
339
|
+
if needs_tag
|
340
|
+
out << (line.end_with?("\n") ? line : line + "\n")
|
341
|
+
out << "\n"
|
342
|
+
out << "- TAG: [v#{ver2}][#{ver2}t]\n"
|
343
|
+
out << "\n"
|
344
|
+
i = k
|
345
|
+
next
|
346
|
+
end
|
347
|
+
end
|
348
|
+
end
|
349
|
+
|
350
|
+
# Footer duplication: if we are in the footer block and encounter a non-t tag-ref
|
351
|
+
# without a matching t-ref, emit the t-ref immediately after with the same URL.
|
352
|
+
if i >= scan_start
|
353
|
+
if (mref = line.match(/^\[(\d+\.\d+\.\d+)\]:\s+(\S+)/))
|
354
|
+
vref = mref[1]
|
355
|
+
mref[2]
|
356
|
+
if non_t_tag_refs[vref] && !t_versions[vref]
|
357
|
+
out << line
|
358
|
+
out << "[#{vref}t]: #{non_t_tag_refs[vref]}\n"
|
359
|
+
t_versions[vref] = true
|
360
|
+
i += 1
|
361
|
+
next
|
362
|
+
end
|
363
|
+
end
|
364
|
+
end
|
365
|
+
|
366
|
+
out << line
|
367
|
+
i += 1
|
368
|
+
end
|
369
|
+
out.join
|
370
|
+
end
|
371
|
+
|
265
372
|
def update_link_refs(content, owner, repo, prev_version, new_version)
|
266
373
|
# Convert any GitLab links to GitHub
|
267
374
|
content = content.gsub(%r{https://gitlab\.com/([^/]+)/([^/]+)/-/compare/([^\.]+)\.\.\.([^\s]+)}) do
|
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: 1.1.
|
4
|
+
version: 1.1.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter H. Boling
|
@@ -404,10 +404,10 @@ licenses:
|
|
404
404
|
- MIT
|
405
405
|
metadata:
|
406
406
|
homepage_uri: https://kettle-dev.galtzo.com/
|
407
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.
|
408
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.
|
407
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.30
|
408
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.30/CHANGELOG.md
|
409
409
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
410
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
410
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.30
|
411
411
|
funding_uri: https://github.com/sponsors/pboling
|
412
412
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
413
413
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
Binary file
|