kettle-dev 1.1.18 โ 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 +15 -1
- data/README.md +7 -3
- data/README.md.example +8 -4
- 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,18 @@ 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
|
+
|
27
39
|
## [1.1.18] - 2025-09-12
|
28
40
|
- TAG: [v1.1.18][1.1.18t]
|
29
41
|
- COVERAGE: 96.24% -- 3477/3613 lines in 25 files
|
@@ -648,7 +660,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
648
660
|
- Selecting will run the selected workflow via `act`
|
649
661
|
- This may move to its own gem in the future.
|
650
662
|
|
651
|
-
[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
|
652
666
|
[1.1.18]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.17...v1.1.18
|
653
667
|
[1.1.18t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.18
|
654
668
|
[1.1.17]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.16...v1.1.17
|
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
|
|
@@ -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
|