## Description The `annotate` gem has been deprecated and users are experiencing annotation errors with the new Rails 7 `serialize` syntax. This PR migrates to `annotaterb`, the actively maintained fork. Users reported errors when running `make db`: ``` Unable to annotate app/models/installation_config.rb: no implicit conversion of Hash into String Unable to annotate app/models/installation_config.rb: no implicit conversion of nil into Array ``` This PR updates the Gemfile and rake configuration to use `annotaterb` instead. Fixes #11673 ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## How Has This Been Tested? Tested locally with the following steps: 1. Run `bundle install` - successfully installed annotaterb 4.20.0 2. Run `RAILS_ENV=development bundle exec rails db:chatwoot_prepare` - completed without annotation errors 3. Run `RAILS_ENV=development bundle exec rails annotate_rb:models` - successfully annotated all models including InstallationConfig 4. Verified InstallationConfig model annotations are present and correct ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] My changes generate no new warnings - [x] New and existing unit tests pass locally with my changes
62 lines
2.0 KiB
Ruby
62 lines
2.0 KiB
Ruby
# NOTE: only doing this in development as some production environments (Heroku)
|
|
# NOTE: are sensitive to local FS writes, and besides -- it's just not proper
|
|
# NOTE: to have a dev-mode tool do its thing in production.
|
|
if Rails.env.development?
|
|
require 'annotate_rb'
|
|
|
|
AnnotateRb::Core.load_rake_tasks
|
|
|
|
task :set_annotation_options do
|
|
# You can override any of these by setting an environment variable of the
|
|
# same name.
|
|
AnnotateRb::Options.set_defaults(
|
|
'additional_file_patterns' => [],
|
|
'routes' => 'false',
|
|
'models' => 'true',
|
|
'position_in_routes' => 'before',
|
|
'position_in_class' => 'before',
|
|
'position_in_test' => 'before',
|
|
'position_in_fixture' => 'before',
|
|
'position_in_factory' => 'before',
|
|
'position_in_serializer' => 'before',
|
|
'show_foreign_keys' => 'true',
|
|
'show_complete_foreign_keys' => 'false',
|
|
'show_indexes' => 'true',
|
|
'simple_indexes' => 'false',
|
|
'model_dir' => [
|
|
'app/models',
|
|
'enterprise/app/models',
|
|
],
|
|
'root_dir' => '',
|
|
'include_version' => 'false',
|
|
'require' => '',
|
|
'exclude_tests' => 'true',
|
|
'exclude_fixtures' => 'true',
|
|
'exclude_factories' => 'true',
|
|
'exclude_serializers' => 'true',
|
|
'exclude_scaffolds' => 'true',
|
|
'exclude_controllers' => 'true',
|
|
'exclude_helpers' => 'true',
|
|
'exclude_sti_subclasses' => 'false',
|
|
'ignore_model_sub_dir' => 'false',
|
|
'ignore_columns' => nil,
|
|
'ignore_routes' => nil,
|
|
'ignore_unknown_models' => 'false',
|
|
'hide_limit_column_types' => 'integer,bigint,boolean',
|
|
'hide_default_column_types' => 'json,jsonb,hstore',
|
|
'skip_on_db_migrate' => 'false',
|
|
'format_bare' => 'true',
|
|
'format_rdoc' => 'false',
|
|
'format_markdown' => 'false',
|
|
'sort' => 'false',
|
|
'force' => 'false',
|
|
'frozen' => 'false',
|
|
'classified_sort' => 'true',
|
|
'trace' => 'false',
|
|
'wrapper_open' => nil,
|
|
'wrapper_close' => nil,
|
|
'with_comment' => 'true'
|
|
)
|
|
end
|
|
end
|