なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2022/05/24)

2022/05/24分のコミットです。

CHANGELOGへの追加はありませんでした。


[docs] Change wording around mailing list in contribution guide

rails guideのContributing to Ruby on Railsの修正です。

mailing listについて説明している箇所の言い回しを修正しています。


Revert "Do not return invalid indexes in PostgreSQL"

PostgreSQLindexesメソッドで不正なindexを返さないよう修正した、Do not return invalid indexes in PostgreSQLをRevertしています。この修正だと、index_exists?がtrueを返すが、実際にはindexが存在する、というケースが発生するようになってしまう為。


Merge pull request #45153 from fatkodima/reset-correct-counters

activerecord/lib/active_record/counter_cache.rbの修正です。

reset_countersメソッドで不要な場合はcounter cacheのリセットを行わないよう修正しています。


Forward drop_join_table options to drop_table

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbの修正です。

drop_join_tableに指定したオプションをdrop_tableに渡すよう修正しています。

rails commit log流し読み(2022/05/23)

2022/05/23分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

actiontext/CHANGELOG.md


Merge pull request #43706 from jacobherrington/jacobherrington/address-actiontext-multiple-renders

actiontext/lib/action_text/content.rbの修正です。

rich_text fieldを更新した際に、content layoutが複数回renderされてしまうバグがあったのを修正しています。


Merge pull request #45096 from fatkodima/add-references-6-0-missing-tests

activerecord/test/cases/migration/compatibility_test.rbの修正です。

migration versionが6.0の場合のreference column typeのテストを追加しています。


Fix typo: some thing -> something

rails guideのSecuring Rails Applicationsの修正です。

finderメソッド名をタイポしていたのを修正しています。

rails commit log流し読み(2022/05/22)

2022/05/22分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


Merge pull request #45142 from jonathanhefner/action_mailer-base-no-load-action_contoller-base

Action Pack、railtiesの修正です。

ActionMailer::Baseのloading時にActionController::Baseのloadが行われないよう修正しています。


Merge pull request #45144 from jonathanhefner/action_mailer-render-no-load-action_contoller-base

actiontext/lib/action_text/engine.rbの修正です。

mailのrender時のActionController::Baseのloadが行われないよう修正しています。


