2023/01/26分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Allow use of SSL-terminating reserve proxy that doesn't set headers (#47139)
- Add HTTP::Request#route_uri_pattern that returns URI pattern of matched route.
actionpack/actionpack.gemspecの修正です。
Rackのバージョン上限指定を削除しています。ユーザが任意のバージョンのRackでテストを出来るようにする為。
Freeze rack in 2.0 for guides bug report templates
bug report templatesの修正です。
Rackのバージョンを2系に固定しています。3系だとテストが通らない為。
Turn on static file server by default (#47137)
railtiesの修正です。
rails newで生成されるconfig/environments/production.rbで、config.public_file_server.enabledの指定がRAILS_SERVE_STATIC_FILESで設定出来るようになっていたのを、デフォルトでtrueにするよう修正しています。CDNやLBのcacheをフロントで使用している場合、assetsの配信にNGINX/Apacheを使わない事も増えており、デフォルトではNGINX/Apacheがある事を前提の設定にしないで良いだろう、という事で修正されています。
Allow use of SSL-terminating reserve proxy that doesn't set headers (#47139)
Action Pack、railtiesの修正です。
HTTPS関連のヘッダーを設定するためのActionDispatch::AssumeSSL middlewareを追加しています。前段にload balancerがあり、HTTPSのリクエストはload balancerまでの場合(LBとアプリケーションサーバ間のリクエストはHTTPになる場合)、リダイレクトやcookieの設定はデフォルトでHTTPを想定したものになります。このmiddlewareは、左記のような構成でも、リクエストがHTTPSで行われていると強制的に設定出来るようにする為のmiddlewareで、config.assume_sslにtrueを指定すると使用されるようになっています。
Log to stdout in production by default (#47138)
railtiesの修正です。
rails newで生成されるconfig/environments/production.rbで、productionでのログ出力先のデフォルトをstdoutに変更しています。Dockerでの使用を想定した場合、ファイルに出力は無いだろうという事でstdoutをデフォルトにしたとの事です。
actionpack/actionpack.gemspec、
railties/railties.gemspecの修正です。
Action Packの依存としてrack-sessionを、railtiesの依存としてrackupを追加しています。どちらもRack 2まではRackの依存として含まれていたのですが、Rack 3では依存として含まれなくなった為、使用しているgem側で明示するよう修正しています。
actionpack/CHANGELOG.mdの修正です。
末尾の空白を削除しています。
Log is now sent to STDOUT by default in production mode
railties/test/application/rake_test.rbの修正です。
Log to stdout in production by default (#47138)の修正により通らなくなったテストを削除しています。
railties/test/application/rake_test.rbの修正です。
Log to stdout in production by default (#47138)の修正により通らなくなったテストを修正しています。
Log is going to stdout by default now
railties/test/application/middleware/exceptions_test.rbの修正です。
引き続き、Log to stdout in production by default (#47138)の修正により通らなくなったテストを修正しています。
Control log level with RAILS_LOG_LEVEL in production (#47143)
railties/lib/rails/generators/rails/app/templates/config/environments/production.rb.ttの修正です。
rails newで生成されるconfig/environments/production.rbで、productionのログレベルをenv(RAILS_LOG_LEVEL)で指定出来るよう修正しています。
Merge pull request #47094 from zzak/rack-3-files-continued
activestorage/app/controllers/concerns/active_storage/file_server.rbの修正です。
Rack 3でdeprecatedになったRack::Fileの代わりにRack::Filesを使用するよう修正しています。
Tag HTTP::Request with route URI pattern (#47129)
actionpack/lib/action_dispatch/http/request.rb、
actionpack/lib/action_dispatch/journey/router.rbの修正です。
requestに一致したrouteを返すHTTP::Request#route_uri_patternを追加しています。routeはbin/rails routesで表示されるrouteと同じもの。
Use config.credentials.* in credentials commands
railtiesの修正です。
credential関係のコマンド(e.g. bin/rails credentials:edit)で、config/application.rbにconfig.credentials.content_pathとconfig.credentials.key_pathが設定されている場合、その設定されているpathを使用するよう修正、及び、bin/rails credentials:editでファイルをロードする際、RAILS_ENVに指定されているenvを使用するよう修正しています。
Merge pull request #47091 from ioquatix/rack-3-case-insensitive-headers
actionpack/lib/action_dispatch.rb、
actionpack/lib/action_dispatch/http/response.rbの修正です。
Rack 3でheaderに関する処理を行う場合に、新しく追加されたRack::Headersクラスを使用するよう修正しています。Rack 2ではRack::Utils::HeaderHashというのが同じ役割であったのですが、そちらはdeprecatedになっている為。
Refactor EnvironmentArgument to be automatic
railtiesの修正です。
各コマンドでenvironmentオプションを反映するのコマンド側で明示的に設定処理を行う必要があったのを、EnvironmentArgument moduleで自動で処理を行えるよう修正しています。