nomono 1.0.4 → 1.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f54fa725e5cd978c71be4e85cae68adeba3411aeefee955c22201483009e0fb7
4
- data.tar.gz: d78b72422c440ed8c38983618e2dfee34df5498e9e4f1862f7ea89379ab7515a
3
+ metadata.gz: 3b3d1b4a98dc51bea24e987866d3065d1a1f2ee5050828b66da8c83c103439ea
4
+ data.tar.gz: 71fe998dd40db72d01ceed74f7feafd0a72bb7ddead54e0cab71d0656e91c981
5
5
  SHA512:
6
- metadata.gz: 819d115aa83775ee4baf06c6c1625dbd47c5ca784e6386cc40e87dc4bfc6fdd8062c38afa6662508acd9c5b42effe232bd9e0b24e63a11aaaf1c3a5ef3c3fb03
7
- data.tar.gz: '020899810c511ff60a1dce01c9d4a4da9835bbd9364085fd981faea0047ac5471100a4df47c5754b0c959c3fd727fcf982b3f56fe1399a37e34abd9445c42647'
6
+ metadata.gz: d8af201b7224efcd26898b3c9acf1a93cd1f5a69b24639875ca93e15b645b35a5df20052636a57c74be79e4be62cea63727665daeb75e82d6d0711675d17a061
7
+ data.tar.gz: 6845ef45c51065af514c15803bce0173a41e5e5ba48840adde953b5435de8b6c0be58245a737f9447ff9fa6e81c176117a3562a79c471df3c2619633a4879e0d
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,43 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.0.6] - 2026-06-22
34
+
35
+ - TAG: [v1.0.6][1.0.6t]
36
+ - COVERAGE: 99.01% -- 100/101 lines in 6 files
37
+ - BRANCH COVERAGE: 96.67% -- 29/30 branches in 6 files
38
+ - 8.70% documented
39
+
40
+ ### Fixed
41
+
42
+ - Removed the unnecessary `version_gem` runtime dependency from nomono itself,
43
+ allowing Gemfiles generated by `kettle-jem` to load `nomono/bundler` directly
44
+ while Bundler is still evaluating local sibling-gem overrides.
45
+ - Split the runtime and Bundler entry points so `require "nomono"` loads the
46
+ resolver API without mutating `Bundler::Dsl`, while `require "nomono/bundler"`
47
+ remains the explicit Gemfile integration hook.
48
+
49
+ ## [1.0.5] - 2026-06-21
50
+
51
+ - TAG: [v1.0.5][1.0.5t]
52
+ - COVERAGE: 97.73% -- 86/88 lines in 5 files
53
+ - BRANCH COVERAGE: 100.00% -- 28/28 branches in 5 files
54
+ - 12.50% documented
55
+
56
+ ### Added
57
+
58
+ - Added support for JRuby 10.1 and TruffleRuby 34.0.
59
+
60
+ ### Changed
61
+
62
+ - Retemplated project metadata and CI/development automation with `kettle-jem` v7.0.0.
63
+
64
+ ### Fixed
65
+
66
+ - Corrected OpenCollective funding metadata to use the `kettle-dev` collective.
67
+ - Updated the default local workspace root from `$HOME/src/kettle-rb` to
68
+ `$HOME/src/my`.
69
+
33
70
  ## [1.0.4] - 2026-06-14
34
71
 
35
72
  - TAG: [v1.0.4][1.0.4t]
@@ -123,14 +160,18 @@ Please file a bug if you notice a violation of semantic versioning.
123
160
  - TAG: [v1.0.0][1.0.0t]
124
161
  - 12.50% documented
125
162
 
126
- [Unreleased]: https://github.com/kettle-dev/nomono/compare/v1.0.4...HEAD
163
+ [Unreleased]: https://github.com/kettle-dev/nomono/compare/v1.0.6...HEAD
164
+ [1.0.6]: https://github.com/kettle-dev/nomono/compare/v1.0.5...v1.0.6
165
+ [1.0.6t]: https://github.com/kettle-dev/nomono/releases/tag/v1.0.6
166
+ [1.0.5]: https://github.com/kettle-dev/nomono/compare/v1.0.4...v1.0.5
167
+ [1.0.5t]: https://github.com/kettle-dev/nomono/releases/tag/v1.0.5
127
168
  [1.0.4]: https://github.com/kettle-dev/nomono/compare/v1.0.3...v1.0.4
