なるようになるブログ

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

rails commit log流し読み(2017/03/03)

2017/03/03分のコミットです。

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

railties/CHANGELOG.md

activesupport/CHANGELOG.md


Merge pull request #28139 from stouset/update-secrets-to-use-modern-crypto

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

encrypted secretsで使われる暗号化アルゴリズムを、AES-256-CBCからAES-128-GCMに変更しています。

よりセキュアなブロック暗号をデフォルトで使うべきだ、という事でGCMに変更になったようです。


Add back yaml require.

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

不足していたyamlのrequireを追加しています。


Move key packing into encryptor.

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

keyのpacking処理をencryptor生成時に行うよう修正しています。


Inline CIPHER constant.

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

aes-128-gcmを定数で保持していたのを変数で保持するよう修正しています。クラス内でしか使用してないからですかねえ。


[ci skip] Add changelog entry for #28139.

railties/CHANGELOG.mdの修正です。

encrypted secretsで使われる暗号化アルゴリズムがAES-128-GCMに変わった対応についてエントリーを追加しています。

また、アルゴリズム変更に伴い、5.1.beta1で既にencrypted secretsを使用している場合、アップグレード対応が必要になります。アップグレード対応についてはこちら参照。


Merge pull request #28255 from acrich/master

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

Calculationsの項のexampleコード内のテーブル名をタイポしていたのを修正しています。


Fix typo in Upgrading Ruby on Rails Guide [skip ci]

rails guideのA Guide for Upgrading Ruby on Railsの修正です。

Upgrading from Rails 5.0 to Rails 5.1の項でcontainingcontaingにタイポしていたのを修正しています。


Fix random failure on system test with ajax

actionpack/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rbの修正です。

DBのtansactionをrollbackする前にCapybara.reset_sessions!を呼ぶようメソッドの呼び出し順を調整しています。

ajaxを使用している場合に、transaction後にリクエストがきてしまうのを避ける為。


Merge pull request #28204 from rails/deprecate-implicit-coercion-of-durations

Active Supportの修正です。

NumericからActiveSupport::Durationへの暗黙的な変換がdeprecateになりました。

現状、Numericの加減算メソッドにActiveSupport::Durationの値を指定した場合、暗黙的に秒の値に変更されるようになっていました。

2 * 1.day
# => 172800

しかしこの挙動は混乱を招く事が多く、さらに、Dateに対して処理を行うと、秒ではなく日の値に変更される、という挙動になっていました。

Date.today + 2 * 1.day
# => Wed, 12 Apr 2490

こういう挙動は混乱の元になるだけで良くないだろう、という事でdeprecateになりました。5.2で削除される予定です。

因みに、逆(ActiveSupport::Durationに対してNumericの値を加減算する)は引き続き使用できます。

1.day * 2
# => 2 days

Fix typo in comment

activesupport/lib/active_support/duration.rbのdocの修正です。

メソッドのコメントでDividesDevidesにタイポしている箇所があったのを修正しています。