From a79711b8a9029885b179e018e024864bc69147c0 Mon Sep 17 00:00:00 2001 From: jimbali <40831617+jimbali@users.noreply.github.com> Date: Mon, 2 Sep 2024 10:11:17 +0100 Subject: [PATCH] Rails 7.1 pt2 (#2316) * chore: Enable most Rails 7.1 defaults Also delete secrets.yml as it's unnecessary now and will be removed in 7.2 MAP-1477# * chore: Get rid of the unnecessary guff that gets printed to the console during tests This should make it easier to spot deperecation warnings. MAP-1477 --- config/application.rb | 6 ++ .../new_framework_defaults_7_1.rb | 64 ++++++++++--------- config/initializers/sidekiq.rb | 6 +- config/secrets.yml | 8 --- ...xtradition_flight_controller_index_spec.rb | 1 - spec/serializers/lodging_serializer_spec.rb | 1 - spec/serializers/lodgings_serializer_spec.rb | 1 - 7 files changed, 44 insertions(+), 43 deletions(-) delete mode 100644 config/secrets.yml diff --git a/config/application.rb b/config/application.rb index 957501a67..d2576d850 100644 --- a/config/application.rb +++ b/config/application.rb @@ -54,5 +54,11 @@ class Application < Rails::Application config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time] config.active_support.cache_format_version = 7.0 + + config.add_autoload_paths_to_load_path = false + + # Only change this value after your application is fully deployed to Rails 7.1 + # and you have no plans to rollback. + # config.active_support.cache_format_version = 7.1 end end diff --git a/config/initializers/new_framework_defaults_7_1.rb b/config/initializers/new_framework_defaults_7_1.rb index 4ba02970b..0b1fa41ae 100644 --- a/config/initializers/new_framework_defaults_7_1.rb +++ b/config/initializers/new_framework_defaults_7_1.rb @@ -23,19 +23,19 @@ # Remove the default X-Download-Options headers since it is used only by Internet Explorer. # If you need to support Internet Explorer, add back `"X-Download-Options" => "noopen"`. #++ -# Rails.application.config.action_dispatch.default_headers = { -# "X-Frame-Options" => "SAMEORIGIN", -# "X-XSS-Protection" => "0", -# "X-Content-Type-Options" => "nosniff", -# "X-Permitted-Cross-Domain-Policies" => "none", -# "Referrer-Policy" => "strict-origin-when-cross-origin" -# } +Rails.application.config.action_dispatch.default_headers = { + "X-Frame-Options" => "SAMEORIGIN", + "X-XSS-Protection" => "0", + "X-Content-Type-Options" => "nosniff", + "X-Permitted-Cross-Domain-Policies" => "none", + "Referrer-Policy" => "strict-origin-when-cross-origin" +} ### # Do not treat an `ActionController::Parameters` instance # as equal to an equivalent `Hash` by default. #++ -# Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality = false +Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality = false ### # Active Record Encryption now uses SHA-256 as its hash digest algorithm. @@ -56,7 +56,7 @@ # 3. If you don't currently have data encrypted with Active Record encryption, you can disable this setting to # configure the default behavior starting 7.1+: #++ -# Rails.application.config.active_record.encryption.support_sha1_for_non_deterministic_encryption = false +Rails.application.config.active_record.encryption.support_sha1_for_non_deterministic_encryption = false ### # No longer run after_commit callbacks on the first of multiple Active Record @@ -65,7 +65,7 @@ # state which matches what was committed to the database, typically the last # instance to save. #++ -# Rails.application.config.active_record.run_commit_callbacks_on_first_saved_instances_in_transaction = false +Rails.application.config.active_record.run_commit_callbacks_on_first_saved_instances_in_transaction = false ### # Configures SQLite with a strict strings mode, which disables double-quoted string literals. @@ -76,12 +76,12 @@ # For example, it is possible to create an index for a non existing column. # See https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted for more details. #++ -# Rails.application.config.active_record.sqlite3_adapter_strict_strings_by_default = true +Rails.application.config.active_record.sqlite3_adapter_strict_strings_by_default = true ### # Disable deprecated singular associations names. #++ -# Rails.application.config.active_record.allow_deprecated_singular_associations_name = false +Rails.application.config.active_record.allow_deprecated_singular_associations_name = false ### # Enable the Active Job `BigDecimal` argument serializer, which guarantees @@ -93,7 +93,7 @@ # serializer. Therefore, this setting should only be enabled after all replicas # have been successfully upgraded to Rails 7.1. #++ -# Rails.application.config.active_job.use_big_decimal_serializer = true +Rails.application.config.active_job.use_big_decimal_serializer = true ### # Specify if an `ArgumentError` should be raised if `Rails.cache` `fetch` or @@ -101,14 +101,14 @@ # Options are `true`, and `false`. If `false`, the exception will be reported # as `handled` and logged instead. #++ -# Rails.application.config.active_support.raise_on_invalid_cache_expiration_time = true +Rails.application.config.active_support.raise_on_invalid_cache_expiration_time = true ### # Specify whether Query Logs will format tags using the SQLCommenter format # (https://open-telemetry.github.io/opentelemetry-sqlcommenter/), or using the legacy format. # Options are `:legacy` and `:sqlcommenter`. #++ -# Rails.application.config.active_record.query_log_tags_format = :sqlcommenter +Rails.application.config.active_record.query_log_tags_format = :sqlcommenter ### # Specify the default serializer used by `MessageEncryptor` and `MessageVerifier` @@ -138,7 +138,7 @@ # servers, first deploy without changing the serializer, then set the serializer # in a subsequent deploy. #++ -# Rails.application.config.active_support.message_serializer = :json_allow_marshal +Rails.application.config.active_support.message_serializer = :json_allow_marshal ### # Enable a performance optimization that serializes message data and metadata @@ -151,7 +151,7 @@ # leave this optimization off on the first deploy, then enable it on a # subsequent deploy. #++ -# Rails.application.config.active_support.use_message_serializer_for_metadata = true +Rails.application.config.active_support.use_message_serializer_for_metadata = true ### # Set the maximum size for Rails log files. @@ -159,36 +159,36 @@ # `config.load_defaults 7.1` does not set this value for environments other than # development and test. #++ -# if Rails.env.local? -# Rails.application.config.log_file_size = 100 * 1024 * 1024 -# end +if Rails.env.local? + Rails.application.config.log_file_size = 100 * 1024 * 1024 +end ### # Enable raising on assignment to attr_readonly attributes. The previous # behavior would allow assignment but silently not persist changes to the # database. #++ -# Rails.application.config.active_record.raise_on_assign_to_attr_readonly = true +Rails.application.config.active_record.raise_on_assign_to_attr_readonly = true ### # Enable validating only parent-related columns for presence when the parent is mandatory. # The previous behavior was to validate the presence of the parent record, which performed an extra query # to get the parent every time the child record was updated, even when parent has not changed. #++ -# Rails.application.config.active_record.belongs_to_required_validates_foreign_key = false +Rails.application.config.active_record.belongs_to_required_validates_foreign_key = false ### # Enable precompilation of `config.filter_parameters`. Precompilation can # improve filtering performance, depending on the quantity and types of filters. #++ -# Rails.application.config.precompile_filter_parameters = true +Rails.application.config.precompile_filter_parameters = true ### # Enable before_committed! callbacks on all enrolled records in a transaction. # The previous behavior was to only run the callbacks on the first copy of a record # if there were multiple copies of the same record enrolled in the transaction. #++ -# Rails.application.config.active_record.before_committed_on_all_records = true +Rails.application.config.active_record.before_committed_on_all_records = true ### # Disable automatic column serialization into YAML. @@ -196,7 +196,7 @@ # recommended to explicitly define the serialization method for each column # rather than to rely on a global default. #++ -# Rails.application.config.active_record.default_column_serializer = nil +Rails.application.config.active_record.default_column_serializer = nil ### # Enable a performance optimization that serializes Active Record models @@ -207,24 +207,24 @@ # leave this optimization off on the first deploy, then enable it on a # subsequent deploy. #++ -# Rails.application.config.active_record.marshalling_format_version = 7.1 +Rails.application.config.active_record.marshalling_format_version = 7.1 ### # Run `after_commit` and `after_*_commit` callbacks in the order they are defined in a model. # This matches the behaviour of all other callbacks. # In previous versions of Rails, they ran in the inverse order. #++ -# Rails.application.config.active_record.run_after_transaction_callbacks_in_order_defined = true +Rails.application.config.active_record.run_after_transaction_callbacks_in_order_defined = true ### # Whether a `transaction` block is committed or rolled back when exited via `return`, `break` or `throw`. #++ -# Rails.application.config.active_record.commit_transaction_on_non_local_return = true +Rails.application.config.active_record.commit_transaction_on_non_local_return = true ### # Controls when to generate a value for has_secure_token declarations. #++ -# Rails.application.config.active_record.generate_secure_token_on = :initialize +Rails.application.config.active_record.generate_secure_token_on = :initialize ### # ** Please read carefully, this must be configured in config/application.rb ** @@ -252,6 +252,7 @@ # In previous versions of Rails, Action View always used `Rails::HTML4::Sanitizer` as its vendor. #++ # Rails.application.config.action_view.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor +# Irrelevant in API as Rails::HTML is not present ### @@ -264,13 +265,14 @@ # In previous versions of Rails, Action Text always used `Rails::HTML4::Sanitizer` as its vendor. #++ # Rails.application.config.action_text.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor +# Irrelevant in API as Rails::HTML is not present ### # Configure the log level used by the DebugExceptions middleware when logging # uncaught exceptions during requests. #++ -# Rails.application.config.action_dispatch.debug_exception_log_level = :error +Rails.application.config.action_dispatch.debug_exception_log_level = :error ### @@ -281,4 +283,4 @@ # # In previous versions of Rails, these test helpers always used an HTML4 parser. #++ -# Rails.application.config.dom_testing_default_html_version = :html5 +Rails.application.config.dom_testing_default_html_version = :html5 diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index a133f8d4f..fcb6e4db4 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -1,2 +1,6 @@ # Sidekiq >= 7 throws an error for non-string args by default -Sidekiq.strict_args!(false) \ No newline at end of file +Sidekiq.strict_args!(false) + +if Rails.env.test? + Sidekiq.logger.level = Logger::WARN +end \ No newline at end of file diff --git a/config/secrets.yml b/config/secrets.yml deleted file mode 100644 index b3da92487..000000000 --- a/config/secrets.yml +++ /dev/null @@ -1,8 +0,0 @@ -development: - secret_key_base: 0e50a22b005687d9b71ec596697155b3d593b02c99ac22826953735f8e6da00054a2f6bd665300afd19adc85e3725a70a91d860b6d37aaf5904e9579a06014dd - -test: - secret_key_base: 5e3fbf4fae318d8348c3177bb9c1f9ff2fbbe0ba365f9a93b37a9dfad0fc61869989069c9be27a30a15b4f9b7c047cba526fefd0afc80a5737ca07df4a806168 - -production: - secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> diff --git a/spec/requests/api/extradition_flight_controller_index_spec.rb b/spec/requests/api/extradition_flight_controller_index_spec.rb index 320d7504b..5f228659f 100644 --- a/spec/requests/api/extradition_flight_controller_index_spec.rb +++ b/spec/requests/api/extradition_flight_controller_index_spec.rb @@ -73,7 +73,6 @@ it 'includes the requested includes in the response' do do_get - pp response_json returned_types = response_json['data']['relationships'] expect(returned_types).to eq({ 'move' => { diff --git a/spec/serializers/lodging_serializer_spec.rb b/spec/serializers/lodging_serializer_spec.rb index 52433c5b5..59f819431 100644 --- a/spec/serializers/lodging_serializer_spec.rb +++ b/spec/serializers/lodging_serializer_spec.rb @@ -10,7 +10,6 @@ let(:adapter_options) { {} } it 'contains a type property' do - pp result[:data] expect(result[:data][:type]).to eql 'lodgings' end diff --git a/spec/serializers/lodgings_serializer_spec.rb b/spec/serializers/lodgings_serializer_spec.rb index 0ac08ba01..891d57bca 100644 --- a/spec/serializers/lodgings_serializer_spec.rb +++ b/spec/serializers/lodgings_serializer_spec.rb @@ -10,7 +10,6 @@ let(:adapter_options) { {} } it 'contains a type property' do - pp result[:data] expect(result[:data][:type]).to eql 'lodgings' end