128
169
  [1.0.4t]: https://github.com/kettle-dev/nomono/releases/tag/v1.0.4
129
170
  [1.0.3]: https://github.com/kettle-dev/nomono/compare/v1.0.2...v1.0.3
130
171
  [1.0.3t]: https://github.com/kettle-dev/nomono/releases/tag/v1.0.3
131
- [1.0.2]: https://github.com/kettle-rb/nomono/compare/v1.0.1...v1.0.2
132
- [1.0.2t]: https://github.com/kettle-rb/nomono/releases/tag/v1.0.2
133
- [1.0.1]: https://github.com/kettle-rb/nomono/compare/v1.0.0...v1.0.1
134
- [1.0.1t]: https://github.com/kettle-rb/nomono/releases/tag/v1.0.1
135
- [1.0.0]: https://github.com/kettle-rb/nomono/compare/3080fe8ceff657265445e8b4936aa2a90faa37f9...v1.0.0
136
- [1.0.0t]: https://github.com/kettle-rb/nomono/tags/v1.0.0
172
+ [1.0.2]: https://github.com/kettle-dev/nomono/compare/v1.0.1...v1.0.2
173
+ [1.0.2t]: https://github.com/kettle-dev/nomono/releases/tag/v1.0.2
174
+ [1.0.1]: https://github.com/kettle-dev/nomono/compare/v1.0.0...v1.0.1
175
+ [1.0.1t]: https://github.com/kettle-dev/nomono/releases/tag/v1.0.1
176
+ [1.0.0]: https://github.com/kettle-dev/nomono/compare/3080fe8ceff657265445e8b4936aa2a90faa37f9...v1.0.0
177
+ [1.0.0t]: https://github.com/kettle-dev/nomono/tags/v1.0.0
data/CONTRIBUTING.md CHANGED
@@ -109,14 +109,14 @@ Git diff driver setup
109
109
  - Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local `git diff` uses semantic drivers.
110
110
 
111
111
  ```console
112
- K_JEM_TEMPLATING=true bundle exec kettle-jem install
112
+ K_JEM_TEMPLATING=true kettle-jem install
113
113
  ```
114
114
 
115
115
  Troubleshooting Git diffs
116
116
  - Use `git diff --no-ext-diff` to compare against Git's built-in diff output.
117
117
  - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect.
118
118
  - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --local --get-regexp '^diff\.smorg-'`.
119
- - To remove managed local entries, run `K_JEM_TEMPLATING=true bundle exec kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
120
120
 
121
121
  For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
122
122
 
data/FUNDING.md CHANGED
@@ -6,7 +6,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
6
6
 
