Formtastic 6.0へのアップグレードとRails 7.2+への対応
Active Adminの依存ライブラリが更新され、Formtasticがバージョン6.0にアップグレードされました。この変更により、Active AdminはRails 7.2以降のバージョンのみをサポートするFormtasticの最新版に対応します。
背景
Active Adminは複数のRailsバージョンをサポートしており、Rails 7.2とRails 8.0の環境でそれぞれ個別のGemfile.lockを管理しています。Formtasticの最新版はRails 7.2以降を要求するようになったため、この依存関係の更新はActive AdminのRailsバージョンサポート戦略に影響を与える変更です。
従来のFormtastic 5.0ではactionpack >= 6.0.0という緩やかな制約があり、Rails 6.0以降であれば動作していました。今回のFormtastic 6.0ではactionpack >= 7.2.0という厳格な制約に変更されています。
技術的な変更
3つのGemfile.lockファイルでFormtasticのバージョンが5.0から6.0に更新されました。同時に、zeitwerkも2.7.4から2.7.5にマイナーアップデートされています。
変更箇所:
- formtastic (5.0.0)
- actionpack (>= 6.0.0)
+ formtastic (6.0.0)
+ actionpack (>= 7.2.0)
この変更は以下の3つのロックファイルで同一です:
-
Gemfile.lock(デフォルト環境) -
gemfiles/rails_72/Gemfile.lock(Rails 7.2環境) -
gemfiles/rails_80/Gemfile.lock(Rails 8.0環境)
また、Node.js側の依存関係としてESLintが10.0.0から10.0.1に、Rollupが4.56.0から4.58.0にそれぞれアップデートされました。
- "eslint": "^10.0.0",
+ "eslint": "^10.0.1",
- "rollup": "^4.56.0",
+ "rollup": "^4.58.0",
yarn.lockには352行の追加と366行の削除があり、Algoliaクライアントライブラリの依存関係が5.48.2から5.49.0に更新されています。
設計判断
Rails 6.xサポートの終了を暗黙的に受け入れる形でFormtastic 6.0へのアップグレードが実施されました。
Active Adminは複数のRailsバージョンをサポートするために、gemfiles/ディレクトリ配下に環境ごとのGemfile.lockを保持しています。今回の変更では、Rails 6.x用のGemfile.lockが更新対象に含まれていないことから、Rails 6.xのサポートは継続しない方針と読み取れます。
Formtastic 6.0のactionpack >= 7.2.0という制約は、Active AdminがRails 7.2以降のみをサポートすることを技術的に強制します。PRにこの互換性破壊についての説明がないことから、この変更はActive Adminのサポートポリシーの変更を伴う可能性があります。
まとめ
本PRは、Formtasticとその他の依存ライブラリのバージョンアップを行う定期メンテナンスです。Formtastic 6.0へのアップグレードにより、Active AdminはRails 7.2以降をサポートするフォームビルダーライブラリの最新機能を利用できるようになる一方で、Rails 6.xとの互換性を失うトレードオフを受け入れた変更といえます。