nomono 1.1.13 → 1.1.14

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: 956fe623c6057ffee74506aabbcff6c94b83837851f55acaf981b4e06002f16c
4
+ data.tar.gz: c55c85a8eb460d3b67903d34537012239f03e62944269baeab1d607cac0e1f0e
5
5
  SHA512:
6
- metadata.gz: 31994af600183f083b7ff5caf3b1a4c6c66da27cd92fe32999f4c06e846b4f6ee9545b8bdc741389a4ecf926bbd689ebb8be4d9b4ad624c90e91d93438e6725a
7
- data.tar.gz: 841237e109b8810d79dbe94012d5c79e9415c392731fa6952dd735598d094edcc22cd2b56f3c9e03b30ad043e00b8dcff3e3abfda1c2c93efcb7a073e24d102f
6
+ metadata.gz: 2f036fbf9f81a038f2f6e5924fdb298439a7d76fa75560a0295746e70aaaa5e1ba756e09eac8a26e10bc17c9393bfde99ca3c5e4659e8806bf9143585a113293
7
+ data.tar.gz: 9757d15bd02cc3747ba2ff6c434439606537eadfe5c0b4404e6f8c4e0ac654c7197047792a12faebab1116e2c30a9f4ca32cdeea9019dd187c1273ec706d5d87
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,6 +28,23 @@ 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.14] - 2026-10-19
34
+
35
+ - TAG: [v1.1.14][1.1.14t]
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
+ ### Fixed
41
+
42
+ - [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.
43
+
44
+ ## [1.1.13] - 2026-10-19
45
+
46
+ ### Fixed
47
+
31
48
  - [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
49
 
33
50
  ### Security
@@ -428,7 +445,9 @@ Please file a bug if you notice a violation of semantic versioning.
428
445
  - TAG: [v1.0.0][1.0.0t]
429
446
  - 12.50% documented
430
447
 
431
- [Unreleased]: https://github.com/kettle-dev/nomono/compare/v1.1.12...HEAD
448
+ [Unreleased]: https://github.com/kettle-dev/nomono/compare/v1.1.14...HEAD
449
+ [1.1.14]: https://github.com/kettle-dev/nomono/compare/v1.1.13...v1.1.14
450
+ [1.1.14t]: https://github.com/kettle-dev/nomono/releases/tag/v1.1.14
432
451
  [1.1.12]: https://github.com/kettle-dev/nomono/compare/v1.1.11...v1.1.12
433
452
  [1.1.12t]: https://github.com/kettle-dev/nomono/releases/tag/v1.1.12
434
453
  [1.1.11]: https://github.com/kettle-dev/nomono/compare/v1.1.8...v1.1.11
data/README.md CHANGED
@@ -533,7 +533,7 @@ Thanks for RTFM. ☺️
533
533
  [📌gitmoji]: https://gitmoji.dev
534
534
  [📌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
535
  [🧮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
536
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.195-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
537
537
  [🔐security]: https://github.com/kettle-dev/nomono/blob/main/SECURITY.md
538
538
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
539
539
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
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.14"
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.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -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.14
287
+ changelog_uri: https://github.com/kettle-dev/nomono/blob/v1.1.14/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.14
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