Rails 7.2への最小バージョン要件の引き下げ
action_push_nativeのRails最小バージョン要件が8.0から7.2に変更されました。これにより、Rails 7.2を使用しているプロジェクトでも本gemを導入できるようになります。
背景
従来の8.0という要件は、Rails 7.1のサポート終了を考慮した設定でしたが、実際の利用者から7.2環境での使用ニーズが寄せられていました。#84での議論を経て、Rails 7.2がまだメンテナンスされている状況を踏まえ、バージョン要件の見直しが行われました。
PR内では、Rails 7.1のEnd of Lifeに関する指摘があり、7.2への変更が妥当であるとの合意が形成されています。これにより、Rails 7.2以降を使用するプロジェクトすべてに対応することになりました。
技術的な変更
rails_version変数の定義が ">= 8.0" から ">= 7.2" に変更され、この値が3つのRails依存関係に適用されています。
変更箇所:
rails_version = ">= 7.2"
spec.add_dependency "activerecord", rails_version
spec.add_dependency "activejob", rails_version
spec.add_dependency "railties", rails_version
この変更に伴い、ActiveRecord::Migrationのバージョン指定も7.2に更新されました:
class CreateActionPushNativeDevice < ActiveRecord::Migration[7.2]
def change
create_table :action_push_native_devices do |t|
# ...
Gemfile.lockでは、activejob、activerecord、railtiesの3つの依存関係のバージョン指定が同時に更新されています。これにより、gem全体として一貫したRailsバージョン要件が維持されます。
設計判断
Rails 7.2を下限とする判断が採用されました。
PR内の議論では、7.1のサポート終了が指摘された一方で、7.2はまだメンテナンス期間内であることが確認されています。8.0のみをサポートする場合、最新のRailsバージョンを追従していないプロジェクトでの導入が困難になりますが、7.2まで下げることで、より広い範囲のプロジェクトで利用可能になります。
マイグレーションファイルのバージョン指定も合わせて変更することで、Rails 7.2環境でのマイグレーション実行時の互換性が保証されます。これは、gemspecの要件だけでなく、実際の動作環境でも7.2をサポートすることを明確にする設計です。
まとめ
本PRは、action_push_nativeの対応Railsバージョン範囲を広げる変更です。Rails 8.0のみという制約を7.2以降に緩和することで、現在メンテナンスされているRailsバージョンすべてに対応し、より多くのプロジェクトでの採用を可能にしています。