kettle-dev 1.1.8 → 1.1.10
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/Appraisals.example +1 -1
- data/CHANGELOG.md +33 -1
- data/README.md +6 -6
- data/README.md.example +9 -7
- data/Rakefile.example +1 -1
- data/gemfiles/modular/runtime_heads.gemfile.example +8 -0
- data/lib/kettle/dev/tasks/template_task.rb +114 -68
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +5 -4
- metadata.gz.sig +1 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6cf7cc8f6c3a0d1dfc5f0dbc6da851e122abdad9a284c5835eb7f910214dbe7
|
4
|
+
data.tar.gz: 6ff4d986c36a7eb18e5413e29707c7a78fcfdb048852a16ecc403010963d67d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 640a7db16fab1bb407eca866f68209f5c354f8ed54fd40b20723ec0a8e3860018b4509891bb9875a2a268a082149c7013bfe0c1426dfe08cdd857c3e057dee8a
|
7
|
+
data.tar.gz: a32860690a84df178fbffddc65ffb14eb257f9481d1efd9cbcb177eb53452ce34493d370a9430c3dc2bdb3a295bd1fc55c584f7b174fcc379e102084166811dd
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/Appraisals.example
CHANGED
data/CHANGELOG.md
CHANGED
@@ -24,6 +24,34 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
24
24
|
### Fixed
|
25
25
|
### Security
|
26
26
|
|
27
|
+
## [1.1.10] - 2025-09-08
|
28
|
+
- TAG: [v1.1.10][1.1.10t]
|
29
|
+
- COVERAGE: 97.14% -- 3256/3352 lines in 23 files
|
30
|
+
- BRANCH COVERAGE: 81.91% -- 1345/1642 branches in 23 files
|
31
|
+
- 76.65% documented
|
32
|
+
### Added
|
33
|
+
- Improve documentation
|
34
|
+
- Fix an internal link in README.md
|
35
|
+
### Changed
|
36
|
+
- template task no longer overwrites CHANGELOG.md completely
|
37
|
+
- attempts to retain existing release notes content
|
38
|
+
### Fixed
|
39
|
+
- Fix a typo in the README.md
|
40
|
+
### Fixed
|
41
|
+
- fix typo in the path to x_std_libs.gemfile
|
42
|
+
|
43
|
+
## [1.1.9] - 2025-09-07
|
44
|
+
- TAG: [v1.1.9][1.1.9t]
|
45
|
+
- COVERAGE: 97.11% -- 3255/3352 lines in 23 files
|
46
|
+
- BRANCH COVERAGE: 81.91% -- 1345/1642 branches in 23 files
|
47
|
+
- 76.65% documented
|
48
|
+
### Added
|
49
|
+
- badge for current runtime heads in example readme
|
50
|
+
### Fixed
|
51
|
+
- Add gemfiles/modular/x_std_libs.gemfile & injected.gemfile to template
|
52
|
+
- example version of gemfiles/modular/runtime_heads.gemfile
|
53
|
+
- necessary to avoid deps on recording gems in the template
|
54
|
+
|
27
55
|
## [1.1.8] - 2025-09-07
|
28
56
|
- TAG: [v1.1.8][1.1.8t]
|
29
57
|
- COVERAGE: 97.16% -- 3246/3341 lines in 23 files
|
@@ -543,7 +571,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
543
571
|
- Selecting will run the selected workflow via `act`
|
544
572
|
- This may move to its own gem in the future.
|
545
573
|
|
546
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.
|
574
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.10...HEAD
|
575
|
+
[1.1.10]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.9...v1.1.10
|
576
|
+
[1.1.10t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.10
|
577
|
+
[1.1.9]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.8...v1.1.9
|
578
|
+
[1.1.9t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.9
|
547
579
|
[1.1.8]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.7...v1.1.8
|
548
580
|
[1.1.8t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.8
|
549
581
|
[1.1.7]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.6...v1.1.7
|
data/README.md
CHANGED
@@ -11,11 +11,11 @@
|
|
11
11
|
|
12
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]
|
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
|
|
16
16
|
---
|
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
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 to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
|
21
21
|
|
@@ -71,8 +71,8 @@ bin/kettle-release
|
|
71
71
|
|
72
72
|
Compatible with MRI Ruby 2.3+, and concordant releases of JRuby, and TruffleRuby.
|
73
73
|
|
74
|
-
| 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎
|
75
|
-
|
74
|
+
| 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
|
75
|
+
|------------------------------------------------|--------------------------------------------------------|
|
76
76
|
| 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
|
77
77
|
|
78
78
|
### Federated DVCS
|
@@ -723,7 +723,7 @@ To join the community or get help 👇️ Join the Discord.
|
|
723
723
|
|
724
724
|
[![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
|
725
725
|
|
726
|
-
To say "thanks
|
726
|
+
To say "thanks!" ☝️ Join the Discord or 👇️ send money.
|
727
727
|
|
728
728
|
[![Sponsor kettle-rb/kettle-dev on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay-img] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal-img]
|
729
729
|
|
@@ -907,7 +907,7 @@ Thanks for RTFM. ☺️
|
|
907
907
|
[📌gitmoji]:https://gitmoji.dev
|
908
908
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
909
909
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
910
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
910
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.352-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
911
911
|
[🔐security]: SECURITY.md
|
912
912
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
913
913
|
[📄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
@@ -9,13 +9,13 @@
|
|
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 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]
|
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
|
|
16
16
|
---
|
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
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 to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
|
21
21
|
|
@@ -43,8 +43,8 @@ OTOH, if `ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I
|
|
43
43
|
|
44
44
|
Compatible with MRI Ruby 2.3+, and concordant releases of JRuby, and TruffleRuby.
|
45
45
|
|
46
|
-
| 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎
|
47
|
-
|
46
|
+
| 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
|
47
|
+
|------------------------------------------------|--------------------------------------------------------|
|
48
48
|
| 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
|
49
49
|
|
50
50
|
### Federated DVCS
|
@@ -318,7 +318,7 @@ To join the community or get help 👇️ Join the Discord.
|
|
318
318
|
|
319
319
|
[![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
|
320
320
|
|
321
|
-
To say "thanks
|
321
|
+
To say "thanks!" ☝️ Join the Discord or 👇️ send money.
|
322
322
|
|
323
323
|
[![Sponsor kettle-rb/kettle-dev on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay-img] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal-img]
|
324
324
|
|
@@ -448,6 +448,8 @@ Thanks for RTFM. ☺️
|
|
448
448
|
[🚎10-j-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/jruby.yml/badge.svg
|
449
449
|
[🚎11-c-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml
|
450
450
|
[🚎11-c-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/current.yml/badge.svg
|
451
|
+
[🚎12-crh-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml
|
452
|
+
[🚎12-crh-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/dep-heads.yml/badge.svg
|
451
453
|
[🚎13-🔒️-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml
|
452
454
|
[🚎13-🔒️-wfi]: https://github.com/kettle-rb/kettle-dev/actions/workflows/locked_deps.yml/badge.svg
|
453
455
|
[🚎14-🔓️-wf]: https://github.com/kettle-rb/kettle-dev/actions/workflows/unlocked_deps.yml
|
@@ -505,7 +507,7 @@ Thanks for RTFM. ☺️
|
|
505
507
|
[📌gitmoji]:https://gitmoji.dev
|
506
508
|
[📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
507
509
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
508
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
510
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.352-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
509
511
|
[🔐security]: SECURITY.md
|
510
512
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
511
513
|
[📄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
@@ -6,6 +6,8 @@ module Kettle
|
|
6
6
|
# Thin wrapper to expose the kettle:dev:template task logic as a callable API
|
7
7
|
# for testability. The rake task should only call this method.
|
8
8
|
module TemplateTask
|
9
|
+
MODULAR_GEMFILE_DIR = "gemfiles/modular"
|
10
|
+
|
9
11
|
module_function
|
10
12
|
|
11
13
|
# Abort wrapper that avoids terminating the entire process during specs
|
@@ -102,78 +104,89 @@ module Kettle
|
|
102
104
|
allow_replace: true,
|
103
105
|
)
|
104
106
|
|
105
|
-
#
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
107
|
+
# 4a) gemfiles/modular/*.gemfile
|
108
|
+
# from gem's gemfiles/modular,
|
109
|
+
# except `style.gemfile` which has special handling below
|
110
|
+
modular_gemfiles = %w[
|
111
|
+
coverage
|
112
|
+
debug
|
113
|
+
documentation
|
114
|
+
injected
|
115
|
+
optional
|
116
|
+
runtime_heads
|
117
|
+
x_std_libs
|
118
|
+
]
|
119
|
+
modular_gemfiles.each do |base|
|
120
|
+
modular_gemfile = "#{base}.gemfile"
|
121
|
+
src = helpers.prefer_example(File.join(gem_checkout_root, MODULAR_GEMFILE_DIR, modular_gemfile))
|
122
|
+
dest = File.join(project_root, MODULAR_GEMFILE_DIR, modular_gemfile)
|
123
|
+
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true)
|
124
|
+
end
|
125
|
+
|
126
|
+
# 4b) gemfiles/modular/style.gemfile
|
127
|
+
modular_gemfile = "style.gemfile"
|
128
|
+
src = helpers.prefer_example(File.join(gem_checkout_root, MODULAR_GEMFILE_DIR, modular_gemfile))
|
129
|
+
dest = File.join(project_root, MODULAR_GEMFILE_DIR, modular_gemfile)
|
130
|
+
if File.basename(src).sub(/\.example\z/, "") == "style.gemfile"
|
131
|
+
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true) do |content|
|
132
|
+
# Adjust rubocop-lts constraint based on min_ruby
|
133
|
+
version_map = [
|
134
|
+
[Gem::Version.new("1.8"), "~> 0.1"],
|
135
|
+
[Gem::Version.new("1.9"), "~> 2.0"],
|
136
|
+
[Gem::Version.new("2.0"), "~> 4.0"],
|
137
|
+
[Gem::Version.new("2.1"), "~> 6.0"],
|
138
|
+
[Gem::Version.new("2.2"), "~> 8.0"],
|
139
|
+
[Gem::Version.new("2.3"), "~> 10.0"],
|
140
|
+
[Gem::Version.new("2.4"), "~> 12.0"],
|
141
|
+
[Gem::Version.new("2.5"), "~> 14.0"],
|
142
|
+
[Gem::Version.new("2.6"), "~> 16.0"],
|
143
|
+
[Gem::Version.new("2.7"), "~> 18.0"],
|
144
|
+
[Gem::Version.new("3.0"), "~> 20.0"],
|
145
|
+
[Gem::Version.new("3.1"), "~> 22.0"],
|
146
|
+
[Gem::Version.new("3.2"), "~> 24.0"],
|
147
|
+
[Gem::Version.new("3.3"), "~> 26.0"],
|
148
|
+
[Gem::Version.new("3.4"), "~> 28.0"],
|
149
|
+
]
|
150
|
+
new_constraint = nil
|
151
|
+
rubocop_ruby_gem_version = nil
|
152
|
+
ruby1_8 = version_map.first
|
153
|
+
begin
|
154
|
+
if min_ruby
|
155
|
+
version_map.reverse_each do |min, req|
|
156
|
+
if min_ruby >= min
|
157
|
+
new_constraint = req
|
158
|
+
rubocop_ruby_gem_version = min.segments.join("_")
|
159
|
+
break
|
140
160
|
end
|
141
161
|
end
|
142
|
-
if !new_constraint || !rubocop_ruby_gem_version
|
143
|
-
# A gem with no declared minimum ruby is effectively >= 1.8.7
|
144
|
-
new_constraint = ruby1_8[1]
|
145
|
-
rubocop_ruby_gem_version = ruby1_8[0].segments.join("_")
|
146
|
-
end
|
147
|
-
rescue StandardError => e
|
148
|
-
Kettle::Dev.debug_error(e, __method__)
|
149
|
-
# ignore, use default
|
150
|
-
ensure
|
151
|
-
new_constraint ||= ruby1_8[1]
|
152
|
-
rubocop_ruby_gem_version ||= ruby1_8[0].segments.join("_")
|
153
162
|
end
|
154
|
-
if new_constraint
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
content.gsub!(token, "rubocop-ruby#{rubocop_ruby_gem_version}") if content.include?(token)
|
163
|
+
if !new_constraint || !rubocop_ruby_gem_version
|
164
|
+
# A gem with no declared minimum ruby is effectively >= 1.8.7
|
165
|
+
new_constraint = ruby1_8[1]
|
166
|
+
rubocop_ruby_gem_version = ruby1_8[0].segments.join("_")
|
159
167
|
end
|
168
|
+
rescue StandardError => e
|
169
|
+
Kettle::Dev.debug_error(e, __method__)
|
170
|
+
# ignore, use default
|
171
|
+
ensure
|
172
|
+
new_constraint ||= ruby1_8[1]
|
173
|
+
rubocop_ruby_gem_version ||= ruby1_8[0].segments.join("_")
|
174
|
+
end
|
175
|
+
if new_constraint && rubocop_ruby_gem_version
|
176
|
+
token = "{RUBOCOP|LTS|CONSTRAINT}"
|
177
|
+
content.gsub!(token, new_constraint) if content.include?(token)
|
178
|
+
token = "{RUBOCOP|RUBY|GEM}"
|
179
|
+
content.gsub!(token, "rubocop-ruby#{rubocop_ruby_gem_version}") if content.include?(token)
|
160
180
|
end
|
161
|
-
else
|
162
|
-
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true)
|
163
181
|
end
|
164
|
-
|
165
|
-
|
166
|
-
# 4b) Additional modular gemfiles to include
|
167
|
-
["debug.gemfile", "runtime_heads.gemfile"].each do |fname|
|
168
|
-
src = helpers.prefer_example(File.join(gem_checkout_root, "gemfiles/modular", fname))
|
169
|
-
dest = File.join(project_root, "gemfiles/modular", fname)
|
182
|
+
else
|
170
183
|
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true)
|
171
184
|
end
|
172
185
|
|
173
186
|
# 4c) Copy modular directories with nested/versioned files
|
174
187
|
%w[erb mutex_m stringio x_std_libs].each do |dir|
|
175
|
-
src_dir = File.join(gem_checkout_root,
|
176
|
-
dest_dir = File.join(project_root,
|
188
|
+
src_dir = File.join(gem_checkout_root, MODULAR_GEMFILE_DIR, dir)
|
189
|
+
dest_dir = File.join(project_root, MODULAR_GEMFILE_DIR, dir)
|
177
190
|
helpers.copy_dir_with_prompt(src_dir, dest_dir)
|
178
191
|
end
|
179
192
|
|
@@ -604,17 +617,50 @@ module Kettle
|
|
604
617
|
namespace_shield: namespace_shield,
|
605
618
|
gem_shield: gem_shield,
|
606
619
|
)
|
607
|
-
# Retain whitespace everywhere, except collapse repeated whitespace in CHANGELOG release headers only
|
608
620
|
if File.basename(rel) == "CHANGELOG.md"
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
621
|
+
begin
|
622
|
+
# Special handling: only template header through Unreleased section (inclusive), preserve the rest
|
623
|
+
src_lines = c.split("\n", -1)
|
624
|
+
# Find index of Unreleased heading (case-insensitive), typical format: ## [Unreleased]
|
625
|
+
unreleased_idx = src_lines.index { |ln| ln =~ /^##\s*\[\s*Unreleased\s*\]/i }
|
626
|
+
if unreleased_idx
|
627
|
+
# Determine end of Unreleased section: next heading of same or higher level (## or #)
|
628
|
+
stop_idx = src_lines.length - 1
|
629
|
+
j = unreleased_idx + 1
|
630
|
+
while j < src_lines.length
|
631
|
+
if src_lines[j] =~ /^##\s+\[/ || src_lines[j] =~ /^#\s+/ || src_lines[j] =~ /^##\s+[^\[]/
|
632
|
+
stop_idx = j - 1
|
633
|
+
break
|
634
|
+
end
|
635
|
+
j += 1
|
636
|
+
end
|
637
|
+
header_through_unreleased = src_lines[0..stop_idx]
|
638
|
+
tail = File.file?(dest) ? File.read(dest).split("\n", -1)[(File.read(dest).split("\n", -1).index { |ln| ln =~ /^##\s*\[\s*Unreleased\s*\]/i } || -1) + 1..-1] : nil
|
639
|
+
tail ||= []
|
640
|
+
# Additionally, ensure we preserve existing markdown link refs typically at file bottom (e.g., [Unreleased]: ...)
|
641
|
+
# Prefer tail from existing file entirely to avoid clobbering release notes and refs.
|
642
|
+
merged = (header_through_unreleased + (tail || [])).join("\n")
|
643
|
+
c = merged
|
613
644
|
else
|
614
|
-
|
645
|
+
# If Unreleased not found, fallback to original c (only collapse header spacing below)
|
646
|
+
end
|
647
|
+
# Collapse repeated whitespace in release headers only
|
648
|
+
lines = c.split("\n", -1)
|
649
|
+
lines.map! do |ln|
|
650
|
+
if ln =~ /^##\s+\[.*\]/
|
651
|
+
ln.gsub(/[ \t]+/, " ")
|
652
|
+
else
|
653
|
+
ln
|
654
|
+
end
|
615
655
|
end
|
656
|
+
c = lines.join("\n")
|
657
|
+
rescue StandardError => e
|
658
|
+
Kettle::Dev.debug_error(e, __method__)
|
659
|
+
# On any error, keep previous behavior (collapse whitespace only)
|
660
|
+
lines = c.split("\n", -1)
|
661
|
+
lines.map! { |ln| (ln =~ /^##\s+\[.*\]/) ? ln.gsub(/[ \t]+/, " ") : ln }
|
662
|
+
c = lines.join("\n")
|
616
663
|
end
|
617
|
-
c = lines.join("\n")
|
618
664
|
end
|
619
665
|
c
|
620
666
|
end
|
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.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter H. Boling
|
@@ -305,6 +305,7 @@ files:
|
|
305
305
|
- gemfiles/modular/optional.gemfile
|
306
306
|
- gemfiles/modular/optional.gemfile.example
|
307
307
|
- gemfiles/modular/runtime_heads.gemfile
|
308
|
+
- gemfiles/modular/runtime_heads.gemfile.example
|
308
309
|
- gemfiles/modular/stringio/r2.4/v0.0.2.gemfile
|
309
310
|
- gemfiles/modular/stringio/r2/v3.0.gemfile
|
310
311
|
- gemfiles/modular/stringio/r3/v3.0.gemfile
|
@@ -380,10 +381,10 @@ licenses:
|
|
380
381
|
- MIT
|
381
382
|
metadata:
|
382
383
|
homepage_uri: https://kettle-dev.galtzo.com/
|
383
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.
|
384
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.
|
384
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.10
|
385
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.10/CHANGELOG.md
|
385
386
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
386
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
387
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.10
|
387
388
|
funding_uri: https://github.com/sponsors/pboling
|
388
389
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
389
390
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
@@ -1,4 +1 @@
|
|
1
|
-
|
2
|
-
oڥ���1���GBa���ѦFX��3m-�gT�|���6C���bV�g����?�5 �ވ��ƽ�PfK]M�S������k���d㛻y�����
|
3
|
-
����� ���;�
|
4
|
-
���r���u0`�}r���iÿ��}���c�����"9����M-����I�l��vy��i d)�t�
|
1
|
+
WH�"�U�4�@�]�.#J3%w���+$�h���q��+��j3۷SG#¶%��/���5?��V/٤��EY��bJ��R���Y���',4���}d%XZ/4��?��*�9MՂ���r_���96�������d ��N��
|