Skip to content

Can't execute annotate or bundle exec annotate commands #984

Open
@kevin-atnos

Description

@kevin-atnos

Hello everyone!

I'm trying to install the annotate gem in a project running with Rails 6 (6.1.7.2) and Ruby 2 (2.7.7).

I have added the gem in my Gemfile:

group :development do
  gem 'annotate'
end

I have bundle, bundle install (and also tried bundle exec rails g annotate:install).

It seems to be installed:

Successfully installed annotate-3.2.0
Parsing documentation for annotate-3.2.0
Installing ri documentation for annotate-3.2.0
Done installing documentation for annotate after 0 seconds
1 gem installed

I have my auto_annotate_models.rake file which has been created there: lib/tasks/auto_annotate_models.rake

I'm in the right folder (at the root of the project), but when I try the commands, I have weird errors and I can't understand what's wrong:

➜ PROJECT_NAME git:(some-branch-name) ✗ annotate
Traceback (most recent call last):
	9: from /home/kevin/.rbenv/versions/2.7.7/bin/annotate:23:in `<main>'
	8: from /home/kevin/.rbenv/versions/2.7.7/bin/annotate:23:in `load'
	7: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/annotate-3.2.0/bin/annotate:10:in `<top (required)>'
	6: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler.rb:171:in `setup'
	5: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/runtime.rb:24:in `setup'
	4: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/runtime.rb:24:in `map'
	3: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/spec_set.rb:165:in `each'
	2: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/spec_set.rb:165:in `each'
	1: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/runtime.rb:25:in `block in setup'
/home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/runtime.rb:304:in `check_for_activated_spec!': You have already activated activesupport 6.1.7.3, but your Gemfile requires activesupport 6.1.7.2. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)

If I try to execute it with bundle exec as it is recommanded, I have another issue:

➜ PROJECT_NAME git:(some-branch-name) ✗ bundle exec annotate
bundler: failed to load command: annotate (/home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/bin/annotate)
Traceback (most recent call last):
	35: from /home/kevin/.rbenv/versions/2.7.7/bin/bundle:23:in `<main>'
	34: from /home/kevin/.rbenv/versions/2.7.7/bin/bundle:23:in `load'
	33: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/exe/bundle:33:in `<top (required)>'
	32: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	31: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/exe/bundle:45:in `block in <top (required)>'
	30: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli.rb:28:in `start'
	29: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	28: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli.rb:34:in `dispatch'
	27: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	26: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	25: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	24: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli.rb:492:in `exec'
	23: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli/exec.rb:23:in `run'
	22: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli/exec.rb:58:in `kernel_load'
	21: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli/exec.rb:58:in `load'
	20: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/bin/annotate:23:in `<top (required)>'
	19: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/bin/annotate:23:in `load'
	18: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/annotate-3.2.0/bin/annotate:20:in `<top (required)>'
	17: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/annotate-3.2.0/lib/annotate.rb:119:in `bootstrap_rake'
	16: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/annotate-3.2.0/lib/annotate.rb:119:in `load'
	15: from /home/kevin/Documents/[COMPANY_NAME]/Projets/[PROJECT_NAME]/Rakefile:18:in `<top (required)>'
	14: from /home/kevin/Documents/[COMPANY_NAME]/Projets/[PROJECT_NAME]/Rakefile:18:in `load'
	13: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/railties-6.1.7.2/lib/rails/tasks/engine.rake:85:in `<top (required)>'
	12: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:160:in `invoke_task'
	11: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke'
	10: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
	 9: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
	 8: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
	 7: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `execute'
	 6: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `each'
	 5: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `block in execute'
	 4: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/railties-6.1.7.2/lib/rails/tasks/engine.rake:4:in `block in <top (required)>'
	 3: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/dsl_definition.rb:141:in `namespace'
	 2: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task_manager.rb:232:in `in_namespace'
	 1: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/railties-6.1.7.2/lib/rails/tasks/engine.rake:5:in `block (2 levels) in <top (required)>'
