kettle-dev 1.1.17 → 1.1.19
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/.github/workflows/license-eye.yml +40 -0
- data/Appraisals.example +2 -0
- data/CHANGELOG.md +26 -2
- data/README.md +7 -3
- data/README.md.example +9 -5
- data/Rakefile.example +1 -1
- data/kettle-dev.gemspec.example +8 -5
- data/lib/kettle/dev/changelog_cli.rb +4 -0
- data/lib/kettle/dev/tasks/template_task.rb +91 -18
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +5 -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: f7d3c953377dfc1858b5a8469bf30105b01ef83dc7eadabf909dfa0d64160b04
|
4
|
+
data.tar.gz: a2fe2a9480a1f6a8b8ee80228c4d37dd9f3eae46d7a925c8ecc3af6e5b569587
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 414144368ee1dfb6afc667d6c52b87093211647e136ac2f1e3bbe621980d278b987275d8ffa8885531400935a715c7b6eed4ea6eb4a4aaea9890f9c8d1d49b4b
|
7
|
+
data.tar.gz: '049b44a4e3d2add7cac3b44ad29ddfc268ed3b1a7ec2c3e423bb5ea3c06088b74a175805cbe473702cb5c7d94905b233854462f8de2e4936c19c6e5ac8d8501e'
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: Apache SkyWalking Eyes
|
2
|
+
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
|
6
|
+
on:
|
7
|
+
push:
|
8
|
+
branches:
|
9
|
+
- 'main'
|
10
|
+
- '*-stable'
|
11
|
+
tags:
|
12
|
+
- '!*' # Do not execute on tags
|
13
|
+
pull_request:
|
14
|
+
branches:
|
15
|
+
- '*'
|
16
|
+
# Allow manually triggering the workflow.
|
17
|
+
workflow_dispatch:
|
18
|
+
|
19
|
+
# Cancels all previous workflow runs for the same branch that have not yet completed.
|
20
|
+
concurrency:
|
21
|
+
# The concurrency group contains the workflow name and the branch name.
|
22
|
+
group: "${{ github.workflow }}-${{ github.ref }}"
|
23
|
+
cancel-in-progress: true
|
24
|
+
|
25
|
+
jobs:
|
26
|
+
license-check:
|
27
|
+
if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')"
|
28
|
+
runs-on: ubuntu-latest
|
29
|
+
steps:
|
30
|
+
- name: Checkout
|
31
|
+
uses: actions/checkout@v5
|
32
|
+
|
33
|
+
- name: Check Dependencies' License
|
34
|
+
uses: apache/skywalking-eyes/dependency@main
|
35
|
+
with:
|
36
|
+
config: .licenserc.yaml
|
37
|
+
# Ruby packages declared as dependencies in gemspecs or Gemfiles are
|
38
|
+
# typically consumed as binaries; enable weak-compatibility
|
39
|
+
# so permissive and weak-copyleft combinations are treated as compatible.
|
40
|
+
flags: --weak-compatible
|
data/Appraisals.example
CHANGED
@@ -30,6 +30,8 @@ end
|
|
30
30
|
# Used for head (nightly) releases of ruby, truffleruby, and jruby.
|
31
31
|
# Split into discrete appraisals if one of them needs a dependency locked discretely.
|
32
32
|
appraise "head" do
|
33
|
+
# Why is gem "cgi" here? See: https://github.com/vcr/vcr/issues/1057
|
34
|
+
# gem "cgi", ">= 0.5"
|
33
35
|
gem "benchmark", "~> 0.4", ">= 0.4.1"
|
34
36
|
eval_gemfile "modular/x_std_libs.gemfile"
|
35
37
|
end
|
data/CHANGELOG.md
CHANGED
@@ -24,6 +24,26 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
24
24
|
### Fixed
|
25
25
|
### Security
|
26
26
|
|
27
|
+
## [1.1.19] - 2025-09-14
|
28
|
+
- TAG: [v1.1.19][1.1.19t]
|
29
|
+
- COVERAGE: 96.58% -- 3531/3656 lines in 25 files
|
30
|
+
- BRANCH COVERAGE: 81.11% -- 1443/1779 branches in 25 files
|
31
|
+
- 76.88% documented
|
32
|
+
### Added
|
33
|
+
- documentation of vcr on Ruby 2.4
|
34
|
+
- Apache SkyWalking Eyes dependency license check
|
35
|
+
- Added to template
|
36
|
+
### Fixed
|
37
|
+
- fix duplicate headings in CHANGELOG.md Unreleased section
|
38
|
+
|
39
|
+
## [1.1.18] - 2025-09-12
|
40
|
+
- TAG: [v1.1.18][1.1.18t]
|
41
|
+
- COVERAGE: 96.24% -- 3477/3613 lines in 25 files
|
42
|
+
- BRANCH COVERAGE: 81.01% -- 1425/1759 branches in 25 files
|
43
|
+
- 76.88% documented
|
44
|
+
### Removed
|
45
|
+
- remove patreon link from README template
|
46
|
+
|
27
47
|
## [1.1.17] - 2025-09-11
|
28
48
|
- TAG: [v1.1.17][1.1.17t]
|
29
49
|
- COVERAGE: 96.29% -- 3479/3613 lines in 25 files
|
@@ -38,7 +58,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
38
58
|
- update template to version_gem v1.1.9
|
39
59
|
- right-size funding commit message append width
|
40
60
|
### Removed
|
41
|
-
- remove patreon link from
|
61
|
+
- remove patreon link from README
|
42
62
|
|
43
63
|
## [1.1.16] - 2025-09-10
|
44
64
|
- TAG: [v1.1.16][1.1.16t]
|
@@ -640,7 +660,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
640
660
|
- Selecting will run the selected workflow via `act`
|
641
661
|
- This may move to its own gem in the future.
|
642
662
|
|
643
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.
|
663
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.19...HEAD
|
664
|
+
[1.1.19]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.18...v1.1.19
|
665
|
+
[1.1.19t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.19
|
666
|
+
[1.1.18]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.17...v1.1.18
|
667
|
+
[1.1.18t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.18
|
644
668
|
[1.1.17]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.16...v1.1.17
|
645
669
|
[1.1.17t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.17
|
646
670
|
[1.1.16]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.15...v1.1.16
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
# 🍲 Kettle::Dev
|
11
11
|
|
12
|
-
[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![CodeCov Test Coverage][🔑codecovi]][🔑codecov] [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls] [![QLTY Test Coverage][🔑qlty-covi]][🔑qlty-cov] [![QLTY Maintainability][🔑qlty-mnti]][🔑qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL]
|
12
|
+
[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![CodeCov Test Coverage][🔑codecovi]][🔑codecov] [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls] [![QLTY Test Coverage][🔑qlty-covi]][🔑qlty-cov] [![QLTY Maintainability][🔑qlty-mnti]][🔑qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
|
13
13
|
|
14
14
|
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][🖼️galtzo-discord], as I may have missed the [discord notification][🖼️galtzo-discord].
|
15
15
|
|
@@ -62,7 +62,7 @@ bin/kettle-release
|
|
62
62
|
| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork] [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor] |
|
63
63
|
| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
|
64
64
|
| Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![Wiki][📜wiki-img]][📜wiki] |
|
65
|
-
| Compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver]
|
65
|
+
| Compliance | [![License: MIT][📄license-img]][📄license-ref] [![Compatible with Apache Software Projects: Verified by SkyWalking Eyes][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
|
66
66
|
| Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
|
67
67
|
| Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼♂️devto-img]][💖💁🏼♂️devto] |
|
68
68
|
| `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼♂️aboutme-img]][💖💁🏼♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
|
@@ -861,6 +861,8 @@ Thanks for RTFM. ☺️
|
|
861
861
|
[🚎13-🔒️-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml/badge.svg
|
862
862
|
[🚎14-🔓️-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml
|
863
863
|
[🚎14-🔓️-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml/badge.svg
|
864
|
+
[🚎15-🪪-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/license-eye.yml
|
865
|
+
[🚎15-🪪-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/license-eye.yml/badge.svg
|
864
866
|
[💎ruby-2.3i]: https://img.shields.io/badge/Ruby-2.3-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
|
865
867
|
[💎ruby-2.4i]: https://img.shields.io/badge/Ruby-2.4-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
|
866
868
|
[💎ruby-2.5i]: https://img.shields.io/badge/Ruby-2.5-DF00CA?style=for-the-badge&logo=ruby&logoColor=white
|
@@ -909,13 +911,15 @@ Thanks for RTFM. ☺️
|
|
909
911
|
[📌gitmoji]:https://gitmoji.dev
|
910
912
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
911
913
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
912
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
914
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.656-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
913
915
|
[🔐security]: SECURITY.md
|
914
916
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
915
917
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
916
918
|
[📄license]: LICENSE.txt
|
917
919
|
[📄license-ref]: https://opensource.org/licenses/MIT
|
918
920
|
[📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
|
921
|
+
[📄license-compat]: https://dev.to/galtzo/how-to-check-license-compatibility-41h0
|
922
|
+
[📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
|
919
923
|
[📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
|
920
924
|
[📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
|
921
925
|
[🚎yard-current]: http://rubydoc.info/gems/kettle-dev
|
data/README.md.example
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
# 🍲 Kettle::Dev
|
11
11
|
|
12
|
-
[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![CodeCov Test Coverage][🔑codecovi]][🔑codecov] [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls] [![QLTY Test Coverage][🔑qlty-covi]][🔑qlty-cov] [![QLTY Maintainability][🔑qlty-mnti]][🔑qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL]
|
12
|
+
[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![CodeCov Test Coverage][🔑codecovi]][🔑codecov] [![Coveralls Test Coverage][🔑coveralls-img]][🔑coveralls] [![QLTY Test Coverage][🔑qlty-covi]][🔑qlty-cov] [![QLTY Maintainability][🔑qlty-mnti]][🔑qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Legacy][🚎4-lg-wfi]][🚎4-lg-wf] [![CI Unsupported][🚎7-us-wfi]][🚎7-us-wf] [![CI Ancient][🚎1-an-wfi]][🚎1-an-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
|
13
13
|
|
14
14
|
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][🖼️galtzo-discord], as I may have missed the [discord notification][🖼️galtzo-discord].
|
15
15
|
|
@@ -17,7 +17,7 @@
|
|
17
17
|
|
18
18
|
`if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
|
19
19
|
|
20
|
-
[![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
|
20
|
+
[![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
|
21
21
|
|
22
22
|
## 🌻 Synopsis
|
23
23
|
|
@@ -31,10 +31,10 @@
|
|
31
31
|
| Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎4-lg-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎6-s-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
|
32
32
|
| Works with MRI Ruby 2 | ![Ruby 2.0 Compat][💎ruby-2.0i] ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] <br/> [![Ruby 2.3 Compat][💎ruby-2.3i]][🚎1-an-wf] [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎1-an-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎1-an-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎7-us-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎7-us-wf] |
|
33
33
|
| Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i] |
|
34
|
-
| Support
|
34
|
+
| Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼🏫expsup-upwork-img]][👨🏼🏫expsup-upwork] [![Get help from me on Codementor][👨🏼🏫expsup-codementor-img]][👨🏼🏫expsup-codementor] |
|
35
35
|
| Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
|
36
36
|
| Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![Wiki][📜wiki-img]][📜wiki] |
|
37
|
-
| Compliance | [![License: MIT][📄license-img]][📄license-ref] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
|
37
|
+
| Compliance | [![License: MIT][📄license-img]][📄license-ref] [![Compatible with Apache Software Projects: Verified by SkyWalking Eyes][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
|
38
38
|
| Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
|
39
39
|
| Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼♂️devto-img]][💖💁🏼♂️devto] |
|
40
40
|
| `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼♂️aboutme-img]][💖💁🏼♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
|
@@ -456,6 +456,8 @@ Thanks for RTFM. ☺️
|
|
456
456
|
[🚎13-🔒️-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml/badge.svg
|
457
457
|
[🚎14-🔓️-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml
|
458
458
|
[🚎14-🔓️-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml/badge.svg
|
459
|
+
[🚎15-🪪-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/license-eye.yml
|
460
|
+
[🚎15-🪪-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/license-eye.yml/badge.svg
|
459
461
|
[💎ruby-1.8i]: https://img.shields.io/badge/Ruby-1.8_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=white
|
460
462
|
[💎ruby-1.9i]: https://img.shields.io/badge/Ruby-1.9_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=white
|
461
463
|
[💎ruby-2.0i]: https://img.shields.io/badge/Ruby-2.0_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=white
|
@@ -509,13 +511,15 @@ Thanks for RTFM. ☺️
|
|
509
511
|
[📌gitmoji]:https://gitmoji.dev
|
510
512
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
511
513
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
512
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
514
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.656-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
513
515
|
[🔐security]: SECURITY.md
|
514
516
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
515
517
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
516
518
|
[📄license]: LICENSE.txt
|
517
519
|
[📄license-ref]: https://opensource.org/licenses/MIT
|
518
520
|
[📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
|
521
|
+
[📄license-compat]: https://dev.to/galtzo/how-to-check-license-compatibility-41h0
|
522
|
+
[📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
|
519
523
|
[📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
|
520
524
|
[📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
|
521
525
|
[🚎yard-current]: http://rubydoc.info/gems/kettle-dev
|
data/Rakefile.example
CHANGED
data/kettle-dev.gemspec.example
CHANGED
@@ -149,9 +149,7 @@ Gem::Specification.new do |spec|
|
|
149
149
|
spec.add_development_dependency("gitmoji-regex", "~> 1.0", ">= 1.0.3") # ruby >= 2.3.0
|
150
150
|
|
151
151
|
# HTTP recording for deterministic specs
|
152
|
-
#
|
153
|
-
# Ruby 2.3 and 2.4 even if their bundle specifies an older version,
|
154
|
-
# and as a result it can only be a dependency in the appraisals.
|
152
|
+
# Ruby 2.3 / 2.4 can fail with:
|
155
153
|
# | An error occurred while loading spec_helper.
|
156
154
|
# | Failure/Error: require "vcr"
|
157
155
|
# |
|
@@ -161,6 +159,11 @@ Gem::Specification.new do |spec|
|
|
161
159
|
# | # ./spec/config/vcr.rb:3:in `<top (required)>'
|
162
160
|
# | # ./spec/spec_helper.rb:8:in `require_relative'
|
163
161
|
# | # ./spec/spec_helper.rb:8:in `<top (required)>'
|
164
|
-
#
|
165
|
-
# spec.add_development_dependency("
|
162
|
+
# So that's why we need backports.
|
163
|
+
# spec.add_development_dependency("backports", "~> 3.25", ">= 3.25.1") # ruby >= 0
|
164
|
+
# In Ruby 3.5 (HEAD) the CGI library has been pared down, so we also need to depend on gem "cgi" for ruby@head
|
165
|
+
# This is done in the "head" appraisal.
|
166
|
+
# See: https://github.com/vcr/vcr/issues/1057
|
167
|
+
# spec.add_development_dependency("vcr", ">= 4") # 6.0 claims to support ruby >= 2.3, but fails on ruby 2.4
|
168
|
+
# spec.add_development_dependency("webmock", ">= 3") # Last version to support ruby >= 2.3
|
166
169
|
end
|
@@ -160,6 +160,10 @@ module Kettle
|
|
160
160
|
# Determine if chunk has any content (non-blank)
|
161
161
|
content_present = chunk.any? { |l| l.strip != "" }
|
162
162
|
if content_present
|
163
|
+
# Trim leading blank lines so there is no blank line after the header
|
164
|
+
while chunk.any? && chunk.first.strip == ""
|
165
|
+
chunk.shift
|
166
|
+
end
|
163
167
|
# Trim trailing blank lines
|
164
168
|
while chunk.any? && chunk.last.strip == ""
|
165
169
|
chunk.pop
|
@@ -314,6 +314,7 @@ module Kettle
|
|
314
314
|
.gitlab-ci.yml
|
315
315
|
.junie/guidelines-rbs.md
|
316
316
|
.junie/guidelines.md
|
317
|
+
.licenserc.yaml
|
317
318
|
.opencollective.yml
|
318
319
|
.rspec
|
319
320
|
.rubocop.yml
|
@@ -548,31 +549,103 @@ module Kettle
|
|
548
549
|
)
|
549
550
|
if File.basename(rel) == "CHANGELOG.md"
|
550
551
|
begin
|
551
|
-
# Special handling
|
552
|
+
# Special handling for CHANGELOG.md
|
553
|
+
# 1) Take template header through Unreleased section (inclusive)
|
552
554
|
src_lines = c.split("\n", -1)
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
j = unreleased_idx + 1
|
555
|
+
tpl_unrel_idx = src_lines.index { |ln| ln =~ /^##\s*\[\s*Unreleased\s*\]/i }
|
556
|
+
if tpl_unrel_idx
|
557
|
+
# Find end of Unreleased in template (next ## or # heading)
|
558
|
+
tpl_end_idx = src_lines.length - 1
|
559
|
+
j = tpl_unrel_idx + 1
|
559
560
|
while j < src_lines.length
|
560
561
|
if src_lines[j] =~ /^##\s+\[/ || src_lines[j] =~ /^#\s+/ || src_lines[j] =~ /^##\s+[^\[]/
|
561
|
-
|
562
|
+
tpl_end_idx = j - 1
|
562
563
|
break
|
563
564
|
end
|
564
565
|
j += 1
|
565
566
|
end
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
#
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
567
|
+
tpl_header_pre = src_lines[0...tpl_unrel_idx] # lines before Unreleased heading
|
568
|
+
tpl_unrel_heading = src_lines[tpl_unrel_idx]
|
569
|
+
src_lines[(tpl_unrel_idx + 1)..tpl_end_idx] || []
|
570
|
+
|
571
|
+
# 2) Extract destination Unreleased content, preserving list items under any standard headings
|
572
|
+
dest_content = File.file?(dest) ? File.read(dest) : ""
|
573
|
+
dest_lines = dest_content.split("\n", -1)
|
574
|
+
dest_unrel_idx = dest_lines.index { |ln| ln =~ /^##\s*\[\s*Unreleased\s*\]/i }
|
575
|
+
dest_end_idx = if dest_unrel_idx
|
576
|
+
k = dest_unrel_idx + 1
|
577
|
+
e = dest_lines.length - 1
|
578
|
+
while k < dest_lines.length
|
579
|
+
if dest_lines[k] =~ /^##\s+\[/ || dest_lines[k] =~ /^#\s+/ || dest_lines[k] =~ /^##\s+[^\[]/
|
580
|
+
e = k - 1
|
581
|
+
break
|
582
|
+
end
|
583
|
+
k += 1
|
584
|
+
end
|
585
|
+
e
|
586
|
+
end
|
587
|
+
dest_unrel_body = dest_unrel_idx ? (dest_lines[(dest_unrel_idx + 1)..dest_end_idx] || []) : []
|
588
|
+
|
589
|
+
# Helper: parse body into map of heading=>items (only '- ' markdown items)
|
590
|
+
std_heads = [
|
591
|
+
"### Added",
|
592
|
+
"### Changed",
|
593
|
+
"### Deprecated",
|
594
|
+
"### Removed",
|
595
|
+
"### Fixed",
|
596
|
+
"### Security",
|
597
|
+
]
|
598
|
+
|
599
|
+
parse_items = lambda do |body_lines|
|
600
|
+
result = {}
|
601
|
+
cur = nil
|
602
|
+
body_lines.each do |ln|
|
603
|
+
if ln.start_with?("### ")
|
604
|
+
cur = ln.strip
|
605
|
+
result[cur] ||= []
|
606
|
+
elsif ln.start_with?("- ")
|
607
|
+
result[cur] ||= []
|
608
|
+
result[cur] << ln.rstrip
|
609
|
+
end
|
610
|
+
end
|
611
|
+
result
|
612
|
+
end
|
613
|
+
|
614
|
+
dest_items = parse_items.call(dest_unrel_body)
|
615
|
+
|
616
|
+
# 3) Build a single canonical Unreleased section: heading + the six standard subheads in order
|
617
|
+
new_unrel_block = []
|
618
|
+
new_unrel_block << tpl_unrel_heading
|
619
|
+
std_heads.each do |h|
|
620
|
+
new_unrel_block << h
|
621
|
+
if dest_items[h] && !dest_items[h].empty?
|
622
|
+
new_unrel_block.concat(dest_items[h])
|
623
|
+
end
|
624
|
+
end
|
625
|
+
|
626
|
+
# 4) Compose final content: template preface + new unreleased + rest of destination (after its unreleased)
|
627
|
+
tail_after_unrel = []
|
628
|
+
if dest_unrel_idx
|
629
|
+
tail_after_unrel = dest_lines[(dest_end_idx + 1)..-1] || []
|
630
|
+
end
|
631
|
+
|
632
|
+
# Ensure exactly one blank line between the Unreleased chunk and the next version chunk
|
633
|
+
# - Strip trailing blanks from the newly built Unreleased block
|
634
|
+
while new_unrel_block.any? && new_unrel_block.last.to_s.strip == ""
|
635
|
+
new_unrel_block.pop
|
636
|
+
end
|
637
|
+
# - Strip leading blanks from the tail
|
638
|
+
while tail_after_unrel.any? && tail_after_unrel.first.to_s.strip == ""
|
639
|
+
tail_after_unrel.shift
|
640
|
+
end
|
641
|
+
merged_lines = tpl_header_pre + new_unrel_block
|
642
|
+
# Insert a single separator blank line if there is any tail content
|
643
|
+
merged_lines << "" if tail_after_unrel.any?
|
644
|
+
merged_lines.concat(tail_after_unrel)
|
645
|
+
|
646
|
+
c = merged_lines.join("\n")
|
575
647
|
end
|
648
|
+
|
576
649
|
# Collapse repeated whitespace in release headers only
|
577
650
|
lines = c.split("\n", -1)
|
578
651
|
lines.map! do |ln|
|
@@ -585,7 +658,7 @@ module Kettle
|
|
585
658
|
c = lines.join("\n")
|
586
659
|
rescue StandardError => e
|
587
660
|
Kettle::Dev.debug_error(e, __method__)
|
588
|
-
#
|
661
|
+
# Fallback: whitespace normalization
|
589
662
|
lines = c.split("\n", -1)
|
590
663
|
lines.map! { |ln| (ln =~ /^##\s+\[.*\]/) ? ln.gsub(/[ \t]+/, " ") : ln }
|
591
664
|
c = lines.join("\n")
|
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.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter H. Boling
|
@@ -241,6 +241,7 @@ files:
|
|
241
241
|
- ".github/workflows/jruby.yml"
|
242
242
|
- ".github/workflows/jruby.yml.example"
|
243
243
|
- ".github/workflows/legacy.yml"
|
244
|
+
- ".github/workflows/license-eye.yml"
|
244
245
|
- ".github/workflows/locked_deps.yml"
|
245
246
|
- ".github/workflows/opencollective.yml"
|
246
247
|
- ".github/workflows/style.yml"
|
@@ -386,10 +387,10 @@ licenses:
|
|
386
387
|
- MIT
|
387
388
|
metadata:
|
388
389
|
homepage_uri: https://kettle-dev.galtzo.com/
|
389
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.
|
390
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.
|
390
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.19
|
391
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.19/CHANGELOG.md
|
391
392
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
392
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
393
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.19
|
393
394
|
funding_uri: https://github.com/sponsors/pboling
|
394
395
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
395
396
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
Binary file
|