Skip to content

Plugins system broken? #498

Description

@Apfelwurm

Describe the bug
Hello, i'm pretty new to ruby and fab-manager, but i want to try to implement a plugin for it.
Sadly it seems that the repository of the sample plugin is outdated and does not really represent a working plugin anymore.
The error i get when trying to use the sample plugin:

NoMethodError: undefined method `assets' for #<Rails::Application::Configuration:0x00007f1cb0c5be20 @root=#<Pathname:/workspaces/fab-manager>, @generators=#<Rails::Configuration::Generators:0x00007f1cb2bc06f8 @aliases={}, @options={:rails=>{:orm=>:active_record, :test_framework=>:mini_test, :integration_tool=>:test_unit, :system_tests=>:test_unit}, :active_record=>{:migration=>true, :timestamps=>true}, :test_unit=>{:fixture=>true, :fixture_replacement=>nil}}, @fallbacks={}, @templates=[], @colorize_logging=true, @api_only=false, @hidden_namespaces=[], @after_generate_callbacks=[]>, @middleware=#<Rails::Configuration::MiddlewareStackProxy:0x00007f1cb159d6f0 @operations=[], @delete_operations=[]>, @javascript_path="javascript", @encoding=#<Encoding:UTF-8>, @allow_concurrency=nil, @consider_all_requests_local=false, @filter_parameters=[], @filter_redirect=[], @helpers_paths=[], @hosts=[".localhost", #<IPAddr: IPv4:0.0.0.0/0.0.0.0>, #<IPAddr: IPv6:0000:0000:0000:0000:0000:0000:0000:0000/0000:0000:0000:0000:0000:0000:0000:0000>], @host_authorization={}, @public_file_server=#<ActiveSupport::OrderedOptions {:enabled=>true, :index_name=>"index"}>, @force_ssl=false, @ssl_options={:hsts=>{:subdomains=>true}}, @session_store=nil, @time_zone="Paris", @beginning_of_week=:monday, @log_level=:debug, @cache_store=[:file_store, "/workspaces/fab-manager/tmp/cache/"], @railties_order=[:all], @relative_url_root=nil, @reload_classes_only_on_change=true, @file_watcher=ActiveSupport::FileUpdateChecker, @exceptions_app=nil, @autoflush_log=true, @log_formatter=#<ActiveSupport::Logger::SimpleFormatter:0x00007f1cb1594438 @datetime_format=nil>, @eager_load=nil, @secret_key_base=nil, @api_only=false, @debug_exception_response_format=nil, @x=#<Rails::Application::Configuration::Custom:0x00007f1cb1594348 @configurations={}>, @enable_dependency_loading=false, @read_encrypted_secrets=false, @content_security_policy=nil, @content_security_policy_report_only=false, @content_security_policy_nonce_generator=nil, @content_security_policy_nonce_directives=nil, @require_master_key=false, @loaded_config_version=7.0, @credentials=#<ActiveSupport::OrderedOptions {:content_path=>#<Pathname:/workspaces/fab-manager/config/credentials.yml.enc>, :key_path=>#<Pathname:/workspaces/fab-manager/config/master.key>}>, @disable_sandbox=false, @add_autoload_paths_to_load_path=true, @permissions_policy=nil, @rake_eager_load=false, @server_timing=false, @paths=#<Rails::Paths::Root:0x00007f1cb294dc18 @path=#<Pathname:/workspaces/fab-manager>, @root={"app"=>#<Rails::Paths::Path:0x00007f1cb0616ba0 @paths=["app"], @current="app", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="{*,*/concerns}", @exclude=["assets", "javascript"], @autoload_once=false, @eager_load=true, @autoload=false, @load_path=false>, "app/assets"=>#<Rails::Paths::Path:0x00007f1cb112dac0 @paths=["app/assets"], @current="app/assets", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="*", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "app/controllers"=>#<Rails::Paths::Path:0x00007f1cb112da20 @paths=["app/controllers"], @current="app/controllers", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=true, @autoload=false, @load_path=false>, "app/channels"=>#<Rails::Paths::Path:0x00007f1cb112d980 @paths=["app/channels"], @current="app/channels", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=true, @autoload=false, @load_path=false>, "app/helpers"=>#<Rails::Paths::Path:0x00007f1cb112d840 @paths=["app/helpers"], @current="app/helpers", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=true, @autoload=false, @load_path=false>, "app/models"=>#<Rails::Paths::Path:0x00007f1cb112d7a0 @paths=["app/models"], @current="app/models", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=true, @autoload=false, @load_path=false>, "app/mailers"=>#<Rails::Paths::Path:0x00007f1cb112d700 @paths=["app/mailers"], @current="app/mailers", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=true, @autoload=false, @load_path=false>, "app/views"=>#<Rails::Paths::Path:0x00007f1cb112d660 @paths=["app/views", "/workspaces/fab-manager/plugins/navinum-gamification/views"], @current="app/views", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "lib"=>#<Rails::Paths::Path:0x00007f1cb112d5c0 @paths=["lib"], @current="lib", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=true>, "lib/assets"=>#<Rails::Paths::Path:0x00007f1cb112d3e0 @paths=["lib/assets"], @current="lib/assets", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="*", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "lib/tasks"=>#<Rails::Paths::Path:0x00007f1cb112d200 @paths=["lib/tasks"], @current="lib/tasks", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="**/*.rake", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config"=>#<Rails::Paths::Path:0x00007f1cb112cf80 @paths=["config"], @current="config", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/environments"=>#<Rails::Paths::Path:0x00007f1cb112cda0 @paths=["config/environments"], @current="config/environments", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="development.rb", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/initializers"=>#<Rails::Paths::Path:0x00007f1cb112cd00 @paths=["config/initializers"], @current="config/initializers", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="**/*.rb", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/locales"=>#<Rails::Paths::Path:0x00007f1cb112cbc0 @paths=["config/locales"], @current="config/locales", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="**/*.{rb,yml}", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/routes.rb"=>#<Rails::Paths::Path:0x00007f1cb112c800 @paths=["config/routes.rb"], @current="config/routes.rb", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/routes"=>#<Rails::Paths::Path:0x00007f1cb112c760 @paths=["config/routes"], @current="config/routes", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="**/*.rb", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "db"=>#<Rails::Paths::Path:0x00007f1cb112c620 @paths=["db"], @current="db", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "db/migrate"=>#<Rails::Paths::Path:0x00007f1cb112c440 @paths=["db/migrate"], @current="db/migrate", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "db/seeds.rb"=>#<Rails::Paths::Path:0x00007f1cb112c3a0 @paths=["db/seeds.rb"], @current="db/seeds.rb", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "vendor"=>#<Rails::Paths::Path:0x00007f1cb112c300 @paths=["vendor"], @current="vendor", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=true>, "vendor/assets"=>#<Rails::Paths::Path:0x00007f1cb112c260 @paths=["vendor/assets"], @current="vendor/assets", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="*", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/database"=>#<Rails::Paths::Path:0x00007f1cb112c1c0 @paths=["config/database.yml"], @current="config/database", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/secrets"=>#<Rails::Paths::Path:0x00007f1cb112c120 @paths=["config"], @current="config/secrets", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob="secrets.yml{,.enc}", @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "config/environment"=>#<Rails::Paths::Path:0x00007f1cb112bcc0 @paths=["config/environment.rb"], @current="config/environment", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "lib/templates"=>#<Rails::Paths::Path:0x00007f1cb112bae0 @paths=["lib/templates"], @current="lib/templates", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "log"=>#<Rails::Paths::Path:0x00007f1cb112ba40 @paths=["log/development.log"], @current="log", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "public"=>#<Rails::Paths::Path:0x00007f1cb112b9a0 @paths=["public"], @current="public", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "public/javascripts"=>#<Rails::Paths::Path:0x00007f1cb112b860 @paths=["public/javascripts"], @current="public/javascripts", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "public/stylesheets"=>#<Rails::Paths::Path:0x00007f1cb112b680 @paths=["public/stylesheets"], @current="public/stylesheets", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>, "tmp"=>#<Rails::Paths::Path:0x00007f1cb112b5e0 @paths=["tmp"], @current="tmp", @root=#<Rails::Paths::Root:0x00007f1cb294dc18 ...>, @glob=nil, @exclude=nil, @autoload_once=false, @eager_load=false, @autoload=false, @load_path=false>}>> (NoMethodError)
Did you mean?  asset_host
/workspaces/fab-manager/lib/plugin/instance.rb:45:in `activate!'
/workspaces/fab-manager/lib/fab_manager.rb:16:in `block in activate_plugins!'
/workspaces/fab-manager/lib/fab_manager.rb:15:in `each'
/workspaces/fab-manager/lib/fab_manager.rb:15:in `activate_plugins!'
/workspaces/fab-manager/config/application.rb:81:in `<class:Application>'
/workspaces/fab-manager/config/application.rb:27:in `<top (required)>'
/workspaces/fab-manager/Rakefile:6:in `require_relative'
/workspaces/fab-manager/Rakefile:6:in `<top (required)>'
(See full trace by running task with --trace)

It seems the plugin (system) did not get updated with newer ruby versions?

To Reproduce
Steps to reproduce the behavior:

  1. clone https://github.com/sleede/navinum-gamification to your plugins path
  2. run rake navi_gami:setup or just foreman
  3. See error

Expected behavior
Plugin should migrate and do its stuff

Server (please complete the following information):

  • OS: Debian GNU/Linux 12 (bookworm) container
  • Kernel: Linux e3ab79b8c5a4 6.11.4-amd64#1 SMP PREEMPT_DYNAMIC Debian 6.11.4-1 (2024-10-20) x86_64 GNU/Linux
  • Fab-manager version: master branch

Browser (please complete the following information):

  • Name: not applicable
  • Version: not applicable

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions