https://github.com/rspec/rspec
Aruba 2.4.0 が irb への依存を追加したことで 3.13.x ブランチのCIビルドが壊れていた問題を修正したバックポートPRです。GHA ワークフローのリポジトリ参照をハードコードから相対パス・$GITHUB_REPOSITORY 変数へ切り替えてフォーク対応を実現するとともに、Gemfile の依存調整とバックトレースフィルタリングの拡張でライブラリ読み込み差異を吸収しています。
Aruba 2.4.0 が irb への依存を追加したことで erb・tsort・set.rb など多数の gemified ライブラリが引き込まれ、rspec のフォーマッターテスト・JRuby テスト・Cucumber テストが広範に失敗するようになった。本PRは Gemfile の依存バージョン整理、バックトレース除外パターンの追加、祖先チェーン検証範囲の絞り込みといった複数の修正を通じて、外部依存のノイズをテスト対象から分離しテストスイートを安定させた。
JRuby 9.2未満のEOLバージョン向けに追加されていたワークアラウンドとハックを一掃しました。`open3_safe_escape`エイリアス、`raise`ベースのバックトレース取得、Javaプロキシメソッド向けのMethodSignature動的再定義、Ripper検証ロジックなど、複数ライブラリにまたがる保守コストの高いコードが削除され、実装が統一されています。
JRuby 10.1(CRuby 4.0互換)のリリースを受け、rspecのCIマトリクスに追加。EOLとなったJRuby 9.1向けのモンキーパッチやワークアラウンドを削除し、JRuby 10.1上の既知互換性問題(circular causesエラー・respond_to?スタブ時の無限再帰)はIssueへのリンク付きでpend/skipとして管理する方式に整理しました。
RuboCopの`Lint/DuplicateMethods`ルールが、動的クラスを多用するrspecのスペックファイルで誤検知を起こしていた問題に対処した変更です。`common_rubocop_config.yml`に除外設定を追加し、スペックファイルのみをルール対象から外すことで、プロダクションコードへの保護を維持しながらフォルスポジティブを解消しています。
RSpec Mocks の any_instance スタブが、prepend されたモジュールの private/protected メソッドを誤って許可していた問題を修正。method_defined? から method_defined_at_any_visibility? への変更により、すべての可視性レベルでメソッド検出が機能し、テスト間の状態漏洩が防止されます。
Rubocopの新ルールへの対応として、プロジェクトの方針に合わない3つのルールを抑制し、コードの可読性向上につながる箇所では修正を適用しました。静的解析ツールの要求とプロジェクトの設計判断のバランスを取る変更です。
RSpec 4.0.0に向けて、gemspecファイル内のGitHubリンクが統一タグ形式 `v{version}` を参照するように変更されました。従来のgem名を含むタグ(`rspec-core-v{version}`)から、モノレポ全体で単一のバージョンタグを使用する方式に移行し、リリースプロセスの簡素化が図られています。
RSpecの全モジュール(core、expectations、mocks、support)のバージョンが `4.0.0.pre` から `4.0.0.beta1` へ更新され、開発段階がベータフェーズに移行しました。各モジュールのversion.rbとChangelogが統一的に更新され、リリース日として2026年2月18日が記録されています。
RSpecは依存ライブラリdiff-lcsのバージョン制約を `< 2.0` から `< 3.0` に拡張し、将来リリースされる2.x系をサポートできるようにしました。既存の1.x系ユーザーへの影響を避けつつ、新バージョンへの移行経路を開く保守的な変更です。