Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing backport "Fix dependency resolver trying to fetch gem paths from lazy specifications" in 0.26.8 #11636

Closed
sdelcroix opened this issue Sep 22, 2023 · 2 comments
Assignees

Comments

@sdelcroix
Copy link
Contributor

sdelcroix commented Sep 22, 2023

Describe the bug

While upgrading from 0.26.7 to 0.26.8, I get the following error when I ran the remove_valuator_orphan_records task :

$ bundle exec rake decidim:proposals:upgrade:remove_valuator_orphan_records

** Invoke decidim:proposals:upgrade:remove_valuator_orphan_records (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute decidim:proposals:upgrade:remove_valuator_orphan_records
rake aborted!
NoMethodError: undefined method `full_gem_path' for #<Bundler::LazySpecification:0x000056277d879bf0>
Did you mean?  full_name

Digging through commits here, I found this presumed fix ( #10220 ) which has been backported to 0.27 ( #10272 ) but not to 0.26 after dependency resolver has been introduced by #11168 .

I've manually backported this fix and there are no more errors.

To Reproduce

  1. (? Having bundler version greater than the Decidim Gemfile.lock used one ?)
  2. Upgrade from Decidim 0.26.7 to 0.26.8
  3. Run the remove_valuator_orphan_records task

Expected behavior

Rake task must execute without error : NoMethodError: undefined method `full_gem_path' for #Bundler::LazySpecification:0x000056277d879bf0

Screenshots

No response

Stacktrace

$ bundle exec rake decidim:proposals:upgrade:remove_valuator_orphan_records --trace

** Invoke decidim:proposals:upgrade:remove_valuator_orphan_records (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute decidim:proposals:upgrade:remove_valuator_orphan_records
rake aborted!
NoMethodError: undefined method `full_gem_path' for #<Bundler::LazySpecification:0x000056277d879bf0>
Did you mean?  full_name
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-core-0.26.8/lib/decidim/dependency_resolver.rb:74:in `module_path'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-core-0.26.8/lib/decidim/dependency_resolver.rb:85:in `available?'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-core-0.26.8/lib/decidim/dependency_resolver.rb:129:in `needed?'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-core-0.26.8/lib/decidim/core.rb:659:in `module_installed?'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/decidim-proposals-0.26.8/lib/tasks/proposals/upgrade/decdim_proposal_upgrade_tasks.rake:8:in `block (4 levels) in <main>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `block in execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `each'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `execute'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:160:in `invoke_task'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `each'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block in top_level'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:125:in `run_with_threads'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:110:in `top_level'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:83:in `block in run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:80:in `run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/home/decidim/.rbenv/versions/2.7.5/bin/rake:23:in `load'
/home/decidim/.rbenv/versions/2.7.5/bin/rake:23:in `<top (required)>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/cli/exec.rb:58:in `load'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/cli/exec.rb:58:in `kernel_load'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/cli/exec.rb:23:in `run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/cli.rb:492:in `exec'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/cli.rb:34:in `dispatch'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/cli.rb:28:in `start'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/exe/bundle:37:in `block in <top (required)>'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/home/decidim/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.4.16/exe/bundle:29:in `<top (required)>'
/home/decidim/.rbenv/versions/2.7.5/bin/bundle:23:in `load'
/home/decidim/.rbenv/versions/2.7.5/bin/bundle:23:in `<main>'
Tasks: TOP => decidim:proposals:upgrade:remove_valuator_orphan_records

Extra data

  • Device:
  • Device OS:
  • Browser:
  • Decidim Version: 0.26.8
  • Decidim installation: Manual

Additional context

Bundler version : 2.4.16

@andreslucena
Copy link
Member

I've done it in #12061. I think we probably miss that one because in that moment we didn't have some tooling that have now (like the backports_checker script) that would prevent this happening.

Thanks for the heads-up @sdelcroix!

@andreslucena
Copy link
Member

Closing this one as it was already backported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants