annotaterb v4.20.0 commit log 流し読み
annotaterb v4.20.0 commit logを流しで読みました 👀
読んだコミットは下記です。
Bump actions/checkout from 4 to 5 #257
actions/checkout
を V5 に update している dependabot による PR です。
refs: Bump actions/checkout from 4 to 5
chore: introduce switchable DB environment for specs #262
spec で使用している dummy app に、DB 設定をシングル/マルチ構成で切り替えられる仕組みを追加しました。
SINGLE_DB_TEST
が true
の場合はシングル DB 環境、false
または nil
の場合はマルチ DB 環境として動作します。
この変更の背景として、これまでは「マルチ DB 環境でのみ動作する実装」を追加する際に、シングル DB 環境では動作しないことを確認・担保する手段が存在しませんでした。
そのため、今回この制御機構を導入されています。ここではデフォルトがマルチDBになっています。
refs: chore: introduce switchable DB environment for specs #262
refactor(test): Default to single-DB environment for tests #264
chore: introduce switchable DB environment for specs #262
上記の変更で、テスト環境の dummy app がデフォルトでマルチDB構成になるよう制御が追加されました。
しかしその結果、マルチDB環境でのみ実行される annotate 処理が、シングルDBを前提とする箇所にも影響してしまう問題が発生しました。
このため、本変更ではデフォルト設定を見直し、テスト環境はシングルDB構成を基本とし、必要な場合のみマルチDBを有効化 するよう制御を修正しています。
Escape column comment newlines when using “rightmost” value for position_of_column_comment option #263
カラムに改行を含むコメントを追加していた場合、改行文字が正しくエスケープされず、出力時にコメントが途中で改行されてしまう問題がありました。
# notes :text(55) not null Notes.
May include things like notes.
このため、改行文字を \n としてエスケープする処理を追加し、コメントが1行内に正しく表示されるように修正しています。
Honor –frozen option in routes #265
--frozen
オプション使用時に annotation に変更がある場合は例外を発生させるのが正しい挙動ですが、これまで例外が発生していなかったため、正しく raise されるように修正しました。
refs: Honor --frozen option in routes #265
Update README.md #268
README の typo 修正です。
refs: Update README.md #268
fix: resolve YAML syntax error in update_config generator #269
rails g annotate_rb:update_config を実行すると、現在の設定とデフォルト設定の差分を検知し、必要なデフォルト値を .annotaterb.yml に追記するジェネレーターがあります。
rails g annotate_rb:update_config
しかし、差分が存在しない場合でも空の {} が YAML ファイルに追記されてしまう問題がありました。
そのため、差分がない場合は早期に return して追記を行わないよう修正しています。
refs: fix: resolve YAML syntax error in update_config generator #269
Bump github/codeql-action from 3 to 4 #277
CodeQL Action を V4 へと update しています。
refs: Bump github/codeql-action from 3 to 4 #277
fix: position-of-column-comment option #275
position-of-column-comments
オプションが内部的に position-of-column-comment
として扱われていたため、指定しても正しく動作していませんでした。
この問題を修正し、オプションが正しく position-of-column-comment として処理されるようにしています。
refs: fix: position-of-column-comment option #275
feat: Add database name to annotations in multi-DB environments #272
マルチデータベース環境では、スキーマコメントだけを見ても「モデルのテーブルがどのデータベースに属しているのか」が分かりづらく、開発者がテーブルが存在しないと勘違いすることがありました。
この問題を解決するために、スキーマ情報ブロックにデータベース名を表示する行を追加しています。
具体的には、マルチデータベース環境では以下のように Database name: 行が表示されます。
# == Schema Information
#
# Table name: tasks
# Database name: second_database
#
# ...
一方、シングルデータベース環境では冗長になるため、この行は表示されません。
refs: feat: Add database name to annotations in multi-DB environments #272