rggen / rggen

Code generation tool for control and status registers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot load default plugins when newer RgGen is installed

taichi-ishitani opened this issue · comments

Cannot load default plugins when newer RgGen is installed.
This error is caused by ConflictError.

$ rggen _0.25.1_ --verbose-version --print-backtrace
[ConflictError] Unable to activate rggen-0.31.0, because rggen-core-0.25.1 conflicts with rggen-core (~> 0.31.0)
backtrace:
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/specification.rb:2237:in `raise_if_conflicts'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/specification.rb:1368:in `activate'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems.rb:221:in `rescue in try_activate'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems.rb:214:in `try_activate'
    <internal:/storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:153:in `rescue in require'
    <internal:/storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:149:in `require'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/lib/rggen/core/builder/plugin_manager.rb:92:in `read_setup_file'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/lib/rggen/core/builder/plugin_manager.rb:39:in `load_plugin'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/lib/rggen/core/builder/plugin_manager.rb:44:in `each'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/lib/rggen/core/builder/plugin_manager.rb:44:in `load_plugins'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/3.0.0/forwardable.rb:238:in `load_plugins'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/lib/rggen/core/printers.rb:30:in `load_plugins'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/lib/rggen/core/printers.rb:21:in `run'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/lib/rggen/core/cli.rb:16:in `run'
    /storage/eda/tools/rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/rggen-core-0.25.1/exe/rggen:9:in `<top (required)>'
    /storage/eda/tools/rbenv/versions/3.0.3/bin/rggen:25:in `load'
    /storage/eda/tools/rbenv/versions/3.0.3/bin/rggen:25:in `<main>'

To resolve this error, need to activate the suitable rggen before loading the default plugins.

gem 'rggen', "~> #{MAJOR}.#{MINOR}.0"

The gem method will activate the latest gem but does not resolve version conflict. Therefore, need to resolve version conflict by myself like below.

Gem::Specification.find_all_by_name('rggen').find { |s| !s.has_conflicts? }