Fix typo in document (#45148)

rails guideのActive Record Query Interfaceの修正です。

nullable_countrynullable_contryにタイポしていたのを修正しています。


Merge pull request #44916 from ghiculescu/image-bmp

activestorage/app/models/active_storage/blob.rbの修正です。

image/bmpをinvalidなcontent typeとして扱っていたのを、validがcontent typeとして扱うよう修正しています。invalidなcontent typeとしていたのはmime関連のgemの挙動と合わせる為だったのですが、これはgemの方が間違えており、image/bmpは本来validなcontent typeな為。


Merge pull request #44878 from fatkodima/bulk_change_table-change_null-default

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbactiverecord/lib/active_record/connection_adapters/postgresql/schema_statements.rbの修正です。

change_tableをbulkで実行した場合に、change_null + falseを指定がエラーになってしまうバグがあったのを修正しています。


ci: add GitHub token permissions

.github/workflows/lint.yml.github/workflows/rubocop.ymlの修正です。

GitHub ActionsでGITHUB_TOKENのpermissionを指定するよう修正しています。


Do not return invalid indexes in PostgreSQL

activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rbの修正です。

PostgreSQLindexesメソッドで、不正なindex(実際には使用されていないindex)は返さないよう修正しています。

rails commit log流し読み(2022/05/21)

2022/05/21分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activemodel/CHANGELOG.md


Don't call controller's headers method internally

actionpack/lib/action_controller/metal/rendering.rbの修正です。

headersを書き換えるのにselfを使用していたのを使用しないよう修正しています。controllerにheadersメソッドが定義されている場合に、controllerの方のメソッドが呼ばれてしまうのを避ける為。


Support infinite ranges for LengthValidators :in/:within options

activemodel/lib/active_model/validations/length.rbの修正です。

LengthValidatorのinwithオプションにinfinite rangesを指定できるよう修正しています。


add header for devcontainers, this serves two purposes: [ci-skip] (#45129)

rails guideのContributing to Ruby on Railsの修正です。

devcontainersについて説明している箇所にヘッダーを追加しています。


Adds Deferrable Foreign Keys section to Active Record and PostgreSQL guide (#43812)

rails guideのActive Record and PostgreSQLの修正です。

foreign Keysをdeferrableする方法について説明したDeferrable Foreign Keysセクションを追加しています。


add section for host header attack prevention in rails security guide (#43330)

rails guideのSecuring Rails Applicationsの修正です。

DNS rebinding及びhost header攻撃について説明したDNS rebinding and Host header attacksセクションを追加しています。


Add header fixes[ci skip]

rails guideのSecuring Rails Applicationsの修正です。

DNS Rebinding and Host Header Attacksセクションのヘッダー名を修正しています。


Add examples of empty passwords for authenticate by

activerecord/lib/active_record/secure_password.rbのdocの修正です。

authenticate_byメソッドのdocにpasswordを空にする場合のexampleを追加しています。


Merge pull request #45120 from p8/guides/expand-security-headers-guide

rails guideのSecuring Rails Applicationsの修正です。

デフォルトのヘッダーについてそれぞれ個別に説明を行うよう修正、各箇所のグラマーの修正、等を行っています。


Merge pull request #45104 from dorianmariefr/add-alias-for-method-method-for-debugging

actionpack/lib/action_dispatch/http/request.rbの修正です。

ActionDispatch::Request#methodに引数が指定されていた場合、Object#methoddelegateするよう修正しています。method(:POST).source_location等のmethodを使用したデバッグが出来るようにする為。

rails commit log流し読み(2022/05/20)

2022/05/20分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md

activejob/CHANGELOG.md

railties/CHANGELOG.md

activemodel/CHANGELOG.md


Only invalidate query caches for peer connections

Active Recordの修正です。

dirtyなquery cacheの無効化処理で、current threadが所有している全てのコネクションに対して処理を行っていたのを、peer connectionに対してのみ処理を行うよう修正しています。


Merge pull request #45125 from fatkodima/touch-readonly-column

activerecord/lib/active_record/persistence.rbの修正です。

readonly columnに対してtouchを行った場合に、エラーをraiseするよう修正しています。


Merge pull request #44019 from jonathanhefner/flakey-insert_all_test

activerecord/test/cases/insert_all_test.rbの修正です。

insert_allのテストで、処理後のusecの値が0じゃないかどうをチェックしていたのを修正しています。テストの実行タイミングによっては0になる事がある為。


Let purge succeed when MySQL database is missing

activerecord/lib/active_record/tasks/mysql_database_tasks.rbの修正です。

MySQL adapterで、db:purge実行時に指定されたDBが存在しないでもエラーにならないよう修正しています。他のadapterと処理を合わせる為。


no longer set sql_auto_is_null

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbの修正です。

sql_auto_is_nullをoffにする処理を削除しています。MySQL 5.5からデフォルトでoffになっている為。


Add db_runtime to Active Job instrumentation

Active Jobの修正です。

perform.active_job notificationのpayloadに:db_runtime(DBへのクエリーの実行時間)を含むよう修正しています。


Enroll new apps in decrypted diffs of credentials

railtiesの修正です。

rails newで新規にアプリケーションを作成時に、credentialsのdiffの為の設定をデフォルトで行うよう修正しています。


Improve mysql2 mismatched foreign keys reporting

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbの修正です。

mysql2 adapterで複数foreign keysの参照を追加する、かつ、typeのmismatchが発生した場合に、エラーメッセージにエラーになったforeign keyが正しく出力されないバグがあったのを修正しています。


Rotate default logs on each 100MB

railties/lib/rails/application/bootstrap.rbrailties/lib/rails/application/configuration.rbの修正です。

developmenttest envでログファイルをローテートするサイズを指定出来るよう修正しています。デフォルトは100MB。


Merge pull request #45123 from bjeanes/clusivity-beginless-ranges

activemodel/lib/active_model/validations/clusivity.rbの修正です。

inclusivity/exclusivity validatorでbeginless rangeを指定出来るよう修正しています。

validates_inclusion_of :birth_date, in: -> { (..Date.today) }

rails commit log流し読み(2022/05/19)

2022/05/19分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activemodel/CHANGELOG.md

actionpack/CHANGELOG.md

railties/CHANGELOG.md


Make validators accept lambdas without record argument

Active Modelの修正です。

validatorの引数のlambdaをrecord引数無しで指定出来るよう修正しています。

validates_comparison_of :birth_date, less_than_or_equal_to: -> { Date.today }

Fix using helpers in content_security_policy and permissions_policy

actionpack/lib/action_controller/metal/content_security_policy.rbactionpack/lib/action_controller/metal/permissions_policy.rbの修正です。

content_security_policypermissions_policyでhelperで定義したメソッドを使用出来るよう修正しています。

module ApplicationHelper
  def pigs_can_fly?
    false
  end
end

content_security_policy do |p|
  p.default_src "https://example.com"
  p.style_src "https://example.com" unless helpers.pigs_can_fly?
end

Update primary key for dl_keyed_join

activerecord/test/models/destroy_async_parent.rbの修正です。

テストで使用するassociationのprimary keyの指定が誤っていたのを修正しています。


Improve prefixing routes example in guides [ci-skip]

rails guideのRails Routing from the Outside Inの修正です。

Prefixing the Named Route Helpersの項にある:asオプションを指定した場合の詳細な挙動についての説明を追加しています。


Upgrade bundler version

Gemfile.lockの修正です。

bundlerのバージョンを更新しています。


Upgrade Release guide to match current practices

RELEASING_RAILS.mdの修正です。

各種リリース処理に関する説明を、最新の対応内容に合わせて修正しています。


Support declarative-style test name filters

railties/lib/rails/test_unit/runner.rbの修正です。

bin/rails testでdeclared nameによるテストのフィルターを指定出来るよう修正しています。

rails commit log流し読み(2022/05/18)

2022/05/18分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activesupport/CHANGELOG.md

activesupport/CHANGELOG.md


Add initial value support to MemCacheStore #increment and #decrement

Active Supportの修正です。

cache storeの#increment#decrementメソッドにkeyが未設定、または、expireしている場合に使用するデフォルト値を指定出来るよう修正しています。


Fix incorrect line number if a helper_method errors

actionpack/lib/abstract_controller/helpers.rbの修正です。

helper_methodで定義したメソッド内でエラーが発生した場合に、バックトレースの行が正しく表示されないバグがあったのを修正しています。


Deprecate :pool_size and :pool_timeout options for configuring connection pooling in cache stores

activesupport/lib/active_support/cache.rbactivesupport/test/cache/behaviors/connection_pool_behavior.rbの修正です。

cache storeのpool_sizepool_timeoutオプションがdeprecatedになりました。connection poolingを有効化したい場合、今後はpoolオプションを使用する必要があります。

# connection poolingを有効化したい場合
config.cache_store = :redis_cache_store, pool: true

# connection poolingの値を設定したい場合
config.cache_store = :redis_cache_store, pool: { size: 10, timeout: 2 }

Use queue_classic 4.0.0

Gemfileの修正です。

queue_classic gemのバージョンを4.0.0に更新しています。