7
7
  [![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]
8
8
 
9
- [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
@@ -16,12 +16,8 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
16
16
  [🖇osc-sponsors-i]: https://opencollective.com/kettle-dev/sponsors/badge.svg?style=flat
17
17
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
- [🖇polar]: https://polar.sh/pboling
21
19
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
20
  [🖇kofi]: https://ko-fi.com/pboling
23
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
- [🖇patreon]: https://patreon.com/galtzo
25
21
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
26
22
  [🖇buyme]: https://www.buymeacoffee.com/pboling
27
23
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
data/README.md CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
  `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.
12
12
 
13
- [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
13
+ [![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 at ko-fi.com][🖇kofi-img]][🖇kofi]
14
14
 
15
- <details>
15
+ <details markdown="1">
16
16
  <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
17
17
 
18
18
  I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
@@ -28,15 +28,17 @@ It provides two Gemfile macros:
28
28
  - `nomono_gems(**opts)` returns `{ gem_name => absolute_path }`
29
29
  - `eval_nomono_gems(**opts)` directly emits `gem "name", path: "..."`
30
30
 
31
- The API mirrors existing `*_local.gemfile` patterns used in kettle-rb projects, but centralizes path/env logic in one reusable library.
31
+ The API mirrors existing `*_local.gemfile` patterns used in kettle-dev projects, but centralizes path/env logic in one reusable library.
32
+ Use `require "nomono"` for the runtime resolver API.
33
+ Use `require "nomono/bundler"` from Gemfiles or modular Gemfiles; this is the explicit hook that installs the Gemfile macros into `Bundler::Dsl`.
32
34
 
33
35
  ## 💡 Info you can shake a stick at
34
36
 
35
37
  | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
36
38
  |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
37
- | Works with JRuby | [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
38
- | Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf]|
39
- | Works with MRI Ruby 4 | [![Ruby 4.0 Compat][💎ruby-4.0i]][🚎11-c-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
39
+ | Works with JRuby | [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
40
+ | Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] [![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]|
41
+ | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
40
42
  | Works with MRI Ruby 3 | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
41
43
  | 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] |
42
44
  | 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] |
@@ -54,9 +56,25 @@ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
54
56
  may be higher than the gem's runtime compatibility floor when legacy Rubies are
55
57
  not practical for the current toolchain.
56
58
 
57
- | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
58
- |------------------------------------------------|--------------------------------------------------------|
59
- | 👟 Check it out! | [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
59
+ <a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/avatar-128px.svg" width="14%" align="right"/></a>
60
+
61
+ The _amazing_ test matrix is powered by the kettle-dev stack.
62
+
63
+ <details markdown="1">
64
+ <summary>How kettle-dev manages complexity in tests</summary>
65
+
66
+ | Gem | Source | Role | Daily download rank |
67
+ |-----|--------|------|---------------------|
68
+ | [appraisal2](https://bestgems.org/gems/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Daily download rank for appraisal2](https://img.shields.io/gem/rd/appraisal2.svg?style=flat-square)](https://bestgems.org/gems/appraisal2) |
69
+ | [appraisal2-rubocop](https://bestgems.org/gems/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Daily download rank for appraisal2-rubocop](https://img.shields.io/gem/rd/appraisal2-rubocop.svg?style=flat-square)](https://bestgems.org/gems/appraisal2-rubocop) |
70
+ | [kettle-dev](https://bestgems.org/gems/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [![Daily download rank for kettle-dev](https://img.shields.io/gem/rd/kettle-dev.svg?style=flat-square)](https://bestgems.org/gems/kettle-dev) |
71
+ | [kettle-jem](https://bestgems.org/gems/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Daily download rank for kettle-jem](https://img.shields.io/gem/rd/kettle-jem.svg?style=flat-square)](https://bestgems.org/gems/kettle-jem) |
72
+ | [kettle-soup-cover](https://bestgems.org/gems/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Daily download rank for kettle-soup-cover](https://img.shields.io/gem/rd/kettle-soup-cover.svg?style=flat-square)](https://bestgems.org/gems/kettle-soup-cover) |
73
+ | [kettle-test](https://bestgems.org/gems/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Daily download rank for kettle-test](https://img.shields.io/gem/rd/kettle-test.svg?style=flat-square)](https://bestgems.org/gems/kettle-test) |
74
+ | [rubocop-lts](https://bestgems.org/gems/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Daily download rank for rubocop-lts](https://img.shields.io/gem/rd/rubocop-lts.svg?style=flat-square)](https://bestgems.org/gems/rubocop-lts) |
75
+ | [turbo_tests2](https://bestgems.org/gems/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Daily download rank for turbo_tests2](https://img.shields.io/gem/rd/turbo_tests2.svg?style=flat-square)](https://bestgems.org/gems/turbo_tests2) |
76
+
77
+ </details>
60
78
 
61
79
  ### Federated DVCS
62
80
 
@@ -117,7 +135,7 @@ Nomono has an *environment contract*. By default (`prefix: "NOMONO_GEMS"`):
117
135
 
118
136
  - `NOMONO_GEMS_DEV` controls local-path mode — **tri-state**:
119
137
  - `false` / `0` / `no` / `off` (or unset) — no local gems; released gems are used (CI default)
120
- - `true` / `1` / `yes` / `on` — workspace root is `$HOME/src/kettle-rb`
138
+ - `true` / `1` / `yes` / `on` — workspace root is `$HOME/src/kettle-dev`
121
139
  - Any other value — treated as an explicit workspace root path (`/absolute/path` used as-is; relative path prepended with `$HOME`)
122
140
  - `NOMONO_GEMS_VENDORED_GEMS` (or legacy `VENDORED_GEMS`) is a comma-delimited list of gem names resolved from a vendor directory. This is **independent** of `NOMONO_GEMS_DEV` — it applies when you have vendored copies of specific gems that should override both the workspace and released versions.
123
141
  - `NOMONO_GEMS_VENDOR_GEM_DIR` (or legacy `VENDOR_GEM_DIR`) is the base path of the vendor directory used for gems listed in `NOMONO_GEMS_VENDORED_GEMS`. Defaults to `$workspace_root/vendor`. This is **not** an alternative form of the workspace root — it only affects vendored gems.
@@ -125,11 +143,11 @@ Nomono has an *environment contract*. By default (`prefix: "NOMONO_GEMS"`):
125
143
 
126
144
  ### Examples
127
145
 
128
- For example, in the `kettle-rb` family of gems, which nomono is a part of, the parameters used are `prefix: "KETTLE_RB"`, `path_env: "KETTLE_RB_DEV"`.
146
+ For example, in the `kettle-dev` family of gems, which nomono is a part of, the parameters used are `prefix: "KETTLE_RB"`, `path_env: "KETTLE_RB_DEV"`.
129
147
  This means that the following is true:
130
148
 
131
149
  - `KETTLE_RB_DEV=false` (or unset) — released gems from configured gem server (CI / single-gem development default)
132
- - `KETTLE_RB_DEV=true` — local sibling gems from `$HOME/src/kettle-rb/<gem>` (recommended for full-workspace development)
150
+ - `KETTLE_RB_DEV=true` — local sibling gems from `$HOME/src/kettle-dev/<gem>` (recommended for full-workspace development)
133
151
  - `KETTLE_RB_DEV=/custom/path` — local sibling gems from `/custom/path/<gem>` (non-standard workspace layout only)
134
152
 
135
153
  You can override the env variable names via options. Here is an example for use with rubocop-lts gems:
@@ -147,25 +165,42 @@ nomono_gems(
147
165
 
148
166
  ## 🔧 Basic Usage
149
167
 
150
- In your Gemfile (or a modular Gemfile loaded via `eval_gemfile`):
168
+ In a Gemfile or modular Gemfile, keep released dependencies on the normal
169
+ Bundler path when local sibling paths are disabled, and load a local override
170
+ when they are enabled:
151
171
 
152
172
  ```ruby
153
- require "nomono/bundler"
154
-
155
- local_gems = %w[
156
- kettle-dev
157
- kettle-test
158
- kettle-soup-cover
159
- ]
173
+ source "https://gem.coop"
160
174
 
161
175
  if ENV.fetch("KETTLE_RB_DEV", "false").casecmp("false").zero?
162
- # remote/released gems
163
- gem "kettle-soup-cover", require: false
176
+ gem "kettle-dev", "~> 2.2", ">= 2.2.15"
177
+ gem "kettle-test", "~> 2.0", ">= 2.0.6"
178
+ gem "kettle-soup-cover", "~> 3.0.a", ">= 3.0.0.rc4"
164
179
  else
165
- eval_nomono_gems(gems: local_gems, prefix: "KETTLE_RB")
180
+ eval_gemfile "gemfiles/modular/local.gemfile"
166
181
  end
167
182
  ```
168
183
 
184
+ Then in `gemfiles/modular/local.gemfile`:
185
+
186
+ ```ruby
187
+ require "nomono/bundler"
188
+
189
+ eval_nomono_gems(
190
+ gems: %w[kettle-dev kettle-test kettle-soup-cover],
191
+ prefix: "KETTLE_RB",
192
+ path_env: "KETTLE_RB_DEV",
193
+ vendored_gems_env: "VENDORED_GEMS",
194
+ vendor_gem_dir_env: "VENDOR_GEM_DIR",
195
+ debug_env: "KETTLE_DEV_DEBUG"
196
+ )
197
+ ```
198
+
199
+ This is the pattern generated by `kettle-jem`: the Gemfile remains readable,
200
+ and nomono owns the path normalization for sibling repositories. When
201
+ `KETTLE_RB_DEV=false` or is unset, the modular local override is skipped and
202
+ Bundler resolves released gems normally.
203
+
169
204
  ## 🔐 Security
170
205
 
171
206
  See [SECURITY.md][🔐security].
@@ -210,7 +245,7 @@ Made with [contributors-img][🖐contrib-rocks].
210
245
 
211
246
  Also see GitLab Contributors: [https://gitlab.com/kettle-dev/nomono/-/graphs/main][🚎contributors-gl]
212
247
 
213
- <details>
248
+ <details markdown="1">
214
249
  <summary>⭐️ Star History</summary>
215
250
 
216
251
  <a href="https://star-history.com/kettle-dev/nomono&Date">
@@ -307,12 +342,8 @@ Thanks for RTFM. ☺️
307
342
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
308
343
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
309
344
  [🖇sponsor]: https://github.com/sponsors/pboling
310
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
311
- [🖇polar]: https://polar.sh/pboling
312
345
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
313
346
  [🖇kofi]: https://ko-fi.com/pboling
314
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
315
- [🖇patreon]: https://patreon.com/galtzo
316
347
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
317
348
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
318
349
  [🖇buyme]: https://www.buymeacoffee.com/pboling
@@ -393,8 +424,10 @@ Thanks for RTFM. ☺️
393
424
  [🚎ruby-3.2-wf]: https://github.com/kettle-dev/nomono/actions/workflows/ruby-3.2.yml
394
425
  [🚎ruby-3.3-wf]: https://github.com/kettle-dev/nomono/actions/workflows/ruby-3.3.yml
395
426
  [🚎ruby-3.4-wf]: https://github.com/kettle-dev/nomono/actions/workflows/ruby-3.4.yml
427
+ [🚎jruby-10.0-wf]: https://github.com/kettle-dev/nomono/actions/workflows/jruby-10.0.yml
396
428
  [🚎truby-24.2-wf]: https://github.com/kettle-dev/nomono/actions/workflows/truffleruby-24.2.yml
397
429
  [🚎truby-25.0-wf]: https://github.com/kettle-dev/nomono/actions/workflows/truffleruby-25.0.yml
430
+ [🚎truby-33.0-wf]: https://github.com/kettle-dev/nomono/actions/workflows/truffleruby-33.0.yml
398
431
  [🚎2-cov-wf]: https://github.com/kettle-dev/nomono/actions/workflows/coverage.yml
399
432
  [🚎2-cov-wfi]: https://github.com/kettle-dev/nomono/actions/workflows/coverage.yml/badge.svg
400
433
  [🚎3-hd-wf]: https://github.com/kettle-dev/nomono/actions/workflows/heads.yml
@@ -416,12 +449,14 @@ Thanks for RTFM. ☺️
416
449
  [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
417
450
  [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
418
451
  [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
419
- [💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
420
452
  [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
421
453
  [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
422
454
  [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
423
455
  [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
456
+ [💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
424
457
  [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
458
+ [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
459
+ [💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red
425
460
  [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
426
461
  [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
427
462
  [🤝gh-issues]: https://github.com/kettle-dev/nomono/issues
@@ -450,7 +485,7 @@ Thanks for RTFM. ☺️
450
485
  [📌gitmoji]: https://gitmoji.dev
451
486
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
452
487
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
453
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.086-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
488
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.101-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
454
489
  [🔐security]: https://github.com/kettle-dev/nomono/blob/main/SECURITY.md
455
490
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
456
491
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -478,7 +513,7 @@ Thanks for RTFM. ☺️
478
513
  | Package | nomono |
479
514
  | Description | 1️⃣ Provides nomono_gems and eval_nomono_gems to standardize local multi-repo dependency wiring in Gemfiles. |
480
515
  | Homepage | https://github.com/kettle-dev/nomono |
481
- | Source | https://github.com/kettle-dev/nomono/tree/v1.0.3 |
516
+ | Source | https://github.com/kettle-dev/nomono |
482
517
  | License | `AGPL-3.0-only` |
483
- | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/kettle-dev, https://opencollective.com/kettle-rb, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/nomono, https://www.buymeacoffee.com/pboling |
518
+ | 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/nomono, https://www.buymeacoffee.com/pboling |
484
519
  <!-- kettle-jem:metadata:end -->
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "../nomono"
4
-
3
+ require_relative "core"
5
4
  Nomono.install!
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "resolver"
4
+ require_relative "dsl"
5
+
6
+ module Nomono
7
+ class Error < StandardError; end
8
+
9
+ module_function
10
+
11
+ def resolver
12
+ Resolver.new
13
+ end
14
+
15
+ def install!(dsl_class = nil)
16
+ dsl_class ||= Bundler::Dsl if defined?(Bundler::Dsl)
17
+ return false unless dsl_class
18
+
19
+ dsl_class.include(GemfileDsl) unless dsl_class < GemfileDsl
20
+ true
21
+ end
22
+ end
@@ -12,7 +12,7 @@ module Nomono
12
12
  end
13
13
 
14
14
  def gems(gems:, prefix: "NOMONO_GEMS", allowlist: gems, path_env: nil, vendored_gems_env: nil, vendor_gem_dir_env: nil,
15
- debug_env: nil, root: ["src", "kettle-rb"], strict: true)
15
+ debug_env: nil, root: ["src", "my"], strict: true)
16
16
  requested = normalize_gems(gems)
17
17
  allowed = normalize_gems(allowlist)
18
18
  requested.each { |gem_name| validate_gem_name!(gem_name, allowed, strict: strict) }
@@ -2,7 +2,44 @@
2
2
 
3
3
  module Nomono
4
4
  module Version
5
- VERSION = "1.0.4"
5
+ VERSION = "1.0.6"
6
+
7
+ module_function
8
+
9
+ def gem_version
10
+ Gem::Version.new(VERSION)
11
+ end
12
+
13
+ def major
14
+ gem_version.segments[0]
15
+ end
16
+
17
+ def minor
18
+ gem_version.segments[1]
19
+ end
20
+
21
+ def patch
22
+ gem_version.segments[2]
23
+ end
24
+
25
+ def pre
26
+ return nil unless gem_version.prerelease?
27
+
28
+ gem_version.segments[3..].join(".")
29
+ end
30
+
31
+ def to_h
32
+ {
33
+ major: major,
34
+ minor: minor,
35
+ patch: patch,
36
+ pre: pre
37
+ }
38
+ end
39
+
40
+ def to_a
41
+ to_h.values
42
+ end
6
43
  end
7
44
  VERSION = Version::VERSION # Traditional Constant Location
8
45
  end
data/lib/nomono.rb CHANGED
@@ -1,34 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # External gems
4
- require "version_gem"
5
-
6
3
  # This gem
7
4
  require_relative "nomono/version"
8
-
9
- require_relative "nomono/resolver"
10
- require_relative "nomono/dsl"
11
-
12
- module Nomono
13
- class Error < StandardError; end
14
-
15
- module_function
16
-
17
- def resolver
18
- Resolver.new
19
- end
20
-
21
- def install!(dsl_class = nil)
22
- dsl_class ||= Bundler::Dsl if defined?(Bundler::Dsl)
23
- return false unless dsl_class
24
-
25
- dsl_class.include(GemfileDsl) unless dsl_class < GemfileDsl
26
- true
27
- end
28
- end
29
-
30
- Nomono.install!
31
-
32
- Nomono::Version.class_eval do
33
- extend VersionGem::Basic
34
- end
5
+ require_relative "nomono/core"
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nomono
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -37,26 +37,6 @@ cert_chain:
37
37
  -----END CERTIFICATE-----
38
38
  date: 1980-01-02 00:00:00.000000000 Z
39
39
  dependencies:
40
- - !ruby/object:Gem::Dependency
41
- name: version_gem
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '1.1'
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 1.1.11
50
- type: :runtime
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: '1.1'
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 1.1.11
60
40
  - !ruby/object:Gem::Dependency
61
41
  name: kettle-dev
62
42
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +46,7 @@ dependencies:
66
46
  version: '2.2'
67
47
  - - ">="
68
48
  - !ruby/object:Gem::Version
69
- version: 2.2.8
49
+ version: 2.2.15
70
50
  type: :development
71
51
  prerelease: false
72
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -76,7 +56,7 @@ dependencies:
76
56
  version: '2.2'
77
57
  - - ">="
78
58
  - !ruby/object:Gem::Version
79
- version: 2.2.8
59
+ version: 2.2.15
80
60
  - !ruby/object:Gem::Dependency
81
61
  name: bundler-audit
82
62
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +134,7 @@ dependencies:
154
134
  version: '2.0'
155
135
  - - ">="
156
136
  - !ruby/object:Gem::Version
157
- version: 2.0.5
137
+ version: 2.0.6
158
138
  type: :development
159
139
  prerelease: false
160
140
  version_requirements: !ruby/object:Gem::Requirement
@@ -164,7 +144,7 @@ dependencies:
164
144
  version: '2.0'
165
145
  - - ">="
166
146
  - !ruby/object:Gem::Version
167
- version: 2.0.5
147
+ version: 2.0.6
168
148
  - !ruby/object:Gem::Dependency
169
149
  name: turbo_tests2
170
150
  requirement: !ruby/object:Gem::Requirement
@@ -174,7 +154,7 @@ dependencies:
174
154
  version: '3.1'
175
155
  - - ">="
176
156
  - !ruby/object:Gem::Version
177
- version: 3.1.2
157
+ version: 3.1.4
178
158
  type: :development
179
159
  prerelease: false
180
160
  version_requirements: !ruby/object:Gem::Requirement
@@ -184,7 +164,7 @@ dependencies:
184
164
  version: '3.1'
185
165
  - - ">="
186
166
  - !ruby/object:Gem::Version
187
- version: 3.1.2
167
+ version: 3.1.4
188
168
  - !ruby/object:Gem::Dependency
189
169
  name: ruby-progressbar
190
170
  requirement: !ruby/object:Gem::Requirement
@@ -228,7 +208,7 @@ dependencies:
228
208
  version: '2.0'
229
209
  - - ">="
230
210
  - !ruby/object:Gem::Version
231
- version: 2.0.1
211
+ version: 2.0.2
232
212
  type: :development
233
213
  prerelease: false
234
214
  version_requirements: !ruby/object:Gem::Requirement
@@ -238,7 +218,7 @@ dependencies:
238
218
  version: '2.0'
239
219
  - - ">="
240
220
  - !ruby/object:Gem::Version
241
- version: 2.0.1
221
+ version: 2.0.2
242
222
  description: 1️⃣ Provides nomono_gems and eval_nomono_gems to standardize local multi-repo
243
223
  dependency wiring in Gemfiles.
244
224
  email:
@@ -268,6 +248,7 @@ files:
268
248
  - certs/pboling.pem
269
249
  - lib/nomono.rb
270
250
  - lib/nomono/bundler.rb
251
+ - lib/nomono/core.rb
271
252
  - lib/nomono/dsl.rb
272
253
  - lib/nomono/resolver.rb
273
254
  - lib/nomono/version.rb
@@ -278,10 +259,10 @@ licenses:
278
259
  - AGPL-3.0-only
279
260
  metadata:
280
261
  homepage_uri: https://nomono.galtzo.com/
281
- source_code_uri: https://github.com/kettle-dev/nomono/tree/v1.0.4
282
- changelog_uri: https://github.com/kettle-dev/nomono/blob/v1.0.4/CHANGELOG.md
262
+ source_code_uri: https://github.com/kettle-dev/nomono/tree/v1.0.6
263
+ changelog_uri: https://github.com/kettle-dev/nomono/blob/v1.0.6/CHANGELOG.md
283
264
  bug_tracker_uri: https://github.com/kettle-dev/nomono/issues
284
- documentation_uri: https://www.rubydoc.info/gems/nomono/1.0.4
265
+ documentation_uri: https://www.rubydoc.info/gems/nomono/1.0.6
285
266
  funding_uri: https://github.com/sponsors/pboling
286
267
  wiki_uri: https://github.com/kettle-dev/nomono/wiki
287
268
  news_uri: https://www.railsbling.com/tags/nomono
metadata.gz.sig CHANGED
Binary file