MemCacheStoreから未使用のdelegateライブラリのrequireを削除
今回の変更では、ActiveSupport::Cache::MemCacheStoreから不要になったdelegateライブラリの読み込みが削除されました。この変更は、過去に削除された機能に関連する依存関係を整理し、コードベースの健全性を維持するものです。
背景
require "delegate" は、かつて存在したDupLocalStoreのサポートのために追加されていました。DupLocalStoreはDelegateClassを使用していたため、標準ライブラリのdelegateが必要でした。
しかし、過去に非推奨となっていたキャッシュフォーマットバージョン6.1のサポートが削除された際、DelegateClassを使用していた実装も同時に削除されました。この変更は 38bfbcf で行われています。
delegateの使用箇所がなくなったにもかかわらず、require "delegate"だけが残存していた状態が解消されました。
技術的な変更
activesupport/lib/active_support/cache/mem_cache_store.rbから1行のrequire文が削除されました。
変更前:
require "connection_pool"
require "delegate"
require "active_support/core_ext/enumerable"
変更後:
require "connection_pool"
require "active_support/core_ext/enumerable"
MemCacheStore内にDelegateClassやSimpleDelegatorを使用する箇所は存在しないため、この削除による機能への影響はありません。
設計判断
段階的な依存関係の整理が行われています。非推奨機能の削除時にすべての関連コードを除去するのではなく、まず機能実装を削除し、後から未使用の依存関係を整理するアプローチです。
PR #56687 では、過去のコミット履歴を参照しながら、このrequireが追加された経緯と削除された理由を明確に記録しています。こうした文脈の保持により、将来のメンテナンス時に「なぜこの依存関係が存在したのか」を追跡可能にしています。
不要な依存関係を残存させないことで、コードベースの明瞭性を維持し、実際の使用状況と依存関係を一致させています。
まとめ
本PRは、過去に削除されたDupLocalStore実装に関連する未使用の依存関係を整理したものです。機能削除時に見落とされていたrequire文を除去することで、MemCacheStoreの依存関係を実際の使用状況と一致させています。このような細かな整理の積み重ねが、フレームワーク全体の健全性維持に貢献します。