kettle-jem 7.1.33 โ 7.1.35
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 +46 -1
- data/README.md +129 -1
- data/lib/kettle/jem/tasks/install_task.rb +10 -7
- data/lib/kettle/jem/templates/gem.gemspec.example +1 -1
- data/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +5 -14
- data/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +6 -14
- data/lib/kettle/jem/templates/shim/Gemfile.example +1 -1
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +1 -1
- data/lib/kettle/jem/version.rb +1 -1
- data/lib/kettle/jem.rb +63 -13
- data.tar.gz.sig +0 -0
- metadata +14 -14
- 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: f1760c5c4522f12469f4dd8b03571cc2fa22f93d364e2da8a54c3cc93d57e292
|
|
4
|
+
data.tar.gz: bf01a7571deabfabc42d7314f48b6198811221cdcda975b798ca8a9406ccc211
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2ad19f6e1bffb1959452eae2f59d31d203412ba9341dabc04746fb8202f72b31dcf8c7ad7f377a6e509c3db8ccbc13b21440ce9456921d55725fe85e8355b2b8
|
|
7
|
+
data.tar.gz: 06aeb688c7b0064d0dfc325a34666a01a51f42dcfcc272994583799e1f5c8e9438e88903073b436377550a4ae5c213905cdf171efd93514d70826b2b369ca855
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,47 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [7.1.35] - 2026-10-20
|
|
34
|
+
|
|
35
|
+
- TAG: [v7.1.35][7.1.35t]
|
|
36
|
+
- COVERAGE: 93.46% -- 11385/12182 lines in 17 files
|
|
37
|
+
- BRANCH COVERAGE: 77.09% -- 4907/6365 branches in 17 files
|
|
38
|
+
- 19.87% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Match direct-versus-modular dependency decisions across a modular Gemfile and its _local.gemfile counterpart.
|
|
43
|
+
|
|
44
|
+
## [7.1.34] - 2026-10-20
|
|
45
|
+
|
|
46
|
+
- TAG: [v7.1.34][7.1.34t]
|
|
47
|
+
- COVERAGE: 93.45% -- 11380/12178 lines in 17 files
|
|
48
|
+
- BRANCH COVERAGE: 77.09% -- 4907/6365 branches in 17 files
|
|
49
|
+
- 19.84% documented
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- [kc] kettle-jem/prepare: updated 10 project files:
|
|
54
|
+
- dependencies (10)
|
|
55
|
+
|
|
56
|
+
- [kc] kettle-jem/template: updated 3 project files:
|
|
57
|
+
- code and tests (1)
|
|
58
|
+
- documentation (1)
|
|
59
|
+
- other (1)
|
|
60
|
+
|
|
61
|
+
- [kc] kettle-jem-deps-floor: Update kettle-jem template dependency floors:
|
|
62
|
+
- kettle-dev (>= 3.1.18 -> >= 3.1.19)
|
|
63
|
+
- kettle-family (>= 1.3.22 -> >= 1.3.25)
|
|
64
|
+
- nomono (>= 1.1.10 -> >= 1.1.14)
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- Monorepo member Gemfiles now wire every family sibling as a local path dependency, not just the dependency-reachable closure: monorepo CI must never resolve family members from the registry, whose published metadata conflicts with the local graph whenever the family is mid-release (version-coupled sibling pins target the next, unpublished version).
|
|
69
|
+
|
|
70
|
+
- [kc] shape-aware-nomono-requirements: Scope all-sibling path wiring and automatic local lock normalization to monorepo topology, and forward project-fact requirements through eval_nomono_gems in generated Gemfiles.
|
|
71
|
+
|
|
72
|
+
- [kc] shared-nomono-overrides: Use Nomono 1.1.10 shared overrides instead of template-side dependency replacement in local coverage and templating Gemfiles; preserve fact requirements during repeated bootstrap normalization.
|
|
73
|
+
|
|
33
74
|
## [7.1.33] - 2026-10-19
|
|
34
75
|
|
|
35
76
|
- TAG: [v7.1.33][7.1.33t]
|
|
@@ -2318,7 +2359,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2318
2359
|
- Released kettle-jem as part of the initial StructuredMerge Ruby 7.0.0 gem set.
|
|
2319
2360
|
- Included packaged templates and parser-backed merge support for Ruby gem templating.
|
|
2320
2361
|
|
|
2321
|
-
[Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.
|
|
2362
|
+
[Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.35...HEAD
|
|
2363
|
+
[7.1.35]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.34...v7.1.35
|
|
2364
|
+
[7.1.35t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.35
|
|
2365
|
+
[7.1.34]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.33...v7.1.34
|
|
2366
|
+
[7.1.34t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.34
|
|
2322
2367
|
[7.1.33]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.32...v7.1.33
|
|
2323
2368
|
[7.1.33t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.33
|
|
2324
2369
|
[7.1.32]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.31...v7.1.32
|
data/README.md
CHANGED
|
@@ -98,6 +98,61 @@ Merge analysis must enter parsing through `tree_haver`. Parser-specific gems reg
|
|
|
98
98
|
[sm-family-rust]: https://github.com/structuredmerge/structuredmerge
|
|
99
99
|
[sm-family-typescript]: https://github.com/structuredmerge/structuredmerge-typescript
|
|
100
100
|
|
|
101
|
+
### Runtime and Platform Support
|
|
102
|
+
|
|
103
|
+
Support tiers describe what this project's CI actually exercises, not what may
|
|
104
|
+
work in an untested environment:
|
|
105
|
+
|
|
106
|
+
- **Parallel support**: CI runs the test suite with multiple workers available.
|
|
107
|
+
- **Unsupported**: the engine/platform combination is not covered by CI and is
|
|
108
|
+
not a project compatibility claim.
|
|
109
|
+
|
|
110
|
+
| Ruby engine/version | Linux | macOS | Windows | Notes |
|
|
111
|
+
|---------------------|-------|-------|---------|-------|
|
|
112
|
+
| MRI 4.0-4.0 | Parallel support | Unsupported | Unsupported | Versioned Ruby workflows run on Linux. |
|
|
113
|
+
| MRI current | Parallel support | Parallel support | Unsupported | Current Ruby workflow covers the declared OS platforms. |
|
|
114
|
+
| MRI head | Parallel support | Unsupported | Unsupported | CI is allowed to fail while Ruby is in development. |
|
|
115
|
+
| JRuby (all CI lanes) | Parallel support | Unsupported | Unsupported | Engine workflows run on Linux; macOS and Windows are not exercised by CI. |
|
|
116
|
+
|
|
117
|
+
### Federated DVCS
|
|
118
|
+
|
|
119
|
+
<details markdown="1">
|
|
120
|
+
<summary>Find this repo on federated forges (Coming soon!)</summary>
|
|
121
|
+
|
|
122
|
+
| Federated [DVCS][๐d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI |
|
|
123
|
+
|-------------------------------------------------|-------------------------------------------|-------------------|------------------|-----------------|----------------|
|
|
124
|
+
| ๐งช [structuredmerge/structuredmerge-ruby on GitLab][๐src-gl] | The Truth | [๐][๐คgl-issues] | [๐][๐คgl-pulls] | [๐][๐gl-wiki] | ๐ญ Tiny Matrix |
|
|
125
|
+
| ๐ง [structuredmerge/structuredmerge-ruby on CodeBerg][๐src-cb] | An Ethical Mirror ([Donate][๐คcb-donate]) | [๐][๐คcb-issues] | [๐][๐คcb-pulls] | โ | โญ๏ธ No Matrix |
|
|
126
|
+
| ๐ [structuredmerge/structuredmerge-ruby on GitHub][๐src-gh] | Another Mirror | [๐][๐คgh-issues] | [๐][๐คgh-pulls] | [๐][๐gh-wiki] | ๐ฏ Full Matrix |
|
|
127
|
+
|
|
128
|
+
</details>
|
|
129
|
+
|
|
130
|
+
### Enterprise Support
|
|
131
|
+
|
|
132
|
+
[](https://tidelift.com/subscription/pkg/rubygems-kettle-jem?utm_source=rubygems-kettle-jem&utm_medium=referral&utm_campaign=readme)
|
|
133
|
+
|
|
134
|
+
Available as part of the Tidelift Subscription.
|
|
135
|
+
|
|
136
|
+
<details markdown="1">
|
|
137
|
+
<summary>Need enterprise-level guarantees?</summary>
|
|
138
|
+
|
|
139
|
+
The maintainers of this and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use.
|
|
140
|
+
|
|
141
|
+
[![Get help from me on Tidelift][๐๏ธentsup-tidelift-img]][๐๏ธentsup-tidelift]
|
|
142
|
+
|
|
143
|
+
- ๐กSubscribe for support guarantees covering _all_ your FLOSS dependencies
|
|
144
|
+
- ๐กTidelift is part of [Sonar][๐๏ธentsup-tidelift-sonar]
|
|
145
|
+
- ๐กTidelift pays maintainers to maintain the software you depend on!<br/>๐`@`Pointy Haired Boss: An [enterprise support][๐๏ธentsup-tidelift] subscription is "[never gonna let you down][๐งฎkloc]", and *supports* open source maintainers
|
|
146
|
+
|
|
147
|
+
Alternatively:
|
|
148
|
+
|
|
149
|
+
- [![Ruby Users Forum][โ๏ธruby-forum-img]][โ๏ธruby-forum]
|
|
150
|
+
- [![Live Chat on Discord][โ๏ธdiscord-invite-img-ftb]][โ๏ธdiscord-invite]
|
|
151
|
+
- [![Get help from me on Upwork][๐จ๐ผโ๐ซexpsup-upwork-img]][๐จ๐ผโ๐ซexpsup-upwork]
|
|
152
|
+
- [![Get help from me on Codementor][๐จ๐ผโ๐ซexpsup-codementor-img]][๐จ๐ผโ๐ซexpsup-codementor]
|
|
153
|
+
|
|
154
|
+
</details>
|
|
155
|
+
|
|
101
156
|
## โจ Installation
|
|
102
157
|
|
|
103
158
|
Install the gem and add to the application's Gemfile by executing:
|
|
@@ -657,6 +712,30 @@ We [![Keep A Changelog][๐keep-changelog-img]][๐keep-changelog] so if you m
|
|
|
657
712
|
|
|
658
713
|
See [CONTRIBUTING.md][๐คcontributing] for more detailed instructions.
|
|
659
714
|
|
|
715
|
+
### ๐ Release Instructions
|
|
716
|
+
|
|
717
|
+
See [CONTRIBUTING.md][๐คcontributing].
|
|
718
|
+
|
|
719
|
+
### Code Coverage
|
|
720
|
+
|
|
721
|
+
<details markdown="1">
|
|
722
|
+
<summary>Coverage service badges</summary>
|
|
723
|
+
|
|
724
|
+
</details>
|
|
725
|
+
|
|
726
|
+
### ๐ช Code of Conduct
|
|
727
|
+
|
|
728
|
+
Everyone interacting with this project's codebases, issue trackers,
|
|
729
|
+
chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][๐ชconduct-img]][๐ชconduct].
|
|
730
|
+
|
|
731
|
+
## ๐ Contributors
|
|
732
|
+
|
|
733
|
+
[![Contributors][๐contributors-img]][๐contributors]
|
|
734
|
+
|
|
735
|
+
Made with [contributors-img][๐contrib-rocks].
|
|
736
|
+
|
|
737
|
+
Also see GitLab Contributors: [https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main][๐contributors-gl]
|
|
738
|
+
|
|
660
739
|
## ๐ Versioning
|
|
661
740
|
|
|
662
741
|
This library follows [![Semantic Versioning 2.0.0][๐semver-img]][๐semver] for its public API where practical.
|
|
@@ -690,6 +769,41 @@ See [LICENSE.md][๐license] for details.
|
|
|
690
769
|
|
|
691
770
|
If none of the available licenses suit your use case, please [contact us](mailto:floss@galtzo.com) to discuss a custom commercial license.
|
|
692
771
|
|
|
772
|
+
### ยฉ Copyright
|
|
773
|
+
|
|
774
|
+
See [LICENSE.md][๐license] for the official copyright notice.
|
|
775
|
+
|
|
776
|
+
<details markdown="1">
|
|
777
|
+
<summary>Copyright holders</summary>
|
|
778
|
+
|
|
779
|
+
- Required Notice: Copyright (c) 2026 Peter H. Boling
|
|
780
|
+
|
|
781
|
+
</details>
|
|
782
|
+
|
|
783
|
+
## ๐ค A request for help
|
|
784
|
+
|
|
785
|
+
Maintainers have teeth and need to pay their dentists.
|
|
786
|
+
After getting laid off in an RIF in March, and encountering difficulty finding a new one,
|
|
787
|
+
I began spending most of my time building open source tools.
|
|
788
|
+
I'm hoping to be able to pay for my kids' health insurance this month,
|
|
789
|
+
so if you value the work I am doing, I need your support.
|
|
790
|
+
Please consider sponsoring me or the project.
|
|
791
|
+
|
|
792
|
+
To join the community or get help, use the RubyForum or Discord.
|
|
793
|
+
|
|
794
|
+
[![Ruby Users Forum][โ๏ธruby-forum-img]][โ๏ธruby-forum]
|
|
795
|
+
[![Live Chat on Discord][โ๏ธdiscord-invite-img-ftb]][โ๏ธdiscord-invite]
|
|
796
|
+
|
|
797
|
+
To say "thanks!" โ๏ธ Join the community or ๐๏ธ send money.
|
|
798
|
+
|
|
799
|
+
[![Sponsor kettle-dev/kettle-jem 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] ๐ [![Donate on PayPal][๐paypal-bottom-img]][๐paypal]
|
|
800
|
+
|
|
801
|
+
### Please give the project a star โญ โฅ.
|
|
802
|
+
|
|
803
|
+
Many parts of this project are actively managed by a [kettle-jem](https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem) smart template utilizing [StructuredMerge.org](https://structuredmerge.org) merge contracts.
|
|
804
|
+
|
|
805
|
+
Thanks for RTFM. โบ๏ธ
|
|
806
|
+
|
|
693
807
|
[โณliberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
|
|
694
808
|
[โณliberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
|
|
695
809
|
[โณliberapay]: https://liberapay.com/pboling/donate
|
|
@@ -724,6 +838,7 @@ If none of the available licenses suit your use case, please [contact us](mailto
|
|
|
724
838
|
[โ๏ธruby-forum-top-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=flat&logo=discourse&label=Ruby%20Users%20Forum
|
|
725
839
|
[โ๏ธruby-forum-img]: https://img.shields.io/discourse/topics?server=https%3A%2F%2Fwww.rubyforum.org&style=for-the-badge&logo=discourse&label=Ruby%20Users%20Forum
|
|
726
840
|
[โ๏ธruby-forum]: https://www.rubyforum.org/tag/structuredmerge
|
|
841
|
+
|
|
727
842
|
[โbundle-group-pattern]: https://gist.github.com/pboling/4564780
|
|
728
843
|
[โณ๏ธgem-namespace]: https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem
|
|
729
844
|
[โณ๏ธnamespace-img]: https://img.shields.io/badge/namespace-Kettle::Jem-3C2D2D.svg?style=square&logo=ruby&logoColor=white
|
|
@@ -794,6 +909,7 @@ If none of the available licenses suit your use case, please [contact us](mailto
|
|
|
794
909
|
[๐contrib-rocks]: https://contrib.rocks
|
|
795
910
|
[๐contributors]: https://github.com/structuredmerge/structuredmerge-ruby/graphs/contributors
|
|
796
911
|
[๐contributors-img]: https://contrib.rocks/image?repo=structuredmerge/structuredmerge-ruby
|
|
912
|
+
[๐contributors-gl]: https://gitlab.com/structuredmerge/structuredmerge-ruby/-/graphs/main
|
|
797
913
|
[๐ชconduct]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/CODE_OF_CONDUCT.md
|
|
798
914
|
[๐ชconduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
|
|
799
915
|
[๐pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
|
|
@@ -807,7 +923,7 @@ If none of the available licenses suit your use case, please [contact us](mailto
|
|
|
807
923
|
[๐gitmoji]: https://gitmoji.dev
|
|
808
924
|
[๐gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
809
925
|
[๐งฎkloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
810
|
-
[๐งฎkloc-img]: https://img.shields.io/badge/KLOC-12.
|
|
926
|
+
[๐งฎkloc-img]: https://img.shields.io/badge/KLOC-12.182-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
811
927
|
[๐security]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/SECURITY.md
|
|
812
928
|
[๐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
813
929
|
[๐copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -816,6 +932,7 @@ If none of the available licenses suit your use case, please [contact us](mailto
|
|
|
816
932
|
[๐license-img]: https://img.shields.io/badge/License-AGPL--3.0--only_OR_PolyForm--Small--Business--1.0.0-259D6C.svg
|
|
817
933
|
[๐license-compat]: https://www.apache.org/legal/resolved.html#category-x
|
|
818
934
|
[๐license-compat-img]: https://img.shields.io/badge/Apache_Incompatible:_Category_X-%E2%9C%97-C0392B.svg?style=flat&logo=Apache
|
|
935
|
+
|
|
819
936
|
[๐ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
|
|
820
937
|
[๐ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-โ-259D6C.svg?style=flat
|
|
821
938
|
[๐yard-current]: http://rubydoc.info/gems/kettle-jem
|
|
@@ -827,3 +944,14 @@ If none of the available licenses suit your use case, please [contact us](mailto
|
|
|
827
944
|
[๐appraisal2]: https://github.com/appraisal-rb/appraisal2
|
|
828
945
|
[๐appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
|
|
829
946
|
[๐d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
|
|
947
|
+
|
|
948
|
+
<!-- kettle-jem:metadata:start -->
|
|
949
|
+
| Field | Value |
|
|
950
|
+
|---|---|
|
|
951
|
+
| Package | kettle-jem |
|
|
952
|
+
| Description | ๐ฎ Kettle::Jem provides gem scaffolding, templating, and setup automation using the *-merge gem family for AST-based file merging and token-resolver for template token resolution. Includes MergerConfig presets, YAML recipes, and a complete gem template scaffold. |
|
|
953
|
+
| Homepage | https://github.com/structuredmerge/structuredmerge-ruby |
|
|
954
|
+
| Source | https://github.com/structuredmerge/structuredmerge-ruby |
|
|
955
|
+
| License | `AGPL-3.0-only` OR `PolyForm-Small-Business-1.0.0` |
|
|
956
|
+
| Funding | https://github.com/sponsors/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/kettle-dev, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/kettle-jem, https://www.buymeacoffee.com/pboling |
|
|
957
|
+
<!-- kettle-jem:metadata:end -->
|
|
@@ -49,7 +49,7 @@ module Kettle
|
|
|
49
49
|
install_steps << appraisal_generate_step(project_root, env: setup_env, run_options: effective_run_options)
|
|
50
50
|
install_steps << rubocop_gradual_autocorrect_step(project_root, env: setup_env, run_options: effective_run_options)
|
|
51
51
|
install_steps << normalize_lockfile_platforms_step(project_root, env: setup_env, run_options: effective_run_options)
|
|
52
|
-
install_steps << normalize_lockfile_step(project_root, env: setup_env, run_options: effective_run_options)
|
|
52
|
+
install_steps << normalize_lockfile_step(project_root, env: setup_env, run_options: effective_run_options, repository: report.dig(:facts, :repository) || {})
|
|
53
53
|
install_steps << bundled_handoff_step(project_root: project_root, env: env, run_options: effective_run_options)
|
|
54
54
|
install_steps = execute_orchestration_steps(install_steps, project_root: project_root, env: setup_env, run_options: effective_run_options, command_runner: command_runner)
|
|
55
55
|
|
|
@@ -751,7 +751,7 @@ module Kettle
|
|
|
751
751
|
stdout.lines.map(&:strip).include?(gem_name.to_s)
|
|
752
752
|
end
|
|
753
753
|
|
|
754
|
-
def normalize_lockfile_step(project_root, env:, run_options: {})
|
|
754
|
+
def normalize_lockfile_step(project_root, env:, run_options: {}, repository: {})
|
|
755
755
|
if Kettle::Jem::DecisionPolicy.value_to_boolean((run_options || {})[:skip_lock_normalization])
|
|
756
756
|
return {
|
|
757
757
|
name: "bundle_lock_normalization",
|
|
@@ -780,7 +780,7 @@ module Kettle
|
|
|
780
780
|
name: "bundle_lock_normalization",
|
|
781
781
|
command: lockfile_normalization_command(project_root),
|
|
782
782
|
status: "ready",
|
|
783
|
-
env: normal_lockfile_env(project_root, env),
|
|
783
|
+
env: normal_lockfile_env(project_root, env, repository: repository),
|
|
784
784
|
reason: "bundle_lock_update_preserving_platforms_without_templating_overrides"
|
|
785
785
|
}
|
|
786
786
|
end
|
|
@@ -982,7 +982,7 @@ module Kettle
|
|
|
982
982
|
stdout.to_s.strip
|
|
983
983
|
end
|
|
984
984
|
|
|
985
|
-
def normal_lockfile_env(project_root, env)
|
|
985
|
+
def normal_lockfile_env(project_root, env, repository: {})
|
|
986
986
|
command_env = (env || {}).to_h.dup
|
|
987
987
|
strip_inherited_bundler_activation!(command_env)
|
|
988
988
|
command_env["K_JEM_TEMPLATING"] = "false"
|
|
@@ -991,7 +991,7 @@ module Kettle
|
|
|
991
991
|
end
|
|
992
992
|
gemfile = File.join(project_root.to_s, "Gemfile")
|
|
993
993
|
command_env["BUNDLE_GEMFILE"] = gemfile if File.file?(gemfile)
|
|
994
|
-
apply_direct_sibling_lockfile_env!(project_root, command_env)
|
|
994
|
+
apply_direct_sibling_lockfile_env!(project_root, command_env, repository: repository)
|
|
995
995
|
%w[
|
|
996
996
|
BUNDLE_PATH
|
|
997
997
|
BUNDLE_WITH
|
|
@@ -1002,7 +1002,9 @@ module Kettle
|
|
|
1002
1002
|
command_env
|
|
1003
1003
|
end
|
|
1004
1004
|
|
|
1005
|
-
def apply_direct_sibling_lockfile_env!(project_root, command_env)
|
|
1005
|
+
def apply_direct_sibling_lockfile_env!(project_root, command_env, repository: {})
|
|
1006
|
+
return unless Kettle::Jem.send(:repository_monorepo_subproject?, repository)
|
|
1007
|
+
|
|
1006
1008
|
gemspec_path = Dir.glob(File.join(project_root.to_s, "*.gemspec")).min
|
|
1007
1009
|
return unless gemspec_path
|
|
1008
1010
|
|
|
@@ -1012,7 +1014,8 @@ module Kettle
|
|
|
1012
1014
|
:direct_sibling_runtime_gems,
|
|
1013
1015
|
project_root,
|
|
1014
1016
|
metadata,
|
|
1015
|
-
package_name: package_name
|
|
1017
|
+
package_name: package_name,
|
|
1018
|
+
repository: repository
|
|
1016
1019
|
)
|
|
1017
1020
|
return if direct_sibling_gems.empty?
|
|
1018
1021
|
|
|
@@ -118,7 +118,7 @@ Gem::Specification.new do |spec|
|
|
|
118
118
|
# and preferably a modular one (see gemfiles/modular/*.gemfile).
|
|
119
119
|
|
|
120
120
|
# Dev, Test, & Release Tasks
|
|
121
|
-
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.
|
|
121
|
+
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.19") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
122
122
|
|
|
123
123
|
# Security
|
|
124
124
|
spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP}
|
|
7
7
|
|
|
8
|
+
local_gem_requirements = {KJ|LOCAL_GEM_REQUIREMENTS}
|
|
9
|
+
|
|
8
10
|
local_gems = %w[{KJ|KETTLE_DEV_LOCAL_GEMS}]
|
|
9
11
|
kettle_dev_nomono_options = {
|
|
10
12
|
prefix: "KETTLE_DEV",
|
|
@@ -17,29 +19,18 @@ kettle_dev_nomono_options = {
|
|
|
17
19
|
|
|
18
20
|
# export KETTLE_DEV_DEV=/path/to/my
|
|
19
21
|
platform :mri do
|
|
20
|
-
|
|
21
|
-
# rejects duplicate declarations with different requirements or sources.
|
|
22
|
-
kettle_dev_dependency = instance_variable_get(:@dependencies).to_a.find { |dependency| dependency.name == "kettle-dev" }
|
|
23
|
-
kettle_dev_local_path = nomono_gems(
|
|
24
|
-
gems: %w[kettle-dev],
|
|
25
|
-
**kettle_dev_nomono_options
|
|
26
|
-
).fetch("kettle-dev", nil)
|
|
27
|
-
if kettle_dev_dependency && kettle_dev_local_path
|
|
28
|
-
instance_variable_get(:@dependencies).delete(kettle_dev_dependency)
|
|
29
|
-
gem kettle_dev_dependency.name, *kettle_dev_dependency.requirements_list, path: kettle_dev_local_path
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
33
|
-
local_gems_to_eval = local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems
|
|
22
|
+
local_gems_to_eval = local_gems - %w[{KJ|PACKAGE_NAME}]
|
|
34
23
|
|
|
35
24
|
eval_nomono_gems(
|
|
36
25
|
gems: local_gems_to_eval,
|
|
26
|
+
requirements: local_gem_requirements,
|
|
37
27
|
**kettle_dev_nomono_options
|
|
38
28
|
)
|
|
39
29
|
|
|
40
30
|
if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0
|
|
41
31
|
eval_nomono_gems(
|
|
42
32
|
gems: %w[turbo_tests2],
|
|
33
|
+
requirements: local_gem_requirements,
|
|
43
34
|
prefix: "GALTZO_FLOSS",
|
|
44
35
|
path_env: "GALTZO_FLOSS_DEV",
|
|
45
36
|
vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS",
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP}
|
|
8
8
|
|
|
9
|
+
# Declared dependency requirements, supplied by project facts.
|
|
10
|
+
local_gem_requirements = {KJ|LOCAL_GEM_REQUIREMENTS}
|
|
11
|
+
|
|
9
12
|
structuredmerge_local_gems = %w[
|
|
10
13
|
tree_haver
|
|
11
14
|
ast-merge
|
|
@@ -61,28 +64,17 @@ structuredmerge_local_gems_to_eval = structuredmerge_local_gems - %w[{KJ|PACKAGE
|
|
|
61
64
|
if ENV.fetch("STRUCTUREDMERGE_DEV", "false").casecmp("false") != 0
|
|
62
65
|
eval_nomono_gems(
|
|
63
66
|
gems: structuredmerge_local_gems_to_eval,
|
|
67
|
+
requirements: local_gem_requirements,
|
|
64
68
|
**structuredmerge_nomono_options
|
|
65
69
|
)
|
|
66
70
|
end
|
|
67
71
|
|
|
68
72
|
if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false") != 0
|
|
69
|
-
|
|
70
|
-
# rejects duplicate declarations with different requirements or sources.
|
|
71
|
-
kettle_dev_dependency = instance_variable_get(:@dependencies).to_a.find { |dependency| dependency.name == "kettle-dev" }
|
|
72
|
-
kettle_dev_local_path = nomono_gems(
|
|
73
|
-
gems: %w[kettle-dev],
|
|
74
|
-
**kettle_dev_nomono_options
|
|
75
|
-
).fetch("kettle-dev", nil)
|
|
76
|
-
if kettle_dev_dependency && kettle_dev_local_path
|
|
77
|
-
instance_variable_get(:@dependencies).delete(kettle_dev_dependency)
|
|
78
|
-
gem kettle_dev_dependency.name, *kettle_dev_dependency.requirements_list, path: kettle_dev_local_path
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
82
|
-
kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems
|
|
73
|
+
kettle_dev_local_gems_to_eval = kettle_dev_local_gems - %w[{KJ|PACKAGE_NAME}]
|
|
83
74
|
|
|
84
75
|
eval_nomono_gems(
|
|
85
76
|
gems: kettle_dev_local_gems_to_eval,
|
|
77
|
+
requirements: local_gem_requirements,
|
|
86
78
|
**kettle_dev_nomono_options
|
|
87
79
|
)
|
|
88
80
|
end
|
|
@@ -6,7 +6,7 @@ shimmed_gem_path = ENV["KETTLE_JEM_SHIMMED_GEM_PATH"].to_s
|
|
|
6
6
|
gem "{KJ|SHIMMED_GEM_NAME}", path: shimmed_gem_path unless shimmed_gem_path.empty?
|
|
7
7
|
|
|
8
8
|
# Local workspace dependency wiring for templating_local.gemfile overrides.
|
|
9
|
-
gem "nomono", "~> 1.1", ">= 1.1.
|
|
9
|
+
gem "nomono", "~> 1.1", ">= 1.1.14", require: false # ruby >= 3.2.0
|
|
10
10
|
|
|
11
11
|
# Templating and the StructuredMerge family share this modular Gemfile.
|
|
12
12
|
# kettle-jem needs StructuredMerge to template, and kettle-changelog needs it at
|
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.add_dependency "{KJ|SHIMMED_GEM_NAME}"
|
|
31
31
|
|
|
32
32
|
# Dev, Test, & Release Tasks
|
|
33
|
-
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.
|
|
33
|
+
spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.19") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
34
34
|
|
|
35
35
|
# Tasks
|
|
36
36
|
spec.add_development_dependency "rake", "~> 13.0"
|
data/lib/kettle/jem/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "7.1.
|
|
8
|
+
VERSION = "7.1.35"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
data/lib/kettle/jem.rb
CHANGED
|
@@ -62,8 +62,8 @@ module Kettle
|
|
|
62
62
|
# set in place before Bundler is allowed to evaluate that destination.
|
|
63
63
|
TEMPLATE_MANAGED_DEPENDENCIES = [
|
|
64
64
|
{name: PACKAGE_NAME, requirements: ["~> 7.1", ">= 7.1.28"], bootstrap: false},
|
|
65
|
-
{name: "nomono", requirements: ["~> 1.1", ">= 1.1.
|
|
66
|
-
{name: "kettle-dev", requirements: ["~> 3.1", ">= 3.1.
|
|
65
|
+
{name: "nomono", requirements: ["~> 1.1", ">= 1.1.14"], bootstrap: true},
|
|
66
|
+
{name: "kettle-dev", requirements: ["~> 3.1", ">= 3.1.19"], bootstrap: true},
|
|
67
67
|
{
|
|
68
68
|
name: "kettle-changelog",
|
|
69
69
|
requirements: ["~> 1.0", ">= 1.0.13"],
|
|
@@ -5120,9 +5120,9 @@ module Kettle
|
|
|
5120
5120
|
[
|
|
5121
5121
|
{name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.5"\n)},
|
|
5122
5122
|
{name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
|
|
5123
|
-
{name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.1", ">= 3.1.
|
|
5123
|
+
{name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.1", ">= 3.1.19"\n)},
|
|
5124
5124
|
{name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.17"\n)},
|
|
5125
|
-
{name: "kettle-family", source: %(gem "kettle-family", "~> 1.3", ">= 1.3.
|
|
5125
|
+
{name: "kettle-family", source: %(gem "kettle-family", "~> 1.3", ">= 1.3.25"\n)},
|
|
5126
5126
|
{name: PACKAGE_NAME, source: kettle_jem_dependency_source},
|
|
5127
5127
|
{name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.27"\n)},
|
|
5128
5128
|
{name: "rake", source: %(gem "rake", "~> 13.0"\n)},
|
|
@@ -8764,6 +8764,10 @@ module Kettle
|
|
|
8764
8764
|
if marker && activation_assignments.any?
|
|
8765
8765
|
first_line = activation_assignments.map { |node| node.location.start_line }.min
|
|
8766
8766
|
first_line = preceding_comment_block_start_line(output.lines, first_line)
|
|
8767
|
+
requirements_record = local_variable_assignment_record(output, :local_gem_requirements)
|
|
8768
|
+
if requirements_record&.fetch(:start_line)&.between?(first_line, marker.fetch(:start_line) - 1)
|
|
8769
|
+
bootstrap = "#{bootstrap}#{requirements_record.fetch(:source)}\n\n"
|
|
8770
|
+
end
|
|
8767
8771
|
output = replace_source_range_lines(output, first_line, marker.fetch(:start_line) - 1, bootstrap) if first_line < marker.fetch(:start_line)
|
|
8768
8772
|
output = remove_local_gemfile_nomono_loader_blocks_after_marker(output)
|
|
8769
8773
|
output = remove_redundant_nomono_bundler_requires_after_marker(output)
|
|
@@ -9017,6 +9021,7 @@ module Kettle
|
|
|
9017
9021
|
replace_source_range_lines(output, output_record.fetch(:start_line), output_record.fetch(:end_line), replacement)
|
|
9018
9022
|
else
|
|
9019
9023
|
anchor = local_variable_assignment_record(output, :local_gems) ||
|
|
9024
|
+
local_variable_assignment_record(output, :structuredmerge_local_gems) ||
|
|
9020
9025
|
local_variable_assignment_record(output, :declared_gems)
|
|
9021
9026
|
return output unless anchor
|
|
9022
9027
|
|
|
@@ -9870,15 +9875,26 @@ module Kettle
|
|
|
9870
9875
|
entries.any? do |entry|
|
|
9871
9876
|
entry["gem"] == conflict.fetch(:name) &&
|
|
9872
9877
|
entry["direct"] == conflict.fetch(:direct) &&
|
|
9873
|
-
entry["modular"]
|
|
9878
|
+
modular_dependency_paths_match?(entry["modular"], conflict.fetch(:modular))
|
|
9874
9879
|
end
|
|
9875
9880
|
end
|
|
9876
9881
|
|
|
9882
|
+
# Local modular Gemfiles are environment-selected counterparts of the
|
|
9883
|
+
# released modular Gemfile. Treat their paths as one logical decision key;
|
|
9884
|
+
# otherwise a decision for style.gemfile will not cover style_local.gemfile.
|
|
9885
|
+
def modular_dependency_paths_match?(left, right)
|
|
9886
|
+
normalize_modular_dependency_path(left) == normalize_modular_dependency_path(right)
|
|
9887
|
+
end
|
|
9888
|
+
|
|
9889
|
+
def normalize_modular_dependency_path(path)
|
|
9890
|
+
path.to_s.sub(/_local\.gemfile\z/, ".gemfile")
|
|
9891
|
+
end
|
|
9892
|
+
|
|
9877
9893
|
def modular_dependency_conflict_decided?(decisions, conflict)
|
|
9878
9894
|
decisions.any? do |decision|
|
|
9879
9895
|
decision.fetch("gem") == conflict.fetch(:name) &&
|
|
9880
9896
|
decision.fetch("direct") == conflict.fetch(:direct) &&
|
|
9881
|
-
decision.fetch("modular")
|
|
9897
|
+
modular_dependency_paths_match?(decision.fetch("modular"), conflict.fetch(:modular)) &&
|
|
9882
9898
|
case decision.fetch("action")
|
|
9883
9899
|
when "remove_modular_gem", "remove_x_std_lib_eval", "remove_direct_gem"
|
|
9884
9900
|
true
|
|
@@ -15533,7 +15549,8 @@ module Kettle
|
|
|
15533
15549
|
project_root,
|
|
15534
15550
|
gemspec_metadata,
|
|
15535
15551
|
package_name: package_name,
|
|
15536
|
-
local_modular_eval_paths: local_modular_eval_paths
|
|
15552
|
+
local_modular_eval_paths: local_modular_eval_paths,
|
|
15553
|
+
repository: repository
|
|
15537
15554
|
)
|
|
15538
15555
|
compact_hash(
|
|
15539
15556
|
freeze_token: config.dig("defaults", "freeze_token").to_s.empty? ? "kettle-jem" : config.dig("defaults", "freeze_token").to_s,
|
|
@@ -15543,6 +15560,7 @@ module Kettle
|
|
|
15543
15560
|
template_run_year: run_timestamp.year.to_s,
|
|
15544
15561
|
kettle_dev_local_gems: kettle_dev_local_gems(config),
|
|
15545
15562
|
local_gemfile_nomono_bootstrap: local_gemfile_nomono_bootstrap(package_name),
|
|
15563
|
+
local_gem_requirements: gemspec_local_gem_requirements(gemspec_metadata),
|
|
15546
15564
|
main_gemfile_kettle_family_gem: main_gemfile_kettle_family_gem(package_name),
|
|
15547
15565
|
main_gemfile_nomono_bootstrap: main_gemfile_nomono_bootstrap(package_name),
|
|
15548
15566
|
package_name: package_name.to_s,
|
|
@@ -15561,12 +15579,13 @@ module Kettle
|
|
|
15561
15579
|
source_url: source_url,
|
|
15562
15580
|
project_root: project_root,
|
|
15563
15581
|
repository: repository,
|
|
15582
|
+
requirements: gemspec_local_gem_requirements(gemspec_metadata),
|
|
15564
15583
|
local_modular_eval_paths: local_modular_eval_paths.values.flatten
|
|
15565
15584
|
)
|
|
15566
15585
|
)
|
|
15567
15586
|
end
|
|
15568
15587
|
|
|
15569
|
-
def direct_sibling_runtime_gems(project_root, gemspec_metadata, package_name:, local_modular_eval_paths: {})
|
|
15588
|
+
def direct_sibling_runtime_gems(project_root, gemspec_metadata, package_name:, local_modular_eval_paths: {}, repository: {})
|
|
15570
15589
|
return [] unless project_root && gemspec_metadata.is_a?(Hash)
|
|
15571
15590
|
|
|
15572
15591
|
sibling_root = File.expand_path("..", project_root.to_s)
|
|
@@ -15586,6 +15605,22 @@ module Kettle
|
|
|
15586
15605
|
pending.concat(gemspec_runtime_dependency_names(sibling_metadata))
|
|
15587
15606
|
end
|
|
15588
15607
|
|
|
15608
|
+
# A monorepo of sibling gems must resolve every sibling from local
|
|
15609
|
+
# paths, never from the registry: published registry metadata for
|
|
15610
|
+
# released siblings conflicts with the local graph whenever the family
|
|
15611
|
+
# is mid-release (version-coupled sibling pins target the next,
|
|
15612
|
+
# unpublished version, and external tooling like kettle-family pulls
|
|
15613
|
+
# family members transitively). Wire all family members, not just the
|
|
15614
|
+
# dependency-reachable closure.
|
|
15615
|
+
if repository_monorepo_subproject?(repository) && File.directory?(sibling_root)
|
|
15616
|
+
Dir.children(sibling_root).sort.each do |name|
|
|
15617
|
+
next if discovered.include?(name) || excluded.include?(name)
|
|
15618
|
+
next unless direct_sibling_directory_defines_gem?(File.join(sibling_root, name), name)
|
|
15619
|
+
|
|
15620
|
+
discovered << name
|
|
15621
|
+
end
|
|
15622
|
+
end
|
|
15623
|
+
|
|
15589
15624
|
discovered.reject { |name| excluded.include?(name) }
|
|
15590
15625
|
end
|
|
15591
15626
|
|
|
@@ -15650,6 +15685,19 @@ module Kettle
|
|
|
15650
15685
|
end
|
|
15651
15686
|
end
|
|
15652
15687
|
|
|
15688
|
+
# Reuse the dependency objects in project facts. Never infer a requirement
|
|
15689
|
+
# from a sibling's current version or scrape a rendered modular Gemfile.
|
|
15690
|
+
def gemspec_local_gem_requirements(gemspec_metadata)
|
|
15691
|
+
%i[runtime_dependencies development_dependencies].each_with_object({}) do |kind, requirements|
|
|
15692
|
+
Array(gemspec_metadata[kind] || gemspec_metadata[kind.to_s]).each do |dependency|
|
|
15693
|
+
next unless dependency.respond_to?(:name) && dependency.respond_to?(:requirements_list)
|
|
15694
|
+
|
|
15695
|
+
name = dependency.name.to_s
|
|
15696
|
+
requirements[name] = (Array(requirements[name]) + dependency.requirements_list).uniq
|
|
15697
|
+
end
|
|
15698
|
+
end.sort.to_h
|
|
15699
|
+
end
|
|
15700
|
+
|
|
15653
15701
|
def gemspec_runtime_dependency_names(gemspec_metadata)
|
|
15654
15702
|
dependencies = Array(
|
|
15655
15703
|
gemspec_metadata[:runtime_dependencies] || gemspec_metadata["runtime_dependencies"]
|
|
@@ -15662,7 +15710,7 @@ module Kettle
|
|
|
15662
15710
|
end
|
|
15663
15711
|
end
|
|
15664
15712
|
|
|
15665
|
-
def main_gemfile_direct_sibling_block(gems, package_name:, source_url:, project_root:, repository: {}, local_modular_eval_paths: [])
|
|
15713
|
+
def main_gemfile_direct_sibling_block(gems, package_name:, source_url:, project_root:, repository: {}, requirements: {}, local_modular_eval_paths: [])
|
|
15666
15714
|
names = Array(gems).map(&:to_s).reject(&:empty?).uniq
|
|
15667
15715
|
eval_paths = Array(local_modular_eval_paths).map(&:to_s).reject(&:empty?).uniq.sort
|
|
15668
15716
|
return "" if names.empty? && eval_paths.empty?
|
|
@@ -15705,6 +15753,7 @@ module Kettle
|
|
|
15705
15753
|
|
|
15706
15754
|
eval_nomono_gems(
|
|
15707
15755
|
gems: direct_sibling_gems,
|
|
15756
|
+
requirements: #{requirements.slice(*names).inspect},
|
|
15708
15757
|
prefix: "#{prefix}",
|
|
15709
15758
|
path_env: "#{dev_env}",
|
|
15710
15759
|
root: #{root_literal}
|
|
@@ -15867,6 +15916,7 @@ module Kettle
|
|
|
15867
15916
|
"KJ|TEMPLATE_RUN_YEAR" => project_runtime[:template_run_year].to_s,
|
|
15868
15917
|
"KJ|KETTLE_DEV_LOCAL_GEMS" => project_runtime[:kettle_dev_local_gems].to_s,
|
|
15869
15918
|
"KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP" => project_runtime[:local_gemfile_nomono_bootstrap].to_s,
|
|
15919
|
+
"KJ|LOCAL_GEM_REQUIREMENTS" => (project_runtime[:local_gem_requirements] || {}).inspect,
|
|
15870
15920
|
"KJ|MAIN_GEMFILE_KETTLE_FAMILY_GEM" => project_runtime[:main_gemfile_kettle_family_gem].to_s,
|
|
15871
15921
|
"KJ|MAIN_GEMFILE_NOMONO_BOOTSTRAP" => project_runtime[:main_gemfile_nomono_bootstrap].to_s,
|
|
15872
15922
|
"KJ|MAIN_GEMFILE_DIRECT_SIBLING_BLOCK" => project_runtime[:main_gemfile_direct_sibling_block].to_s,
|
|
@@ -15895,7 +15945,7 @@ module Kettle
|
|
|
15895
15945
|
def main_gemfile_kettle_family_gem(package_name)
|
|
15896
15946
|
return "" if package_name.to_s == "kettle-family"
|
|
15897
15947
|
|
|
15898
|
-
%(gem "kettle-family", "~> 1.3", ">= 1.3.
|
|
15948
|
+
%(gem "kettle-family", "~> 1.3", ">= 1.3.25"\n)
|
|
15899
15949
|
end
|
|
15900
15950
|
|
|
15901
15951
|
def main_gemfile_nomono_bootstrap(package_name)
|
|
@@ -15908,7 +15958,7 @@ module Kettle
|
|
|
15908
15958
|
end
|
|
15909
15959
|
|
|
15910
15960
|
def nomono_gemfile_declaration
|
|
15911
|
-
%(gem "nomono", "~> 1.1", ">= 1.1.
|
|
15961
|
+
%(gem "nomono", "~> 1.1", ">= 1.1.14", require: false # ruby >= 3.2.0)
|
|
15912
15962
|
end
|
|
15913
15963
|
|
|
15914
15964
|
def local_gemfile_nomono_bootstrap(_package_name)
|
|
@@ -15920,7 +15970,7 @@ module Kettle
|
|
|
15920
15970
|
# Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line.
|
|
15921
15971
|
# Bundler records that dependency during Gemfile evaluation, but it does not
|
|
15922
15972
|
# activate that exact version before the immediate `require "nomono/bundler"`.
|
|
15923
|
-
nomono_activation_requirements = ["~> 1.1", ">= 1.1.
|
|
15973
|
+
nomono_activation_requirements = ["~> 1.1", ">= 1.1.14"]
|
|
15924
15974
|
nomono_requirement = Gem::Requirement.new(nomono_activation_requirements)
|
|
15925
15975
|
nomono_already_activated = Gem.loaded_specs["nomono"]
|
|
15926
15976
|
nomono_lockfile = File.expand_path(#{lockfile_path.inspect}, __dir__)
|
|
@@ -20810,7 +20860,7 @@ module Kettle
|
|
|
20810
20860
|
"actions/checkout" => "actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1",
|
|
20811
20861
|
"actions/cache" => "actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0",
|
|
20812
20862
|
"appraisal-rb/setup-ruby-flash" => "appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14",
|
|
20813
|
-
"ruby/setup-ruby" => "ruby/setup-ruby@
|
|
20863
|
+
"ruby/setup-ruby" => "ruby/setup-ruby@824c0e29fdfc7d689c191c27acc969d2d04b7dd8 # v1.331.0",
|
|
20814
20864
|
"coverallsapp/github-action" => "coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8",
|
|
20815
20865
|
"qltysh/qlty-action/coverage" => "qltysh/qlty-action/coverage@c9b09987143d1e4ac955f4803c7bea742102feb5 # v2.4.0",
|
|
20816
20866
|
"codecov/codecov-action" => "codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1",
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-jem
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.1.
|
|
4
|
+
version: 7.1.35
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -226,7 +226,7 @@ dependencies:
|
|
|
226
226
|
version: '1.0'
|
|
227
227
|
- - ">="
|
|
228
228
|
- !ruby/object:Gem::Version
|
|
229
|
-
version: 1.0.
|
|
229
|
+
version: 1.0.13
|
|
230
230
|
type: :runtime
|
|
231
231
|
prerelease: false
|
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -236,7 +236,7 @@ dependencies:
|
|
|
236
236
|
version: '1.0'
|
|
237
237
|
- - ">="
|
|
238
238
|
- !ruby/object:Gem::Version
|
|
239
|
-
version: 1.0.
|
|
239
|
+
version: 1.0.13
|
|
240
240
|
- !ruby/object:Gem::Dependency
|
|
241
241
|
name: kettle-dev
|
|
242
242
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -246,7 +246,7 @@ dependencies:
|
|
|
246
246
|
version: '3.1'
|
|
247
247
|
- - ">="
|
|
248
248
|
- !ruby/object:Gem::Version
|
|
249
|
-
version: 3.1.
|
|
249
|
+
version: 3.1.18
|
|
250
250
|
type: :runtime
|
|
251
251
|
prerelease: false
|
|
252
252
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -256,7 +256,7 @@ dependencies:
|
|
|
256
256
|
version: '3.1'
|
|
257
257
|
- - ">="
|
|
258
258
|
- !ruby/object:Gem::Version
|
|
259
|
-
version: 3.1.
|
|
259
|
+
version: 3.1.18
|
|
260
260
|
- !ruby/object:Gem::Dependency
|
|
261
261
|
name: kettle-gha-pins
|
|
262
262
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -676,7 +676,7 @@ dependencies:
|
|
|
676
676
|
version: '2.0'
|
|
677
677
|
- - ">="
|
|
678
678
|
- !ruby/object:Gem::Version
|
|
679
|
-
version: 2.0.
|
|
679
|
+
version: 2.0.27
|
|
680
680
|
type: :development
|
|
681
681
|
prerelease: false
|
|
682
682
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -686,27 +686,27 @@ dependencies:
|
|
|
686
686
|
version: '2.0'
|
|
687
687
|
- - ">="
|
|
688
688
|
- !ruby/object:Gem::Version
|
|
689
|
-
version: 2.0.
|
|
689
|
+
version: 2.0.27
|
|
690
690
|
- !ruby/object:Gem::Dependency
|
|
691
691
|
name: turbo_tests2
|
|
692
692
|
requirement: !ruby/object:Gem::Requirement
|
|
693
693
|
requirements:
|
|
694
694
|
- - "~>"
|
|
695
695
|
- !ruby/object:Gem::Version
|
|
696
|
-
version: '
|
|
696
|
+
version: '4.0'
|
|
697
697
|
- - ">="
|
|
698
698
|
- !ruby/object:Gem::Version
|
|
699
|
-
version:
|
|
699
|
+
version: 4.0.0
|
|
700
700
|
type: :development
|
|
701
701
|
prerelease: false
|
|
702
702
|
version_requirements: !ruby/object:Gem::Requirement
|
|
703
703
|
requirements:
|
|
704
704
|
- - "~>"
|
|
705
705
|
- !ruby/object:Gem::Version
|
|
706
|
-
version: '
|
|
706
|
+
version: '4.0'
|
|
707
707
|
- - ">="
|
|
708
708
|
- !ruby/object:Gem::Version
|
|
709
|
-
version:
|
|
709
|
+
version: 4.0.0
|
|
710
710
|
- !ruby/object:Gem::Dependency
|
|
711
711
|
name: ruby-progressbar
|
|
712
712
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -997,10 +997,10 @@ licenses:
|
|
|
997
997
|
- PolyForm-Small-Business-1.0.0
|
|
998
998
|
metadata:
|
|
999
999
|
homepage_uri: https://structuredmerge.org
|
|
1000
|
-
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.
|
|
1001
|
-
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.
|
|
1000
|
+
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.35
|
|
1001
|
+
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.35/CHANGELOG.md
|
|
1002
1002
|
bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
|
|
1003
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.
|
|
1003
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.35
|
|
1004
1004
|
funding_uri: https://github.com/sponsors/pboling
|
|
1005
1005
|
wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
|
|
1006
1006
|
news_uri: https://www.railsbling.com/tags/kettle-jem
|
metadata.gz.sig
CHANGED
|
Binary file
|