https://github.com/activeadmin/activeadmin
ActiveAdminのJavaScriptパッケージマネージャーがYarnからnpmに移行されました。CI/CDワークフロー全4ファイル、リリーススクリプト、開発ドキュメント、Rakeタスクにわたる変更で、yarn.lockが削除されpackage-lock.jsonが新たに追加されています。Node.js標準のnpmに統一することで、開発環境セットアップのツール依存が削減されます。
`ActiveAdmin::Router#page_routes`内に残っていたハッシュロケット形式のルート定義を、`to:` キーワード引数形式へ書き換えました。Rails 8.1対応として進めた#8837のクリーンアップ漏れを解消するスタイル統一であり、動作変更はありません。
`ActiveAdmin::Router#page_routes`内に残っていたハッシュ形式のルート呼び出し(`"/path" => "controller#action"`)を`to:`キーワード引数形式に変換しました。Rails 8.1対応PR #8837で行われたルーティングコードのキーワード引数移行において取り残されていた1箇所を補完するスタイル上のクリーンアップで、挙動への影響はありません。
`table_for` のソート可能なカラムヘッダーにSVGなどのHTMLコンテンツを渡した際に生テキストとして出力されてしまう問題を修正しました。文字列結合後に `html_safe` を付与するパターンを `safe_join` による結合に置き換えることで、HTMLコンテンツを正しくレンダリングしつつ、意図しないXSSリスクも解消しています。
CapybaraのRuboCop copが`Capybara/RSpec`名前空間へ移行したことに伴い、`.rubocop.yml`の設定を更新。新たに追加された`Capybara/RSpec/HaveContent` copへの対応として、`features/step_definitions/`配下4箇所の`have_content`を`have_text`へ置き換えています。
Active Admin が EOL を迎えた Ruby 3.2 のサポートを終了し、最低サポートバージョンを 3.3 に引き上げました。gemspec の `required_ruby_version`、RuboCop の `TargetRubyVersion`、CI マトリクス、開発者向けドキュメントの4箇所が一貫して更新されています。
jQuery UI 1.14で`$.uiBackCompat`がデフォルト`false`になったことで非推奨の`dialogClass`オプションが無効化され、バッチアクション確認ダイアログにクローズボタンが意図せず表示される不具合が発生していました。本PRでは`dialogClass`を後継の`classes`オプション(`{ 'ui-dialog': 'active_admin_dialog' }`)に1行置換することで、既存のCSSセレクタや動作ロジックを変えずに根本原因を解消しています。
Rails 8.xで例外となった`ActiveRecord::Base.connection`の直接呼び出しを廃止する変更を、`3-0-stable`ブランチへバックポートしました。Rails < 7.2との互換性を保つため、`respond_to?(:with_connection)`によるランタイム検出で新旧APIを切り替えるパターンを採用しています。テスト環境では`permanent_connection_checkout = :disallowed`設定をRails 7.2以降にのみ適用することで、レガシー接続の残存を早期検出できる体制も整備されています。
ActiveAdmin が Devise 5 との互換性を確立しました。Rails 8.x 系では Devise 5 と Formtastic 6 へアップグレードする一方、Ruby 3.1 でテストされる Rails 6.1〜7.2 系では Devise 4.9 を維持する段階的な戦略が採用されています。ランタイムの依存チェック(`dependency.rb`)では Devise の受け入れ上限が `< 5` から `< 6` に拡張されました。
`dependencies:vendor` RakeタスクがimportmapにピンされているESMファイルではなくUMDバンドルをvendorしていたバグを修正。`@floating-ui/core` と `@floating-ui/dom` のブラウザ向けESMファイル(`.browser.mjs`)を正しくコピーするよう変更され、参照されていたUMDファイルはリポジトリから削除されました。
ActiveAdminが `ActiveRecord::Base.connection` の直接呼び出しを `with_connection` ブロックに置き換えました。`permanent_connection_checkout = :disallowed` 設定下でエラーが発生していた問題(#8881)を解消し、Rails 8.xとの互換性を確保しています。テストスイートにも同設定を追加することで、同種の問題のリグレッション防止も図られています。
`with_connection` 導入時に追加された `uses_transaction` の回避策が不要であることが判明し、2つのスペックファイルから削除されました。`quote_column_name` は DB I/O を伴わない純粋な文字列操作であり、`with_connection` もトランザクションテスト内で安全に動作するため、トランザクションラッパーをオプトアウトする理由がないことが明確になりました。
`permanent_connection_checkout = :disallowed` が設定されたテスト環境で `in_paginated_batches` スペックが失敗する問題を修正。`ActiveRecord::Base.connection` を Rails 7.2+ 対応の `lease_connection` に置き換えることで、厳格なコネクション管理ポリシーを維持しながらテストを通過させます。
ActiveAdmin が Devise 5 および Formtastic 6 との互換性を確立しました。Devise は 4.0 以上 6 未満を許容する方針で後方互換性を維持しつつ、Formtastic は 6.0 以上を必須要件とし、Formtastic 側の既知問題解消を受けて長期間固定されていた依存バージョン制約が解除されています。
Active AdminのDependabot設定を`multi-ecosystem-groups`機能でリファクタリング。複数のBundlerディレクトリ(ルート、Rails 7.2、Rails 8.0)の更新PRを1つに統合し、スケジュールをグループレベルで一元管理しつつ、各環境固有のバージョン制約は個別エントリで保持する設計。
Active AdminがFormtastic 6.0にアップグレードし、Rails 7.2以降のみをサポートする依存関係に変更されました。この更新により、Rails 6.xとの互換性が失われる可能性があります。
Tailwind CSS v4.2.0で非推奨となった `start-*` ユーティリティを、論理プロパティベースの `inset-s-*` に置き換えました。メインナビゲーションとモーダルの配置指定を更新し、国際化対応の基盤を整備しています。
Active AdminのESLintをv9.39.1からv10.0.0にアップグレード。`@eslint/js`パッケージの追加とESLint内部依存パッケージの更新が含まれるが、設定ファイルやコードへの変更は伴わない。
ActiveAdmin 3.xブランチの依存パッケージを更新。Rails 6.1〜8.1の各バージョンに対応し、Ruby 3.0〜3.2を使い分けてgem更新を実施。parser、sys-uname、parallel_tests、irb、rackなどを最新化し、フロントエンド側もBabel、rollupを引き上げた。
Active AdminがjQuery 4対応のため、Datepickerをフォーカスイベントのトリガーではなくdatepicker('show')メソッドで表示するように変更。jQuery 4では従来の方法で初回フォーカス時にDatepickerが開かない問題に対応。