依存パッケージを最新版へ更新(3.xブランチ)
ActiveAdmin 3.xブランチの依存パッケージが複数の Rails バージョンに対応する形で更新されました。Ruby 3.0〜3.2の範囲でバージョン別にgemアップデートを実施し、開発環境とCI環境の整合性を維持しています。
背景
ActiveAdminは複数のRailsバージョン(6.1、7.0、7.1、7.2、8.0、8.1)をサポートしており、各バージョンに対応した Gemfile.lock を個別に管理しています。依存パッケージの更新時には、すべてのRailsバージョンで動作確認を行う必要があります。
本PRでは、Rails 6.1にはRuby 3.0、Rails 7.x系にはRuby 3.1、Rails 8.x系にはRuby 3.2を使用してgem更新を実施しました。この手順により、各Railsバージョンで推奨されるRubyバージョンとの組み合わせで依存関係が解決されます。
技術的な変更
複数のGemfile.lock が更新され、各Railsバージョンで使用するパッケージのバージョンが最新化されました。主な更新内容は以下の通りです。
共通パッケージの更新
すべてのRailsバージョンで以下のパッケージが更新されています:
- parser: 3.3.10.1 → 3.3.10.2
- sys-uname: 1.4.1 → 1.5.0
- parallel_tests: 5.5.0 → 5.6.0(Rails 7.x、8.x系)
- json: 2.18.0 → 2.18.1(Rails 7.x、8.x系)
- irb: 1.16.0 → 1.17.0(Rails 7.x、8.x系)
irb の更新では、新たな依存関係として prism が追加されました:
- irb (1.16.0)
+ irb (1.17.0)
pp (>= 0.6.0)
+ prism (>= 1.3.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
Rackのバージョン分岐
rack のバージョンは、Railsバージョンに応じて異なる更新が適用されています:
- Rails 6.1: 2.2.21 → 2.2.22
- Rails 7.0: 2.2.21 → 2.2.22
- Rails 7.1以降: 3.2.4 → 3.2.5
Rails 7.1以降のバージョンでは、rackがメジャーバージョン3系に更新されています。
フロントエンド依存関係の更新
package.json と yarn.lock も更新され、Babelとrollupのバージョンが引き上げられました:
- "@babel/core": "7.28.6",
- "@babel/preset-env": "7.28.6",
+ "@babel/core": "7.29.0",
+ "@babel/preset-env": "7.29.0",
- "rollup": "4.55.1",
+ "rollup": "4.57.1",
Babelの更新では @babel/code-frame や @babel/compat-data などの内部パッケージも連動して更新されています。
設計判断
Railsバージョンごとに異なるRubyバージョンを使用する方式 が採用されました。
PR本文では、各Railsバージョンで推奨されるRubyバージョンを明示し、それぞれの環境でgem更新を実施した手順が記載されています。この方式により、Rails 6.1のような古いバージョンではRuby 3.0の制約下で依存関係を解決し、Rails 8.x系では最新のRuby 3.2の機能を活用できます。
複数のGemfile.lockを個別に管理する構成の下で、各環境で動作確認済みの依存パッケージセットを提供しています。
まとめ
本PRは、ActiveAdmin 3.xブランチの依存パッケージを最新版に更新し、複数のRailsバージョンとの互換性を維持した変更です。Railsバージョンごとに推奨されるRubyバージョンでgem更新を実施することで、各環境で安定した依存関係を確保しています。