nomono 1.1.13 → 1.1.15

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: d6f081b325c3f5371c55430a00342580f873d5ac972ee0508626356fad523de4
4
- data.tar.gz: 1013f075d50a9d3081a02544de87dacf8a9d1a5383abaa8fe4152a46be3328a2
3
+ metadata.gz: 2e0a4331ac6eae6f6bac22128d557655a71bbf416caa3c6c812e9e6d1b0db85b
4
+ data.tar.gz: 8096bbd62c5ec1cd3d764db62b40b5d09bf39cf6c9232e5af38b014fe4b9ff9a
5
5
  SHA512:
6
- metadata.gz: 31994af600183f083b7ff5caf3b1a4c6c66da27cd92fe32999f4c06e846b4f6ee9545b8bdc741389a4ecf926bbd689ebb8be4d9b4ad624c90e91d93438e6725a
7
- data.tar.gz: 841237e109b8810d79dbe94012d5c79e9415c392731fa6952dd735598d094edcc22cd2b56f3c9e03b30ad043e00b8dcff3e3abfda1c2c93efcb7a073e24d102f
6
+ metadata.gz: 5c75ad1ade0d6c8848a8618b2b00cc6d3ab88057579bc7e1b2b3e6ddf5b83780d34d5fccc25017c5e5a622b2bedbcf4046d8ca16c3ca517770a30390b12d0a0a
7
+ data.tar.gz: 5b33e96b26b7a3a91885a22f499ea7ca1ba0f5b6369ff0cf06cdfcb8519aa1323760ae42e761ab6cbae24688e71cf26f945bedd6bc6053edf321606463031f93
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,6 +28,43 @@ Please file a bug if you notice a violation of semantic versioning.
28
28
 
29
29
  ### Fixed
30
30
 
31
+ ### Security
32
+
33
+ ## [1.1.15] - 2026-10-24
34
+
35
+ - TAG: [v1.1.15][1.1.15t]
36
+ - COVERAGE: 97.44% -- 190/195 lines in 7 files
37
+ - BRANCH COVERAGE: 84.42% -- 65/77 branches in 7 files
38
+ - 27.78% documented
39
+
40
+ ### Changed
41
+
42
+ - [kc] kettle-jem/prepare: updated 10 project files:
43
+ - configuration (1)
44
+ - dependencies (9)
45
+
46
+ - [kc] kettle-jem/template: updated 17 project files:
47
+ - code and tests (2)
48
+ - dependencies (6)
49
+ - documentation (1)
50
+ - other (1)
51
+ - workflows (7)
52
+
53
+ ## [1.1.14] - 2026-10-19
54
+
55
+ - TAG: [v1.1.14][1.1.14t]
56
+ - COVERAGE: 97.44% -- 190/195 lines in 7 files
57
+ - BRANCH COVERAGE: 84.42% -- 65/77 branches in 7 files
58
+ - 27.78% documented
59
+
60
+ ### Fixed
61
+
62
+ - [kc] plugin-scan-bundler41: Detect Bundler 4.1 plugin scans by DSL ancestry and tolerate any plugins-only DSL that drops gem declarations silently, instead of relying solely on gem being undef'd; evaluation no longer crashes when the scan defines gem as a no-op.
63
+
64
+ ## [1.1.13] - 2026-10-19
65
+
66
+ ### Fixed
67
+
31
68
  - [kc] bundler-plugin-scan: Skip eval_nomono_gems when Bundler evaluates the Gemfile through its plugin scan, whose DSL undefines gem and gemspec declarations; reading back the last dependency from that empty list crashed bundle update with NoMethodError.
32
69
 
33
70
  ### Security
@@ -428,7 +465,11 @@ Please file a bug if you notice a violation of semantic versioning.
428
465
  - TAG: [v1.0.0][1.0.0t]
429
466
  - 12.50% documented
430
467
 
431
- [Unreleased]: https://github.com/kettle-dev/nomono/compare/v1.1.12...HEAD
468
+ [Unreleased]: https://github.com/kettle-dev/nomono/compare/v1.1.15...HEAD
469
+ [1.1.15]: https://github.com/kettle-dev/nomono/compare/v1.1.14...v1.1.15
470
+ [1.1.15t]: https://github.com/kettle-dev/nomono/releases/tag/v1.1.15
471
+ [1.1.14]: https://github.com/kettle-dev/nomono/compare/v1.1.13...v1.1.14
472
+ [1.1.14t]: https://github.com/kettle-dev/nomono/releases/tag/v1.1.14
432
473
  [1.1.12]: https://github.com/kettle-dev/nomono/compare/v1.1.11...v1.1.12