/home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/railties-6.1.7.2/lib/rails/tasks/engine.rake:5:in `load': cannot load such file -- /home/kevin/Documents/[COMPANY_NAME]/Projets/[PROJECT_NAME]/test/dummy/Rakefile (LoadError)

It seems test/dummy/Rakefile is searched by another Rakefile we have in the root of our project:

The root Rakefile content:

begin
  require 'bundler/setup'
rescue LoadError
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
end

require 'rdoc/task'

RDoc::Task.new(:rdoc) do |rdoc|
  rdoc.rdoc_dir = 'rdoc'
  rdoc.title    = 'PROJECT_NAME::Core'
  rdoc.options << '--line-numbers'
  rdoc.rdoc_files.include('README.md')
  rdoc.rdoc_files.include('lib/**/*.rb')
end

APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) # see here (I have no clue what this is...)
load 'rails/tasks/engine.rake' # see here (I have no clue what this is... but that APP_RAKEFILE seems to be used by engine.rake)

load 'rails/tasks/statistics.rake'

require 'bundler/gem_tasks'

require 'rake/testtask'

Rake::TestTask.new(:test) do |t|
  t.libs << 'lib'
  t.libs << 'test'
  t.pattern = 'test/**/*_test.rb'
  t.verbose = false
end

task default: :test

If I try to create this strange Rakefile in /test/dummy/Rakefile and re-run commands, here is what I get:

➜  PROJECT_NAME git:(some-branch-name) ✗ bundle exec annotate
bundler: failed to load command: annotate (/home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/bin/annotate)
Traceback (most recent call last):
	32: from /home/kevin/.rbenv/versions/2.7.7/bin/bundle:23:in `<main>'
	31: from /home/kevin/.rbenv/versions/2.7.7/bin/bundle:23:in `load'
	30: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/exe/bundle:33:in `<top (required)>'
	29: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	28: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/exe/bundle:45:in `block in <top (required)>'
	27: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli.rb:28:in `start'
	26: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	25: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli.rb:34:in `dispatch'
	24: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	23: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	22: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	21: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli.rb:492:in `exec'
	20: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli/exec.rb:23:in `run'
	19: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli/exec.rb:58:in `kernel_load'
	18: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/bundler-2.4.12/lib/bundler/cli/exec.rb:58:in `load'
	17: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/bin/annotate:23:in `<top (required)>'
	16: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/bin/annotate:23:in `load'
	15: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/annotate-3.2.0/bin/annotate:20:in `<top (required)>'
	14: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/annotate-3.2.0/lib/annotate.rb:119:in `bootstrap_rake'
	13: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/annotate-3.2.0/lib/annotate.rb:119:in `load'
	12: from /home/kevin/Documents/[COMPANY_NAME]/Projets/[PROJECT_NAME]/Rakefile:18:in `<top (required)>'
	11: from /home/kevin/Documents/[COMPANY_NAME]/Projets/[PROJECT_NAME]/Rakefile:18:in `load'
	10: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/railties-6.1.7.2/lib/rails/tasks/engine.rake:85:in `<top (required)>'
	 9: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:160:in `invoke_task'
	 8: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke'
	 7: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
	 6: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
	 5: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
	 4: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `execute'
	 3: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `each'
	 2: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `block in execute'
	 1: from /home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/railties-6.1.7.2/lib/rails/tasks/engine.rake:21:in `block in <top (required)>'
/home/kevin/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/railties-6.1.7.2/lib/rails/tasks/engine.rake:78:in `find_engine_path': undefined method `find' for Rails::Engine:Class (NoMethodError)

I have also tried to remove these 2 lines from the main Rakefile but it seems to do nothing then when I execute the command.

Sooo, yeah, I'm stuck and I have no clue on what is going on and what I can do to fix this :D
Am I missing something?

If anyone has some ideas with this, I would be glad to try it!

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions