gemvault 0.1.4 → 0.2.0
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
- data/.containerignore +10 -0
- data/.rubocop.yml +8 -1
- data/CHANGELOG.md +56 -0
- data/CLAUDE.md +6 -5
- data/Dockerfile.test +14 -0
- data/README.md +18 -6
- data/Rakefile +19 -0
- data/docs/tarvault-findings.md +186 -0
- data/docs/tarvault.md +42 -0
- data/issues.rec +540 -17
- data/lib/bundler/plugin/vault_source.rb +61 -73
- data/lib/bundler/plugin/vaulted_gem.rb +66 -0
- data/lib/gemvault/archive_entry.rb +6 -0
- data/lib/gemvault/cli/command.rb +9 -5
- data/lib/gemvault/cli/commands/extract.rb +11 -11
- data/lib/gemvault/cli/commands/new.rb +3 -2
- data/lib/gemvault/cli/commands/remove.rb +15 -5
- data/lib/gemvault/cli/commands/upgrade.rb +72 -0
- data/lib/gemvault/dbvault.rb +101 -0
- data/lib/gemvault/deprecation.rb +48 -0
- data/lib/gemvault/gem_entry.rb +20 -24
- data/lib/gemvault/gem_extraction.rb +41 -0
- data/lib/gemvault/gem_reference/any_version.rb +6 -2
- data/lib/gemvault/gem_reference/parser.rb +44 -0
- data/lib/gemvault/gem_reference/specific_version.rb +9 -25
- data/lib/gemvault/gem_reference.rb +13 -45
- data/lib/gemvault/manifest.rb +78 -0
- data/lib/gemvault/tarball.rb +53 -0
- data/lib/gemvault/tarvault.rb +139 -0
- data/lib/gemvault/vault.rb +55 -157
- data/lib/gemvault/vault_path.rb +33 -0
- data/lib/gemvault/vault_session.rb +16 -0
- data/lib/gemvault/vault_upgrade.rb +94 -0
- data/lib/gemvault/version.rb +1 -1
- data/lib/gemvault.rb +2 -0
- data/lib/rubygems/resolver/vault_set.rb +5 -7
- data/lib/rubygems/source/vault.rb +28 -32
- data/lib/rubygems_plugin.rb +17 -6
- metadata +21 -33
data/issues.rec
CHANGED
|
@@ -23,7 +23,7 @@ Description: Removal of gems when version is specified is broken. try the follow
|
|
|
23
23
|
Status: closed
|
|
24
24
|
|
|
25
25
|
Id: 1
|
|
26
|
-
Updated:
|
|
26
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
27
27
|
Name: Getting error when dir structure has slightly changed
|
|
28
28
|
Description: Installing bundler-source-vault 0.1.2
|
|
29
29
|
+ The following plugin paths don't exist: /workspace/gemvault/shim/..
|
|
@@ -57,12 +57,17 @@ Description: Installing bundler-source-vault 0.1.2
|
|
|
57
57
|
+ from /Users/davidgillis/.rbenv/versions/4.0.1/lib/ruby/site_ruby/4.0.0/rubygems.rb:304:in 'Gem.activate_and_load_bin_path'
|
|
58
58
|
+ from /Users/davidgillis/.rbenv/versions/4.0.1/bin/bundle:25:in '<main>'
|
|
59
59
|
+ /Users/davidgillis/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-4.0.8/lib/bundler/source_list.rb:59:in 'Bundler::SourceList#add_plugin_source': undefined method 'new' for nil (NoMethodError)
|
|
60
|
-
+
|
|
60
|
+
+
|
|
61
61
|
+ add_source_to_list Plugin.source(source).new(options), @plugin_sources
|
|
62
|
-
|
|
62
|
+
+
|
|
63
|
+
+ RESOLUTION: replicated by spec/integration/bundle_install_spec.rb ("path-installed
|
|
64
|
+
+ bundler plugin's source directory has been renamed"): Bundler's plugin index pins
|
|
65
|
+
+ the absolute path, and `gemvault doctor` clears it and reinstalls. Installing the
|
|
66
|
+
+ published gems (no `plugin ... path:` line) avoids the class entirely.
|
|
67
|
+
Status: closed
|
|
63
68
|
|
|
64
69
|
Id: 2
|
|
65
|
-
Updated:
|
|
70
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
66
71
|
Name: Renaming gemv file breaks bundler config
|
|
67
72
|
Description: Steps to replicate:
|
|
68
73
|
+ 1. add vault source with some gems
|
|
@@ -81,10 +86,14 @@ Description: Steps to replicate:
|
|
|
81
86
|
+ ```
|
|
82
87
|
+
|
|
83
88
|
+ Where vendored.gemv is the name of the old file, and there is still an entry in Gemfile.lock
|
|
84
|
-
|
|
89
|
+
+
|
|
90
|
+
+ RESOLUTION: fixed on the tarvault branch; replicated by
|
|
91
|
+
+ spec/integration/bundle_install_spec.rb ("when the .gemv file is renamed and the
|
|
92
|
+
+ Gemfile updated to match"), passing.
|
|
93
|
+
Status: closed
|
|
85
94
|
|
|
86
95
|
Id: 3
|
|
87
|
-
Updated:
|
|
96
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
88
97
|
Name: Name of vault in logs should show relative path
|
|
89
98
|
Description: This vault is in vendor/vendored_gems.gmv, relative to the Gemfile
|
|
90
99
|
+ in the logs of bundle install I see:
|
|
@@ -92,10 +101,14 @@ Description: This vault is in vendor/vendored_gems.gmv, relative to the Gemfile
|
|
|
92
101
|
+ ```
|
|
93
102
|
+ Installing acme 1.0.1 from vault vendored_gems.gemv
|
|
94
103
|
+ ```
|
|
95
|
-
|
|
104
|
+
+
|
|
105
|
+
+ RESOLUTION: fixed on the tarvault branch; replicated by
|
|
106
|
+
+ spec/integration/bundle_install_spec.rb ("logs the relative path as written"),
|
|
107
|
+
+ passing.
|
|
108
|
+
Status: closed
|
|
96
109
|
|
|
97
110
|
Id: 4
|
|
98
|
-
Updated:
|
|
111
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
99
112
|
Name: Running bundle install reinstalls gemvault deps every single run
|
|
100
113
|
Description: Anytime I run bundle install, I always see:
|
|
101
114
|
+
|
|
@@ -109,10 +122,18 @@ Description: Anytime I run bundle install, I always see:
|
|
|
109
122
|
+ ```
|
|
110
123
|
+
|
|
111
124
|
+ This is unacceptable. these should only need to be installed once
|
|
125
|
+
+
|
|
126
|
+
+ ANALYSIS: upstream Bundler behavior. Bundler::Plugin.gemfile_install runs on
|
|
127
|
+
+ every `bundle install`/`bundle update` (bundler cli/install.rb:41), re-resolves
|
|
128
|
+
+ the inferred plugin definition remotely, and Source::Rubygems#install checks
|
|
129
|
+
+ "already installed?" against the default gem paths rather than Plugin.root, so
|
|
130
|
+
+ the plugin gems reinstall every run. No gemvault code runs in that path.
|
|
131
|
+
+ Replicated by spec/integration/plugin_reinstall_spec.rb (marked pending so the
|
|
132
|
+
+ suite flags it if a future Bundler fixes it). Worth filing at rubygems/rubygems.
|
|
112
133
|
Status: open
|
|
113
134
|
|
|
114
135
|
Id: 5
|
|
115
|
-
Updated:
|
|
136
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
116
137
|
Name: Installing gem via rubygems fails to resolve absolute path
|
|
117
138
|
Description: Consider the following:
|
|
118
139
|
+ ```
|
|
@@ -122,26 +143,46 @@ Description: Consider the following:
|
|
|
122
143
|
+ ```
|
|
123
144
|
+
|
|
124
145
|
+ Notice an absolute path was passed to --source, yet it tried to resolve locally
|
|
125
|
-
|
|
146
|
+
+
|
|
147
|
+
+ RESOLUTION: fixed on the tarvault branch; replicated by
|
|
148
|
+
+ spec/integration/gem_install_spec.rb ("accepts a vault:// URI with an absolute
|
|
149
|
+
+ path" and the file:// variant), passing. URI stripping now lives in
|
|
150
|
+
+ Gemvault::VaultPath, shared with the CLI. Duplicate of #8.
|
|
151
|
+
Status: closed
|
|
126
152
|
|
|
127
153
|
Id: 6
|
|
128
|
-
Updated:
|
|
154
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
129
155
|
Name: Cannot add gem with non-numerical suffix
|
|
130
156
|
Description: When adding a gem like 'ronin-db-0.2.1.patch1.gem', gemvault successfully adds the gem, but the gem install command fails:
|
|
131
157
|
+ ```
|
|
132
158
|
+ gemvault add myvault.gemv ronin-db-0.2.1.patch1.gem # success
|
|
133
159
|
+ gem install --debug --verbose --clear-sources --source file://myvault.gemv ronin-db # failure
|
|
134
160
|
+ ```
|
|
135
|
-
|
|
161
|
+
+
|
|
162
|
+
+ RESOLUTION: RubyGems semantics, not a vault bug. A version containing letters
|
|
163
|
+
+ (0.2.1.patch1) is a prerelease everywhere in RubyGems, and `gem install`
|
|
164
|
+
+ excludes prereleases unless --pre is passed; with --pre the install from a
|
|
165
|
+
+ vault succeeds. Replicated by spec/integration/gem_install_spec.rb ("treats it
|
|
166
|
+
+ as a prerelease and installs it with --pre"). The relative `file://myvault.gemv`
|
|
167
|
+
+ form also resolves now (Gemvault::VaultPath rejoins host and path).
|
|
168
|
+
Status: closed
|
|
136
169
|
|
|
137
170
|
Id: 7
|
|
138
|
-
Updated:
|
|
171
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
139
172
|
Name: Gemvault pollutes project dir with plugin files in .bundle
|
|
140
173
|
Description: Why is it not using the plugin that is already installed globally?
|
|
174
|
+
+
|
|
175
|
+
+ ANALYSIS: two parts. (1) Global `bundle plugin install bundler-source-vault`
|
|
176
|
+
+ crashed outright (issue #10's bug also hit the global root); that is fixed and
|
|
177
|
+
+ covered by spec/integration/plugin_install_spec.rb ("when run outside any
|
|
178
|
+
+ project"). (2) The local .bundle/plugin copies come from the same upstream
|
|
179
|
+
+ Bundler behavior as #4: when a Gemfile declares/implies a plugin, Bundler
|
|
180
|
+
+ always resolves and installs it into the project-local plugin root, global
|
|
181
|
+
+ install notwithstanding. Nothing gemvault-side can prevent that.
|
|
141
182
|
Status: open
|
|
142
183
|
|
|
143
184
|
Id: 8
|
|
144
|
-
Updated:
|
|
185
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
145
186
|
Name: Installing gem via rubygems fails to resolve absolute path
|
|
146
187
|
Description: Consider the following:
|
|
147
188
|
+ ```
|
|
@@ -151,10 +192,492 @@ Description: Consider the following:
|
|
|
151
192
|
+ ```
|
|
152
193
|
+
|
|
153
194
|
+ Notice an absolute path was passed to --source, yet it tried to resolve locally
|
|
154
|
-
|
|
195
|
+
+
|
|
196
|
+
+ RESOLUTION: duplicate of #5; see its resolution.
|
|
197
|
+
Status: closed
|
|
155
198
|
|
|
156
199
|
Id: 9
|
|
157
|
-
Updated: Sun,
|
|
200
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
158
201
|
Name: Gemvault commands should also be able to accept a uri
|
|
159
202
|
Description: e.g. gemvault list vault:///Users/davidgillis/repos/vault/rubylib/myvault.gemv
|
|
160
|
-
|
|
203
|
+
+
|
|
204
|
+
+ RESOLUTION: implemented. Gemvault::VaultPath resolves vault:// and file://
|
|
205
|
+
+ locators (absolute and two-slash relative forms) and every CLI command that
|
|
206
|
+
+ opens a vault goes through it, as does the RubyGems source. Covered by
|
|
207
|
+
+ spec/gemvault/vault_path_spec.rb and spec/integration/cli/vault_uri_spec.rb.
|
|
208
|
+
Status: closed
|
|
209
|
+
|
|
210
|
+
Id: 10
|
|
211
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
212
|
+
Name: Bundler fails install on "bundle plugin install bundler-source-vault"
|
|
213
|
+
Description:
|
|
214
|
+
+
|
|
215
|
+
+ [dev@reversal-store]/workspace% bundle plugin install bundler-source-vault
|
|
216
|
+
+ Fetching gem metadata from https://rubygems.org/.......
|
|
217
|
+
+ Resolving dependencies...
|
|
218
|
+
+ Installing command_kit 0.6.0
|
|
219
|
+
+ Fetching gemvault 0.1.5
|
|
220
|
+
+ Installing gemvault 0.1.5
|
|
221
|
+
+ Fetching bundler-source-vault 0.1.5
|
|
222
|
+
+ Installing bundler-source-vault 0.1.5
|
|
223
|
+
+ --- ERROR REPORT TEMPLATE -------------------------------------------------------
|
|
224
|
+
+
|
|
225
|
+
+ ```
|
|
226
|
+
+ LoadError: cannot load such file -- bundler/plugin/vault_source
|
|
227
|
+
+ /workspace/.bundle/plugin/gems/bundler-source-vault-0.1.5/plugins.rb:21:in 'Kernel#require'
|
|
228
|
+
+ /workspace/.bundle/plugin/gems/bundler-source-vault-0.1.5/plugins.rb:21:in '<top (required)>'
|
|
229
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/plugin.rb:317:in 'Kernel#load'
|
|
230
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/plugin.rb:317:in 'Bundler::Plugin.register_plugin'
|
|
231
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/plugin.rb:288:in 'Bundler::Plugin.save_plugin'
|
|
232
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/plugin.rb:263:in 'block in Bundler::Plugin.save_plugins'
|
|
233
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/plugin.rb:255:in 'Array#each'
|
|
234
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/plugin.rb:255:in 'Bundler::Plugin.save_plugins'
|
|
235
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/plugin.rb:43:in 'Bundler::Plugin.install'
|
|
236
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/cli/plugin.rb:22:in 'Bundler::CLI::Plugin#install'
|
|
237
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor/command.rb:28:in 'Bundler::Thor::Command#run'
|
|
238
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in 'Bundler::Thor::Invocation#invoke_command'
|
|
239
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor.rb:538:in 'Bundler::Thor.dispatch'
|
|
240
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:116:in 'Bundler::Thor::Invocation#invoke'
|
|
241
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor.rb:338:in 'block in Bundler::CLI#subcommand'
|
|
242
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor/command.rb:28:in 'Bundler::Thor::Command#run'
|
|
243
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in 'Bundler::Thor::Invocation#invoke_command'
|
|
244
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor.rb:538:in 'Bundler::Thor.dispatch'
|
|
245
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/cli.rb:35:in 'Bundler::CLI.dispatch'
|
|
246
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/vendor/thor/lib/thor/base.rb:584:in 'Bundler::Thor::Base::ClassMethods#start'
|
|
247
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/cli.rb:29:in 'Bundler::CLI.start'
|
|
248
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/exe/bundle:28:in 'block in <top (required)>'
|
|
249
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/lib/bundler/friendly_errors.rb:118:in 'Bundler.with_friendly_errors'
|
|
250
|
+
+ /usr/local/share/gems/gems/bundler-4.0.14/exe/bundle:20:in '<top (required)>'
|
|
251
|
+
+ /usr/local/share/ruby/site_ruby/rubygems.rb:305:in 'Kernel#load'
|
|
252
|
+
+ /usr/local/share/ruby/site_ruby/rubygems.rb:305:in 'Gem.activate_and_load_bin_path'
|
|
253
|
+
+ /usr/local/bin/bundle:25:in '<main>'
|
|
254
|
+
+
|
|
255
|
+
+ ```
|
|
256
|
+
+
|
|
257
|
+
+ ## Environment
|
|
258
|
+
+
|
|
259
|
+
+ ```
|
|
260
|
+
+ Bundler 4.0.14
|
|
261
|
+
+ Platforms ruby, aarch64-linux
|
|
262
|
+
+ Ruby 4.0.1p0 (2026-01-13 revision e04267a14b1a5dea2d2c368e48d41bd3db441f4f) [aarch64-linux]
|
|
263
|
+
+ Full Path /usr/bin/ruby
|
|
264
|
+
+ Config Dir /etc
|
|
265
|
+
+ RubyGems 4.0.14
|
|
266
|
+
+ Gem Home /workspace/.bundle/plugin
|
|
267
|
+
+ Gem Path /workspace/.bundle/plugin
|
|
268
|
+
+ User Home /home/dev
|
|
269
|
+
+ User Path /home/dev/.local/share/gem/ruby/4.0.0
|
|
270
|
+
+ Bin Dir /workspace/.bundle/plugin/bin
|
|
271
|
+
+ OpenSSL
|
|
272
|
+
+ Compiled OpenSSL 3.5.4 30 Sep 2025
|
|
273
|
+
+ Loaded OpenSSL 3.5.7 9 Jun 2026
|
|
274
|
+
+ Cert File /etc/pki/tls/cert.pem
|
|
275
|
+
+ Cert Dir /etc/pki/tls/certs
|
|
276
|
+
+ Tools
|
|
277
|
+
+ Git 2.54.0
|
|
278
|
+
+ RVM not installed
|
|
279
|
+
+ rbenv rbenv 1.3.2
|
|
280
|
+
+ chruby not installed
|
|
281
|
+
+ ```
|
|
282
|
+
+
|
|
283
|
+
+ ## Bundler Build Metadata
|
|
284
|
+
+
|
|
285
|
+
+ ```
|
|
286
|
+
+ Timestamp 2026-07-19
|
|
287
|
+
+ Git SHA 265babb801
|
|
288
|
+
+ ```
|
|
289
|
+
+
|
|
290
|
+
+ ## Bundler settings
|
|
291
|
+
+
|
|
292
|
+
+ ```
|
|
293
|
+
+ cache_all
|
|
294
|
+
+ Set for your local app (/workspace/.bundle/config): true
|
|
295
|
+
+ frozen
|
|
296
|
+
+ Set for your local app (/workspace/.bundle/config): false
|
|
297
|
+
+ gem.push_key
|
|
298
|
+
+ Set for your local app (/workspace/.bundle/config): "[REDACTED]"
|
|
299
|
+
+ global_gem_cache
|
|
300
|
+
+ Set for your local app (/workspace/.bundle/config): true
|
|
301
|
+
+ path
|
|
302
|
+
+ Set for your local app (/workspace/.bundle/config): "vendor"
|
|
303
|
+
+ ```
|
|
304
|
+
+
|
|
305
|
+
+ ## Gemfile
|
|
306
|
+
+
|
|
307
|
+
+ ### Gemfile
|
|
308
|
+
+
|
|
309
|
+
+ ```ruby
|
|
310
|
+
+ source "https://rubygems.org"
|
|
311
|
+
+
|
|
312
|
+
+ source "vendor/vendored.gemv", type: :vault do
|
|
313
|
+
+ gem "tailspin"
|
|
314
|
+
+ end
|
|
315
|
+
+
|
|
316
|
+
+ gemspec
|
|
317
|
+
+
|
|
318
|
+
+ gem "addressable", "~> 2.8"
|
|
319
|
+
+ gem "async"
|
|
320
|
+
+ gem "csv"
|
|
321
|
+
+ gem "debug", platform: :mri
|
|
322
|
+
+ gem "flexor", "~> 0.1.2"
|
|
323
|
+
+ gem "irb", platform: :mri
|
|
324
|
+
+ gem "minitest"
|
|
325
|
+
+ gem "minitest-reporters", require: false
|
|
326
|
+
+ gem "rake"
|
|
327
|
+
+ gem "repl_type_completor", platform: :mri
|
|
328
|
+
+ gem "gempilot"
|
|
329
|
+
+ gem "rubocop"
|
|
330
|
+
+ gem "rubocop-minitest"
|
|
331
|
+
+ gem "rubocop-performance"
|
|
332
|
+
+ gem "rubocop-rake"
|
|
333
|
+
+
|
|
334
|
+
+ gem "minitest-mock", "~> 5.27"
|
|
335
|
+
+ ```
|
|
336
|
+
+
|
|
337
|
+
+ ### Gemfile.lock
|
|
338
|
+
+
|
|
339
|
+
+ ```
|
|
340
|
+
+ PLUGIN SOURCE
|
|
341
|
+
+ remote: vendor/vendored.gemv
|
|
342
|
+
+ type: vault
|
|
343
|
+
+ specs:
|
|
344
|
+
+ tailspin (0.0.3)
|
|
345
|
+
+ flexor
|
|
346
|
+
+ zeitwerk
|
|
347
|
+
+
|
|
348
|
+
+ PATH
|
|
349
|
+
+ remote: .
|
|
350
|
+
+ specs:
|
|
351
|
+
+ reversal-store (0.0.4)
|
|
352
|
+
+ async
|
|
353
|
+
+ base64
|
|
354
|
+
+ command_kit
|
|
355
|
+
+ console
|
|
356
|
+
+ csv
|
|
357
|
+
+ flexor
|
|
358
|
+
+ pstore
|
|
359
|
+
+ tailspin (>= 0.0.3)
|
|
360
|
+
+ zeitwerk
|
|
361
|
+
+
|
|
362
|
+
+ GEM
|
|
363
|
+
+ remote: https://rubygems.org/
|
|
364
|
+
+ specs:
|
|
365
|
+
+ addressable (2.9.0)
|
|
366
|
+
+ public_suffix (>= 2.0.2, < 8.0)
|
|
367
|
+
+ ansi (1.6.0)
|
|
368
|
+
+ ast (2.4.3)
|
|
369
|
+
+ async (2.42.0)
|
|
370
|
+
+ console (~> 1.29)
|
|
371
|
+
+ fiber-annotation
|
|
372
|
+
+ io-event (~> 1.11)
|
|
373
|
+
+ metrics (~> 0.12)
|
|
374
|
+
+ traces (~> 0.18)
|
|
375
|
+
+ base64 (0.3.0)
|
|
376
|
+
+ builder (3.3.0)
|
|
377
|
+
+ command_kit (0.6.0)
|
|
378
|
+
+ console (1.37.0)
|
|
379
|
+
+ fiber-annotation
|
|
380
|
+
+ fiber-local (~> 1.1)
|
|
381
|
+
+ json
|
|
382
|
+
+ csv (3.3.5)
|
|
383
|
+
+ debug (1.11.1)
|
|
384
|
+
+ irb (~> 1.10)
|
|
385
|
+
+ reline (>= 0.3.8)
|
|
386
|
+
+ drb (2.2.3)
|
|
387
|
+
+ erb (6.0.5)
|
|
388
|
+
+ fiber-annotation (0.2.0)
|
|
389
|
+
+ fiber-local (1.1.0)
|
|
390
|
+
+ fiber-storage
|
|
391
|
+
+ fiber-storage (1.0.1)
|
|
392
|
+
+ flexor (0.1.4)
|
|
393
|
+
+ gempilot (0.2.3)
|
|
394
|
+
+ command_kit
|
|
395
|
+
+ rake
|
|
396
|
+
+ warning
|
|
397
|
+
+ zeitwerk
|
|
398
|
+
+ io-console (0.8.2)
|
|
399
|
+
+ io-event (1.19.2)
|
|
400
|
+
+ irb (1.18.0)
|
|
401
|
+
+ pp (>= 0.6.0)
|
|
402
|
+
+ prism (>= 1.3.0)
|
|
403
|
+
+ rdoc (>= 4.0.0)
|
|
404
|
+
+ reline (>= 0.4.2)
|
|
405
|
+
+ json (2.21.1)
|
|
406
|
+
+ language_server-protocol (3.17.0.6)
|
|
407
|
+
+ lint_roller (1.1.0)
|
|
408
|
+
+ logger (1.7.0)
|
|
409
|
+
+ metrics (0.15.0)
|
|
410
|
+
+ minitest (6.0.6)
|
|
411
|
+
+ drb (~> 2.0)
|
|
412
|
+
+ prism (~> 1.5)
|
|
413
|
+
+ minitest-mock (5.27.0)
|
|
414
|
+
+ minitest-reporters (1.8.0)
|
|
415
|
+
+ ansi
|
|
416
|
+
+ builder
|
|
417
|
+
+ minitest (>= 5.0, < 7)
|
|
418
|
+
+ ruby-progressbar
|
|
419
|
+
+ parallel (2.1.0)
|
|
420
|
+
+ parser (3.3.12.0)
|
|
421
|
+
+ ast (~> 2.4.1)
|
|
422
|
+
+ racc
|
|
423
|
+
+ pp (0.6.4)
|
|
424
|
+
+ prettyprint
|
|
425
|
+
+ prettyprint (0.2.0)
|
|
426
|
+
+ prism (1.9.0)
|
|
427
|
+
+ pstore (0.2.1)
|
|
428
|
+
+ public_suffix (7.0.5)
|
|
429
|
+
+ racc (1.8.1)
|
|
430
|
+
+ rainbow (3.1.1)
|
|
431
|
+
+ rake (13.4.2)
|
|
432
|
+
+ rbs (4.0.3)
|
|
433
|
+
+ logger
|
|
434
|
+
+ prism (>= 1.6.0)
|
|
435
|
+
+ tsort
|
|
436
|
+
+ rdoc (8.0.0)
|
|
437
|
+
+ erb
|
|
438
|
+
+ prism (>= 1.6.0)
|
|
439
|
+
+ rbs (>= 4.0.0)
|
|
440
|
+
+ tsort
|
|
441
|
+
+ regexp_parser (2.12.0)
|
|
442
|
+
+ reline (0.6.3)
|
|
443
|
+
+ io-console (~> 0.5)
|
|
444
|
+
+ repl_type_completor (0.1.15)
|
|
445
|
+
+ prism (~> 1.0)
|
|
446
|
+
+ rbs (>= 2.7.0)
|
|
447
|
+
+ rubocop (1.88.2)
|
|
448
|
+
+ json (~> 2.3)
|
|
449
|
+
+ language_server-protocol (~> 3.17.0.2)
|
|
450
|
+
+ lint_roller (~> 1.1.0)
|
|
451
|
+
+ parallel (>= 1.10)
|
|
452
|
+
+ parser (>= 3.3.0.2)
|
|
453
|
+
+ rainbow (>= 2.2.2, < 4.0)
|
|
454
|
+
+ regexp_parser (>= 2.9.3, < 3.0)
|
|
455
|
+
+ rubocop-ast (>= 1.49.0, < 2.0)
|
|
456
|
+
+ ruby-progressbar (~> 1.7)
|
|
457
|
+
+ unicode-display_width (>= 2.4.0, < 4.0)
|
|
458
|
+
+ rubocop-ast (1.50.0)
|
|
459
|
+
+ parser (>= 3.3.7.2)
|
|
460
|
+
+ prism (~> 1.7)
|
|
461
|
+
+ rubocop-minitest (0.39.1)
|
|
462
|
+
+ lint_roller (~> 1.1)
|
|
463
|
+
+ rubocop (>= 1.75.0, < 2.0)
|
|
464
|
+
+ rubocop-ast (>= 1.38.0, < 2.0)
|
|
465
|
+
+ rubocop-performance (1.26.1)
|
|
466
|
+
+ lint_roller (~> 1.1)
|
|
467
|
+
+ rubocop (>= 1.75.0, < 2.0)
|
|
468
|
+
+ rubocop-ast (>= 1.47.1, < 2.0)
|
|
469
|
+
+ rubocop-rake (0.7.1)
|
|
470
|
+
+ lint_roller (~> 1.1)
|
|
471
|
+
+ rubocop (>= 1.72.1)
|
|
472
|
+
+ ruby-progressbar (1.13.0)
|
|
473
|
+
+ traces (0.18.2)
|
|
474
|
+
+ tsort (0.2.0)
|
|
475
|
+
+ unicode-display_width (3.2.0)
|
|
476
|
+
+ unicode-emoji (~> 4.1)
|
|
477
|
+
+ unicode-emoji (4.2.0)
|
|
478
|
+
+ warning (1.6.0)
|
|
479
|
+
+ zeitwerk (2.8.2)
|
|
480
|
+
+
|
|
481
|
+
+ PLATFORMS
|
|
482
|
+
+ aarch64-linux
|
|
483
|
+
+ ruby
|
|
484
|
+
+
|
|
485
|
+
+ DEPENDENCIES
|
|
486
|
+
+ addressable (~> 2.8)
|
|
487
|
+
+ async
|
|
488
|
+
+ csv
|
|
489
|
+
+ debug
|
|
490
|
+
+ flexor (~> 0.1.2)
|
|
491
|
+
+ gempilot
|
|
492
|
+
+ irb
|
|
493
|
+
+ minitest
|
|
494
|
+
+ minitest-mock (~> 5.27)
|
|
495
|
+
+ minitest-reporters
|
|
496
|
+
+ rake
|
|
497
|
+
+ repl_type_completor
|
|
498
|
+
+ reversal-store!
|
|
499
|
+
+ rubocop
|
|
500
|
+
+ rubocop-minitest
|
|
501
|
+
+ rubocop-performance
|
|
502
|
+
+ rubocop-rake
|
|
503
|
+
+ tailspin!
|
|
504
|
+
+
|
|
505
|
+
+ CHECKSUMS
|
|
506
|
+
+ addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
|
|
507
|
+
+ ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658
|
|
508
|
+
+ ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
|
|
509
|
+
+ async (2.42.0) sha256=536078293b8c95d5b5679fa01bf7d2458bcc65cd46dec2c4cb3580feaeb965c6
|
|
510
|
+
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
|
|
511
|
+
+ builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
|
512
|
+
+ command_kit (0.6.0) sha256=e57f29cf5aee4f571c210041d910ff87f85749e42dfe75139c57cc93d84afa90
|
|
513
|
+
+ console (1.37.0) sha256=8093b286c2595a063849c098594fee5155ecc7967d36f3aa8cbe7569c8f3efd7
|
|
514
|
+
+ csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
|
|
515
|
+
+ debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
|
|
516
|
+
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
|
|
517
|
+
+ erb (6.0.5) sha256=858e63488cb796c9daba8b6e9ff4b3879c395022049be9a66a8e00980e612eac
|
|
518
|
+
+ fiber-annotation (0.2.0) sha256=7abfadf1d119f508867d4103bf231c0354d019cc39a5738945dec2edadaf6c03
|
|
519
|
+
+ fiber-local (1.1.0) sha256=c885f94f210fb9b05737de65d511136ea602e00c5105953748aa0f8793489f06
|
|
520
|
+
+ fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1
|
|
521
|
+
+ flexor (0.1.4) sha256=f0196703da64e8e6b75fef021ba792ad73a5880848cbcd3d1cca709b45940c72
|
|
522
|
+
+ gempilot (0.2.3) sha256=b011c5965917bb4faccc85ba63ac68271d9baf9bcab4a9f9e3334be3bb8cd020
|
|
523
|
+
+ io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
|
|
524
|
+
+ io-event (1.19.2) sha256=c9ac4f0c3153b453727ab15c03cc762b29a207979c703b2bb15c8be6209d4b4c
|
|
525
|
+
+ irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
|
|
526
|
+
+ json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583
|
|
527
|
+
+ language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
|
|
528
|
+
+ lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
|
|
529
|
+
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
530
|
+
+ metrics (0.15.0) sha256=61ded5bac95118e995b1bc9ed4a5f19bc9814928a312a85b200abbdac9039072
|
|
531
|
+
+ minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1
|
|
532
|
+
+ minitest-mock (5.27.0) sha256=7040ed7185417a966920987eaa6eaf1be4ea1fc5b25bb03ff4703f98564a55b0
|
|
533
|
+
+ minitest-reporters (1.8.0) sha256=8ce5280fb73ad3178ae525454df169b6f28c1b38b1d088ea91815d3a370ba384
|
|
534
|
+
+ parallel (2.1.0) sha256=b35258865c2e31134c5ecb708beaaf6772adf9d5efae28e93e99260877b09356
|
|
535
|
+
+ parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
|
|
536
|
+
+ pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
|
|
537
|
+
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
|
|
538
|
+
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
539
|
+
+ pstore (0.2.1) sha256=03904d0f2c66579e96d1e6704cdabc0c88df7ea8ed8782d9f3569f6f6c702c1a
|
|
540
|
+
+ public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
|
|
541
|
+
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
|
542
|
+
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
|
|
543
|
+
+ rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
|
|
544
|
+
+ rbs (4.0.3) sha256=5a7bf70e2628549d9a1f44eae447b2cfe55968a9c60cfff52693a4bdcc020e14
|
|
545
|
+
+ rdoc (8.0.0) sha256=03bf8c08a9639658855a0cfd77c0abca8325c227693f7f33f82957811348c469
|
|
546
|
+
+ regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
|
|
547
|
+
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
|
|
548
|
+
+ repl_type_completor (0.1.15) sha256=dec24c45fffefa3b55b19115fee20b3446c2f75c7605f579ab6047e931edd335
|
|
549
|
+
+ reversal-store (0.0.4)
|
|
550
|
+
+ rubocop (1.88.2) sha256=8def251c90cd955feb4daa3edc0ab56893250c4ce90ef81e6c80c03f9a939bbf
|
|
551
|
+
+ rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
|
|
552
|
+
+ rubocop-minitest (0.39.1) sha256=998398d6da4026d297f0f9bf709a1eac5f2b6947c24431f94af08138510cf7ed
|
|
553
|
+
+ rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
|
|
554
|
+
+ rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d
|
|
555
|
+
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
|
556
|
+
+ tailspin (0.0.3)
|
|
557
|
+
+ traces (0.18.2) sha256=80f1649cb4daace1d7174b81f3b3b7427af0b93047759ba349960cb8f315e214
|
|
558
|
+
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
|
|
559
|
+
+ unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
|
|
560
|
+
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
|
|
561
|
+
+ warning (1.6.0) sha256=a49cdfae19fb77d19afff2efbe45f8ab759e9cd25b4e4ce2c79dbaf46bdb6c9e
|
|
562
|
+
+ zeitwerk (2.8.2) sha256=7212a61311083c604184b1ea2574b9aa05cd14f855a0841c06985cabe9181d12
|
|
563
|
+
+
|
|
564
|
+
+ BUNDLED WITH
|
|
565
|
+
+ 4.0.14
|
|
566
|
+
+ ```
|
|
567
|
+
+
|
|
568
|
+
+ ## Gemspecs
|
|
569
|
+
+
|
|
570
|
+
+ ### reversal-store.gemspec
|
|
571
|
+
+
|
|
572
|
+
+ ```ruby
|
|
573
|
+
+ require_relative "lib/reversal/store/version"
|
|
574
|
+
+
|
|
575
|
+
+ Gem::Specification.new do |spec|
|
|
576
|
+
+ spec.name = "reversal-store"
|
|
577
|
+
+ spec.version = Reversal::Store::VERSION
|
|
578
|
+
+ spec.authors = ["David Gillis"]
|
|
579
|
+
+ spec.email = ["david@flipmine.com"]
|
|
580
|
+
+
|
|
581
|
+
+ spec.summary = "Reversal device storage"
|
|
582
|
+
+ spec.license = "MIT"
|
|
583
|
+
+ spec.required_ruby_version = ">= 3.4.8"
|
|
584
|
+
+
|
|
585
|
+
+ spec.metadata["allowed_push_host"] = "https://gemsluice.flipmine.com/private"
|
|
586
|
+
+
|
|
587
|
+
+ gemspec = File.basename(__FILE__)
|
|
588
|
+
+ spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
|
|
589
|
+
+ ls.readlines("\x0", chomp: true).reject do |f|
|
|
590
|
+
+ (f == gemspec) ||
|
|
591
|
+
+ f.start_with?(*%w[bin/ test/ spec/ features/ .git appveyor Gemfile])
|
|
592
|
+
+ end
|
|
593
|
+
+ end
|
|
594
|
+
+ spec.files << "vendor/vendored.gemv"
|
|
595
|
+
+ spec.bindir = "exe"
|
|
596
|
+
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
597
|
+
+ spec.require_paths = ["lib"]
|
|
598
|
+
+
|
|
599
|
+
+ spec.add_dependency "base64"
|
|
600
|
+
+ spec.add_dependency "async"
|
|
601
|
+
+ spec.add_dependency "console"
|
|
602
|
+
+ spec.add_dependency "command_kit"
|
|
603
|
+
+ spec.add_dependency "csv"
|
|
604
|
+
+ spec.add_dependency "flexor"
|
|
605
|
+
+ spec.add_dependency "pstore"
|
|
606
|
+
+ spec.add_dependency "zeitwerk"
|
|
607
|
+
+ spec.add_dependency "tailspin", '>= 0.0.3'
|
|
608
|
+
+ spec.metadata["rubygems_mfa_required"] = "true"
|
|
609
|
+
+ end
|
|
610
|
+
+ ```
|
|
611
|
+
+
|
|
612
|
+
+ --- TEMPLATE END ----------------------------------------------------------------
|
|
613
|
+
+
|
|
614
|
+
+ Unfortunately, an unexpected error occurred, and Bundler cannot continue.
|
|
615
|
+
+
|
|
616
|
+
+ First, try this link to see if there are any existing issue reports for this error:
|
|
617
|
+
+ https://github.com/ruby/rubygems/search?q=cannot+load+such+file+--+bundler%2Fplugin%2Fvault_source&type=Issues
|
|
618
|
+
+
|
|
619
|
+
+ If there aren't any reports for this error yet, please fill in the new issue form located at https://github.com/ruby/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md. Make sure to copy and paste the full output of this command under the "What happened instead?" section.
|
|
620
|
+
+
|
|
621
|
+
+ RESOLUTION: two root causes, both fixed. (1) `bundle plugin install` switches
|
|
622
|
+
+ GEM_HOME to the plugin root mid-process, and RubyGems' spec stub cache is
|
|
623
|
+
+ populated during resolution, before gemvault is installed there; the shim's
|
|
624
|
+
+ preamble only checked Gem::Specification.dirs membership, skipped its reset,
|
|
625
|
+
+ and the stale cache made `require "bundler/plugin/vault_source"` fail. The
|
|
626
|
+
+ shim now derives the gem root from its own __dir__ (covering plugin roots,
|
|
627
|
+
+ the global root, and plain GEM_HOME installs), adds unsearched spec dirs, and
|
|
628
|
+
+ resets the stale spec cache when gemvault is not resolvable. (2) gemvault
|
|
629
|
+
+ declared bundler as a runtime dependency, which fails activation wherever
|
|
630
|
+
+ GEM_PATH is restricted (bundle exec, plugin install) on rubies that ship
|
|
631
|
+
+ bundler as a regular gem; the dependency is removed. Replicated by
|
|
632
|
+
+ spec/integration/plugin_install_spec.rb (project with path vendor, global
|
|
633
|
+
+ root, distro-style regular-gem bundler), all passing.
|
|
634
|
+
Status: closed
|
|
635
|
+
|
|
636
|
+
Id: 11
|
|
637
|
+
Updated: Sun, 19 Jul 2026 03:56:57 +0000
|
|
638
|
+
Name: CI tests aren't running
|
|
639
|
+
Description: CI tests should be running on all platforms
|
|
640
|
+
+
|
|
641
|
+
+ ANALYSIS: .github/workflows/ci.yml exists (unit tests, specs, rubocop on
|
|
642
|
+
+ push/PR to master). Two likely reasons it cannot go green: (1) `rake rubocop`
|
|
643
|
+
+ exits nonzero on the pre-existing Gemspec/RequiredRubyVersion offenses
|
|
644
|
+
+ (required_ruby_version ">= 3.4.8" vs TargetRubyVersion 4.0 in .rubocop.yml) --
|
|
645
|
+
+ pick one and align; (2) `rake spec` builds/uses a podman image, so the runner
|
|
646
|
+
+ needs podman available. Not replicable as a podman rspec spec (CI infra).
|
|
647
|
+
+
|
|
648
|
+
+ RESOLUTION: three blockers fixed. (1) TargetRubyVersion aligned to 3.4.8, the
|
|
649
|
+
+ gemspec floor, clearing the Gemspec/RequiredRubyVersion offenses; whole
|
|
650
|
+
+ tracked tree is rubocop-clean. (2) The integration job invoked
|
|
651
|
+
+ `rake spec:integration`, which did not exist -- the Rakefile now defines
|
|
652
|
+
+ spec:host (--tag ~integration) and spec:integration (--tag integration,
|
|
653
|
+
+ depends on spec:setup), and the unit job runs spec:host instead of the full
|
|
654
|
+
+ podman-backed `rake spec`. (3) The integration job installs podman if the
|
|
655
|
+
+ runner image lacks it. Every CI step verified locally, rubocop against a
|
|
656
|
+
+ simulated clean checkout: rake test 113/0, spec:host 100/0, rubocop 91 files
|
|
657
|
+
+ clean, spec:build ok, spec:integration 45/0 (1 intentional pending). First
|
|
658
|
+
+ green run happens on the next push to master/PR.
|
|
659
|
+
Status: closed
|
|
660
|
+
|
|
661
|
+
Id: 12
|
|
662
|
+
Updated: Sun, 19 Jul 2026 03:27:39 +0000
|
|
663
|
+
Name: bundle exec fails after successful bundle install with path vendor
|
|
664
|
+
Description: Reported 2026-07-19 (reversal-store): bundle install succeeds, then
|
|
665
|
+
+ any `bundle exec` fails while parsing the Gemfile:
|
|
666
|
+
+
|
|
667
|
+
+ ```
|
|
668
|
+
+ [!] There was an error parsing `Gemfile`: Could not find 'bundler' (>= 2.0)
|
|
669
|
+
+ among 101 total gem(s)
|
|
670
|
+
+ Checked in 'GEM_PATH=/workspace/vendor/ruby/4.0.0' at:
|
|
671
|
+
+ /workspace/.bundle/plugin/specifications/gemvault-0.1.5.gemspec
|
|
672
|
+
+ ```
|
|
673
|
+
+
|
|
674
|
+
+ RESOLUTION: gemvault declared bundler as a runtime dependency. Under
|
|
675
|
+
+ `bundle exec` with path vendor, GEM_PATH is restricted to the app bundle, and
|
|
676
|
+
+ on rubies where bundler is a regular (non-default) gem its spec is invisible,
|
|
677
|
+
+ so activating gemvault from the plugin root raises Gem::MissingSpecError while
|
|
678
|
+
+ the Gemfile's vault source loads. The dependency is removed (bundler always
|
|
679
|
+
+ exists in the process the plugin runs in). Replicated verbatim in podman by
|
|
680
|
+
+ spec/integration/bundle_exec_spec.rb, which simulates distro-style rubies by
|
|
681
|
+
+ reinstalling bundler as a regular gem and deleting its default-gem spec stub;
|
|
682
|
+
+ also covers the system-installed (`gem install gemvault`) flow. Both passing.
|
|
683
|
+
Status: closed
|