433
474
  [1.1.12t]: https://github.com/kettle-dev/nomono/releases/tag/v1.1.12
434
475
  [1.1.11]: https://github.com/kettle-dev/nomono/compare/v1.1.8...v1.1.11
data/README.md CHANGED
@@ -133,30 +133,17 @@ work in an untested environment:
133
133
 
134
134
  ### Enterprise Support
135
135
 
136
- [![Tidelift](https://tidelift.com/badges/package/rubygems/nomono)](https://tidelift.com/subscription/pkg/rubygems-nomono?utm_source=rubygems-nomono&utm_medium=referral&utm_campaign=readme)
136
+ [![Lifted through Tidelift](https://tidelift.com/badges/package/rubygems/nomono)][🏙️entsup-tidelift-sonar]
137
137
 
138
- Available as part of the Tidelift Subscription.
138
+ Lifted through Tidelift, part of [Sonar][🏙️entsup-tidelift-sonar].
139
139
 
140
- <details markdown="1">
141
- <summary>Need enterprise-level guarantees?</summary>
142
-
143
- 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.
144
-
145
- [![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]
146
-
147
- - 💡Subscribe for support guarantees covering _all_ your FLOSS dependencies
148
- - 💡Tidelift is part of [Sonar][🏙️entsup-tidelift-sonar]
149
- - 💡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
150
-
151
- Alternatively:
140
+ Other support channels:
152
141
 
153
142
  - [![Ruby Users Forum][✉️ruby-forum-img]][✉️ruby-forum]
154
143
  - [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
155
144
  - [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork]
156
145
  - [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor]
157
146
 
158
- </details>
159
-
160
147
  ## ✨ Installation
161
148
 
162
149
  Install the gem and add to the application's Gemfile by executing:
@@ -441,8 +428,6 @@ Thanks for RTFM. ☺️
441
428
  [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
442
429
  [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
443
430
  [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
444
- [🏙️entsup-tidelift]: https://tidelift.com/subscription/pkg/rubygems-nomono?utm_source=rubygems-nomono&utm_medium=referral&utm_campaign=readme
445
- [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
446
431
  [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
447
432
  [💁🏼‍♂️peterboling]: http://www.peterboling.com
448
433
  [🚂railsbling]: http://www.railsbling.com
@@ -533,7 +518,7 @@ Thanks for RTFM. ☺️
533
518
  [📌gitmoji]: https://gitmoji.dev
534
519
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
535
520
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
536
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.190-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
521
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.195-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
537
522
  [🔐security]: https://github.com/kettle-dev/nomono/blob/main/SECURITY.md
538
523
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
539
524
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -563,5 +548,5 @@ Thanks for RTFM. ☺️
563
548
  | Homepage | https://github.com/kettle-dev/nomono |
564
549
  | Source | https://github.com/kettle-dev/nomono |
565
550
  | License | `AGPL-3.0-only` |
566
- | 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 |
551
+ | 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://www.buymeacoffee.com/pboling |
567
552
  <!-- kettle-jem:metadata:end -->
data/lib/nomono/dsl.rb CHANGED
@@ -39,10 +39,11 @@ module Nomono
39
39
  # dependency keeps its constraints and metadata; explicit facts only narrow
40
40
  # them. A new dependency with no facts retains Bundler's default >= 0.
41
41
  def eval_nomono_gems(gems:, requirements: {}, **opts)
42
- # Bundler's plugin scan evaluates the whole Gemfile with a DSL whose
43
- # gem and gemspec declarations are undef'd silent no-ops; nothing is
44
- # collected, so there is no dependency graph to override here.
45
- return if respond_to?(:dependencies) && !respond_to?(:gem)
42
+ # Bundler's plugin scan evaluates the whole Gemfile with a plugins-only
43
+ # DSL: some Bundlers undef gem and gemspec, newer ones define gem as an
44
+ # explicit no-op. Either way no dependency is collected, so there is no
45
+ # declaration graph to override here.
46
+ return if respond_to?(:dependencies) && nomono_plugin_scan_dsl?
46
47
 
47
48
  nomono_gems(gems: gems, **opts).each do |gem_name, gem_path|
48
49
  # Keep lightweight non-Bundler consumers of the macro working too.
@@ -60,6 +61,9 @@ module Nomono
60
61
  else
61
62
  gem(gem_name, *Array(requirements[gem_name]), path: gem_path)
62
63
  replacement = dependencies.last
64
+ # A plugins-only DSL silently drops the declaration; nothing was
65
+ # collected, so there is no override to register.
66
+ next unless replacement && replacement.name == gem_name
63
67
  end
64
68
  @nomono_overrides ||= {}
65
69
  previous = @nomono_overrides[gem_name]
@@ -74,6 +78,16 @@ module Nomono
74
78
 
75
79
  private
76
80
 
81
+ # Both known plugins-only DSL shapes collect no gem declarations: older
82
+ # Bundlers undef gem, and Bundler 4.1+ defines it as an explicit no-op.
83
+ # The ancestor check is primary; the respond_to fallback covers any
84
+ # plugin DSL that undef's gem instead.
85
+ def nomono_plugin_scan_dsl?
86
+ return true if defined?(Bundler::Plugin::DSL) && is_a?(Bundler::Plugin::DSL)
87
+
88
+ !respond_to?(:gem)
89
+ end
90
+
77
91
  # Bundler may already have preferred a direct Gemfile declaration and
78
92
  # discarded the intersected gemspec development constraint from its list.
79
93
  def nomono_gemspec_requirements(name)
@@ -4,7 +4,7 @@ module Nomono
4
4
  # Version namespace for this gem.
5
5
  module Version
6
6
  # Current gem version.
7
- VERSION = "1.1.13"
7
+ VERSION = "1.1.15"
8
8
  end
9
9
  # Current gem version exposed at the traditional constant location.
10
10
  VERSION = Version::VERSION # Traditional Constant Location
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.1.13
4
+ version: 1.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '1.1'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.1.15
49
+ version: 1.1.16
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +56,7 @@ dependencies:
56
56
  version: '1.1'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.1.15
59
+ version: 1.1.16
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: kettle-dev
62
62
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '3.1'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 3.1.18
69
+ version: 3.1.24
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '3.1'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 3.1.18
79
+ version: 3.1.24
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: bundler-audit
82
82
  requirement: !ruby/object:Gem::Requirement
@@ -134,7 +134,7 @@ dependencies:
134
134
  version: '0.1'
135
135
  - - ">="
136
136
  - !ruby/object:Gem::Version
137
- version: 0.1.3
137
+ version: 0.1.4
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
@@ -144,7 +144,7 @@ dependencies:
144
144
  version: '0.1'
145
145
  - - ">="
146
146
  - !ruby/object:Gem::Version
147
- version: 0.1.3
147
+ version: 0.1.4
148
148
  - !ruby/object:Gem::Dependency
149
149
  name: appraisal2
150
150
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ dependencies:
154
154
  version: '3.2'
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 3.2.5
157
+ version: 3.2.6
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: '3.2'
165
165
  - - ">="
166
166
  - !ruby/object:Gem::Version
167
- version: 3.2.5
167
+ version: 3.2.6
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: kettle-test
170
170
  requirement: !ruby/object:Gem::Requirement
@@ -283,10 +283,10 @@ licenses:
283
283
  - AGPL-3.0-only
284
284
  metadata:
285
285
  homepage_uri: https://nomono.galtzo.com/
286
- source_code_uri: https://github.com/kettle-dev/nomono/tree/v1.1.13
287
- changelog_uri: https://github.com/kettle-dev/nomono/blob/v1.1.13/CHANGELOG.md
286
+ source_code_uri: https://github.com/kettle-dev/nomono/tree/v1.1.15
287
+ changelog_uri: https://github.com/kettle-dev/nomono/blob/v1.1.15/CHANGELOG.md
288
288
  bug_tracker_uri: https://github.com/kettle-dev/nomono/issues
289
- documentation_uri: https://www.rubydoc.info/gems/nomono/1.1.13
289
+ documentation_uri: https://www.rubydoc.info/gems/nomono/1.1.15
290
290
  funding_uri: https://github.com/sponsors/pboling
291
291
  wiki_uri: https://github.com/kettle-dev/nomono/wiki
292
292
  news_uri: https://www.railsbling.com/tags/nomono
metadata.gz.sig CHANGED
Binary file