なるようになるブログ

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

rails commit log流し読み(2024/04/18)

2024/04/18分のコミットです。

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

actionpack/CHANGELOG.md

activerecord/CHANGELOG.md


Merge pull request #51523 from etiennebarrie/route-to-implicit-controller

actionpack/lib/action_dispatch/routing/mapper.rbの修正です。

Rails 7.1.3で、routeでcontroller scope無いでtoオプションをcontrollerの指定無しで定義した場合にエラーになるリグレッションが発生していたのを修正しています。

Rails.application.routes.draw do
  controller :home do
    get "recent", to: "recent_posts"
  end
end

Merge pull request #51445 from shouichi/remove-node-modules-from-the-final-image

railties/lib/rails/generators/rails/app/templates/Dockerfile.ttの修正です。

Dockerの最終imageに不要にnode_modulesを含まないよう修正しています。


Merge pull request #51440 from CodingItWrong/libmysql2-fix-install-error

Gemfile.lockの修正です。

mysql2 gemを最新バージョンに更新しています。mysql-client 8.3で動作するようにするため。


Pin sqlite3 version in bug_report_templates

bug report templatesの修正です。

sqlite3 gemのバージョンを1系にロックしています。最新の2系だとbundlerでのロード時にエラーになってしまうため。


Correct typo for ActiveJob::Enqueuing::ClassMethods doc

activejob/lib/active_job/enqueuing.rbのdocの修正です。

ActiveJob::Enqueuing::ClassMethods moduleのdoc内のタイポを修正しています。


Allow sqlite3 to float to version 2

activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rbrailties/lib/rails/generators/database.rbの修正です。

sqlite3 gemの2系を使用出来るよう、コード内のgemのバージョン指定を修正しています。


Fix unused block warnings for template methods

actionview/lib/action_view/template.rbの修正です。

blockを使用していないメソッドにblockを渡さないよう修正しています。


Remove outdated mathn related test

mathn gemがロードされている場合の為のテストを削除しています。mathn gemはRuby本体から削除済み、かつ、gemとしてもdeprecatedになっており、考慮する必要がなくなっている為。


Action View Caching code sample syntax [ci skip]

actionview/lib/action_view/helpers/cache_helper.rbのdocの修正です。

ActionView::CacheHelper.cacheメソッドのdoc内のexampleコードで内のコメント部分の先頭に#を追加し、コメントである事がわかるよう修正しています。

rails commit log流し読み(2024/04/17)

2024/04/17分のコミットです。

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


Merge pull request #51572 from Bodacious/patch-1

railties/lib/rails/generators/rails/app/templates/config/initializers/enable_yjit.rb.ttの修正です。

RubyVM::YJITがenableかどうかのチェックを括弧で括るよう修正しています。チェックに&&等の条件を独自に追加した場合にチェックが動作するようにするため。


test: fix flaky schema dump test to prefer YAML to Marshal

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

schema dumpのテストで使用するファイルのフォーマットをMarshalからYAMLに変更しています。Marshalの場合、ファイルの中身が完全に毎回同じ内容になる事を保証しておらず、時折テストが失敗してしまうため。


Merge pull request #51476 from marvinthepa/no_anonymous_block_parameter

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

古いRubyno anonymous block parameterでエラーになるコードがあったのを修正しています。


ruby-head: handle unused block warnings

activesupport/lib/active_support/testing/strict_warnings.rbactivesupport/test/time_travel_test.rbの修正です。

Ruby 3.4でblockを使用していないメソッドにblockを渡した場合にwarningが出るようになるのですが、そのwarningについては発生してもテストをfailしないよう修正しています。false positiveが少しあるようで、まだ微調整中と思われる為。

参考:Feature #15554: warn/error passing a block to a method which never use a block


TestCase#create_fixtures no longer takes a block

Active Recordのテストの修正です。

ActiveRecord::FixtureSet.create_fixturesメソッドにうけつけていないblockを渡している箇所があったのを修正しています。

rails commit log流し読み(2024/04/16)

2024/04/16分のコミットです。

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


Run devcontainer smoke tests in one single job

.github/workflows/devcontainer-smoke-test.ymlの修正です。

devcontainerのsmoke testを一つのjobでまとめて実行するよう修正しています。結果の確認をしやすくする為。


Remove rubocop and lint workflows

GitHub Actionsからrubocopとlint実行用のworkflowを削除しています。Buildkiteで実行するよう変更した為。


Add node and yarn to devcontainer when creating a project with Javascript

