factory_bot v6.6.0 リリース
factory_bot v6.6.0 がリリースされました。factory_bot.before_run_factory インストルメンテーションイベントの追加や、ActiveRecord ライフサイクルとのトランザクション干渉修正など、複数の改善が含まれています。
背景
本リリースは、v6.5.6(2025年10月22日)以降にマージされた複数の機能追加・バグ修正・開発基盤整備をまとめたものです。今回のリリースからは、リリース準備PRの自動化ワークフロー(#1816)およびGitHub リリースノートを活用したgemリリースワークフロー(#1815)が整備され、リリースプロセス自体も刷新されています。
技術的な変更
今回のリリースで最も注目される機能変更は、factory_bot.before_run_factory インストルメンテーションイベントの追加(#1795)です。このイベントにより、ファクトリ実行前のタイミングにフックを差し込めるようになり、ファクトリの実行フローを外部から観測できるようになります。
バグ修正として、リンティング用トランザクションが ActiveRecord のライフサイクルに干渉する問題が修正されています(#1790)。factory_bot はファクトリ定義の検証時にトランザクションを利用しますが、このトランザクションが after_create 等の ActiveRecord コールバックのタイミングに影響を与えるケースが存在していました。
DefinitionProxy#method_missing において、ブロックを受け取った場合にそれを #association へ正しく転送するよう修正されました(#1579)。これにより、以下のようなブロック付きのアソシエーション定義が意図どおりに動作するようになります:
factory :post do
author { association :user, name: "Alice" }
end
バージョン定義ファイルの変更は最小限で、VERSION 定数の更新のみです:
# 変更前
VERSION = "6.5.6".freeze
# 変更後
VERSION = "6.6.0".freeze
設計判断
リリースプロセスの自動化が今回の重要な変更の一つです。リリース準備PRの作成とGitHub リリースノートの生成をワークフローで自動化することで、リリース作業のヒューマンエラーを減らし、再現性を高める設計が採用されています。また、gem プッシュに MFA(多要素認証)を必須化(#1814)することで、サプライチェーンセキュリティへの対応も進められています。
まとめ
v6.6.0 は、インストルメンテーションによる観測性の向上とトランザクション干渉の修正という実用的な改善に加え、リリースプロセスの自動化とセキュリティ強化を同時に達成したリリースです。特にリリースワークフローの整備は、今後のバージョンアップの信頼性向上に寄与するものといえます。