Comments (16)
Looks like a new bundler version released yesterday. Give that a try?
from rubocop.
I can't reproduce this. Can you give more detailed instructions?
from rubocop.
Repo in question: https://github.com/djberg96/io-extra
bundle install
then rake rubocop
Full backtrace:
dberger:/home/dberger/Dev/io-extra [main]>rake rubocop --trace
** Invoke rubocop (first_time)
** Execute rubocop
rake aborted!
NameError: uninitialized constant Bundler::SharedHelpers (NameError)
Bundler::SharedHelpers.filesystem_access(loaded_from, :read) do
^^^^^^^^^^^^^^^
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler/rubygems_ext.rb:151:in `data'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/stub_specification.rb:158:in `name'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/stub_specification.rb:88:in `activated?'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/specification.rb:1058:in `block in find_active_stub_by_path'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/specification.rb:1057:in `each'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/specification.rb:1057:in `find'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/specification.rb:1057:in `find_active_stub_by_path'
<internal:/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `block in require'
<internal:/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:39:in `synchronize'
<internal:/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:39:in `require'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler/rubygems_ext.rb:211:in `<module:Gem>'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler/rubygems_ext.rb:33:in `<top (required)>'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler.rb:10:in `require_relative'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler.rb:10:in `<top (required)>'
<internal:/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
<internal:/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.4/lib/rubocop/lockfile.rb:6:in `<top (required)>'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.4/lib/rubocop.rb:743:in `require_relative'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.4/lib/rubocop.rb:743:in `<top (required)>'
<internal:/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
<internal:/home/dberger/.rbenv/versions/3.2.4/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.4/lib/rubocop/rake_task.rb:47:in `run_cli'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.4/lib/rubocop/rake_task.rb:26:in `block (2 levels) in initialize'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/file_utils_ext.rb:58:in `verbose'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.4/lib/rubocop/rake_task.rb:24:in `block in initialize'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `block in execute'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `each'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:281:in `execute'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `synchronize'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/task.rb:188:in `invoke'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:188:in `invoke_task'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block (2 levels) in top_level'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `each'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block in top_level'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:147:in `run_with_threads'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:132:in `top_level'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:83:in `block in run'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:214:in `standard_exception_handling'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/lib/rake/application.rb:80:in `run'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/home/dberger/.rbenv/versions/3.2.4/bin/rake:25:in `load'
/home/dberger/.rbenv/versions/3.2.4/bin/rake:25:in `<main>'
Tasks: TOP => rubocop
from rubocop.
The weird thing is that I only see this on my Ubuntu laptop. Using my desktop Ubuntu VM, it works. Identical setup as far as I can tell. I double checked the results of bundler config
(both empty) and neither has anything in a ~/.gemrc file.
from rubocop.
Yeah, there must be more to this. I tried with your repo and it just works for me
from rubocop.
If I just run rubocop
without using the Rake task I see this:
>rubocop
Inspecting 2 files
..
2 files inspected, no offenses detected
No such file or directory @ rb_sysopen - /home/dberger/Dev/io-extra/Gemfile.lock
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler.rb:526:in `initialize'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler.rb:526:in `open'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler.rb:526:in `block in read_file'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler/shared_helpers.rb:103:in `filesystem_access'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/bundler-2.5.10/lib/bundler.rb:525:in `read_file'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/lockfile.rb:77:in `parser'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/lockfile.rb:30:in `dependencies'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli/command/suggest_extensions.rb:74:in `all_extensions'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli/command/suggest_extensions.rb:96:in `not_installed_extensions'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli/command/suggest_extensions.rb:88:in `extensions'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli/command/suggest_extensions.rb:18:in `run'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli/command.rb:11:in `run'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli/environment.rb:18:in `run'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli.rb:122:in `run_command'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli.rb:134:in `suggest_extensions'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli.rb:129:in `block in execute_runners'
<internal:kernel>:90:in `tap'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli.rb:129:in `execute_runners'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli.rb:51:in `block in run'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli.rb:81:in `profile_if_needed'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/lib/rubocop/cli.rb:43:in `run'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/exe/rubocop:19:in `block in <top (required)>'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/3.2.0/benchmark.rb:311:in `realtime'
/home/dberger/.rbenv/versions/3.2.4/lib/ruby/gems/3.2.0/gems/rubocop-1.63.5/exe/rubocop:19:in `<top (required)>'
/home/dberger/.rbenv/versions/3.2.4/bin/rubocop:25:in `load'
/home/dberger/.rbenv/versions/3.2.4/bin/rubocop:25:in `<main>'
from rubocop.
I dunno if this is a clue or what, but it works if I first, explicitly require 'bundler'
at the top of the Rakefile and second, touch the Gemfile.lock file so that it exists before running the task. Why does it need this file to be present? No clue. It's not checked into the repo.
from rubocop.
That's #12876, I have a PR open for that #12901. Maybe that also fixes this? Give it a try (I guess its a bit harder than just checking out the PR since it must be installed beforehand, not sure offhand how to do that).
For me the lockfile always generated before rubocop tried to access it
from rubocop.
@Earlopain Seems to fix running rubocop
, but not if run as a rake task.
from rubocop.
@Earlopain I'm also sort of confused by the lockfile.rb code in general. If rubocop needs bundler to function properly, then why not make it a gem dependency instead of this rigamarole they've got going on in that file?
from rubocop.
I guess it's more of a optional dependency. Since everything around it relies on the contents of a lockfile it's a safe assumption to make that bundler will be around as well. That's how I would rationalize it.
I think you may be running into a bundler bug. rubygems/rubygems#7647 seems very relevant as it mentions rakefiles and SharedHelpers
. The description is too complicated for me to quickly understand but I think that may be it.
Downgrading bundler to 2.5.9
should confirm this.
from rubocop.
Downgrading to 2.5.9 didn't seem to do it, though I'm also not 100% sure because downgrading bundler required some manual fiddling since it's a default gem. Could be, though.
But, that still wouldn't explain why it only seems to happen on my laptop.
from rubocop.
It does say this:
However, the autoload does not seem to be triggering under some situations, such as when loading our own Rakefile. But that also does not happen always, but only when you have two different versions of psych installed in your system.
Which I guess could be a difference between your two machines. I installed a different psych version and didn't reproduce though
from rubocop.
Yep, I'm only showing psych 5.01 on both systems.
from rubocop.
@Earlopain Yep, that seems to have fixed it, thanks!
Bundler 2.5.11 for anyone reading this.
from rubocop.
Nice!
from rubocop.
Related Issues (20)
- Style/SendWithLiteralMethodName should check method name characters HOT 1
- Style/SuperArguments is probably not safe to autocorrect HOT 1
- Style/RedundantLineContinuation false alarm on "break" with an argument
- Style/TrailingCommaInArrayLiteral and Style/TrailingCommaInHashLiteral use comma by default HOT 2
- False positive with `Style/SuperArguments` cop HOT 2
- `Style/HashEachMethods` mistakes other objects which define a `values` method as a Hash HOT 2
- Ability to disable `Lint/Syntax` from extension HOT 1
- Option for `Naming/VariableName` to disallow certain identifiers
- CodeClimate coverage upload not working HOT 2
- Unhandled exception in YARD::Handlers::Ruby::MixinHandler: in `lib/rubocop/ext/processed_source.rb during Building YARD (yri) index for rubocop HOT 1
- `Style/ArgumentsForwarding` doesn't respect `yield`
- Cop idea: compound hash initialization HOT 1
- Style/SuperArguments incompatible with define_method HOT 3
- Lint/NestedMethodDefinition false alarm on the `@` presence HOT 1
- Auto-correction of Style/SymbolProc introduces ArgumentError: no receiver given HOT 4
- Lint/SymbolConversion with string interpolation should be a Style cop HOT 2
- Cop idea: assign variable directly to result of if/unless block HOT 2
- Add configuration for Metrics/BlockNesting to ignore inline if statements
- Rubocop 1.64.0 raises "Could not locate Gemfile or .bundle/ directory" error on non-Bundler environment
- `isolated_environment` is not isolated enough
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rubocop.