railties/lib/rails/generators/devcontainer.rbrailties/lib/rails/generators/rails/app/templates/.devcontainer/devcontainer.json.ttの修正です。

Javascriptを使用するapplicationを作成した際に、Node.jsとyarnをdevcontainerに追加するよ修正しています。

rails commit log流し読み(2024/04/15)

2024/04/15分のコミットです。

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


Fix remove_prefix_and_suffix in ActiveRecord::SchemaDumper

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

schemaファイル生成時の処理で、table_name_prefixtable_name_suffixの削除処理が正しく動作しなくなってしまっていたのを修正しています。


Fix devcontainer smoke test for forked repos

.github/workflows/devcontainer-smoke-test.ymlの修正です。

forkしたリポジトリでdevcontainerのsmokeテストが実行されないよう修正しています。テストにdevcontainerのimageのpush処理が含まれており、forkリポジトリだとその処理がエラーになる為。

rails commit log流し読み(2024/04/14)

2024/04/14分のコミットです。

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

activerecord/CHANGELOG.md


Fix typo in Feature Policy for idle-detection

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

Feature Policyのidle-detection directive名をタイポしていたのを修正しています。


Allow ActiveRecord::Base#pluck to accept hash values

activerecord/lib/active_record/relation/calculations.rbactiverecord/lib/active_record/relation/query_methods.rbの修正です。

ActiveRecord::Base#pluckでtableとcolumnの組み合わせをHashで指定出来るよう修正しています。

# Before
Post.joins(:comments).pluck("posts.id", "comments.id", "comments.body")

# After
Post.joins(:comments).pluck(posts: [:id], comments: [:id, :body])

Fix SQL query example in ActiveRecord::Base#ids docs [skip ci]

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

ActiveRecord::Base#idsのdoc内にあるexampleコードで指定するassociation名が誤っていたのを修正しています。

rails commit log流し読み(2024/04/13)

2024/04/13分のコミットです。

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


Ensure that environment variables should always be strings, not booleans.

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

devcontainerで使用するbooleanのenvをstringとして扱うよう修正しています。VSCodeがstrigとして扱っており、stringでないと値が正しく設定されない為。


Create a workflow for testing generated devcontainer setup

.github/workflows/devcontainer-smoke-test.ymlの修正です。

devcontainerのsetup処理をCIでテストするよう修正しています。


Merge pull request #51429 from fatkodima/fix-pg-include-indexes-with-keywords

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

PostgreSQLinclude indexesにkeywordと同じ名前のcolumn名が指定されていた場合に、不要なエスケープ処理がされてしまうバグがあったのを修正しています。

rails commit log流し読み(2024/04/12)

2024/04/12分のコミットです。

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


Arel: wrap SELECT statements in parentheses when generating SQL for UNION

activerecord/lib/arel/visitors/postgresql.rbactiverecord/lib/arel/visitors/to_sql.rbの修正です。

ArelでUNIQO用のSQLを生成する際に、SELECTを括弧で括るよう修正しています。recursive CTEをサポートする予定があり、その対応のために必要な為、とのことです。


Merge pull request #51518 from andrewn617/devcontainer-dev-mode

railties/lib/rails/generators/devcontainer.rbrailties/lib/rails/generators/rails/app/templates/.devcontainer/devcontainer.json.ttの修正です。

rails new--devオプションを指定してアプリケーションを作成した場合に、devcontainerがローカルにあるrailsリポジトリを参照出来るよう修正しています。


[RF-DOCS] Review Action View Overview Guide (#51435)

rails guideのAction View Overviewの修正です。

guide全体について、言い回しの修正やフォーマットの調整などを行っています。


Allow string keys for SQLCommenter

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

config.active_record.query_log_tagsに指定する値のkeyにStringを指定出来るよう修正しています。


Fix query_logs_test.rb

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

先のconfig.active_record.query_log_tagsの対応でquery_logs_test.rbがfailするようになってしまっていたのを修正しています。


Merge pull request #51550 from wynksaiddestroy/fix-custom-type-attribute-example

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

Active Record Attributesのdoc内のcustom typeを作成するexampleで、money typeを作成していたのをprice typeに変更していまうs.money typeはPostgreSQLに存在するtypeで、すでに存在するtypeと名前がコンフリクトするのを避ける為。


Use devcontainer features for optional dependencies

railtiesの修正です。

devcontainerでMySQLPostgreSQLなどの依存ライブラリを使用するのに、Dev Container Featuresを使用するよう修正しています。