生涯未熟

生涯未熟

プログラミングをちょこちょこと。

Spring v4.0.0にアップグレードしたらbundle exec rails cが死んだ話

所属チームにRenovateを導入してウキウキ気分で依存ライブラリのアップグレードをやっていたのですが、Springをシュッとv4.0.0にアップグレードしたらbundle exec rails cなどが動かなくなりました・・・

どのように動かなくなったかというと bundle config set without test をやっているのに、何故かtest groupのGemが Could not find で怒られてしまい動かないという。

原因

最初、自分の設定類がおかしいのかと色々ガチャガチャと調査をしていたのですが、そんな折にこのStack Overflowを発見。

stackoverflow.com

で、回答にあったようにv3.1.1にダウングレードしてみると確かに動く🤔

問題となっているISSUEがこちらで

github.com

v4.0.0のアップグレードで今まで Bundler.with_original_env としていたところを Bundler.with_unbundled_env に変更した結果、 BUNDLE_環境変数が削除されてしまいました。
何が問題かというと BUNDLE_APP_CONFIG も削除されてしまうので、bundle config内のwithoutが参照できずに本来省かないといけないtest groupのGemもチェックされ、エラーとなってしまった感じですね。

数時間この問題にハマったので、みなさんもお気をつけください👀(ちなみにFix版のv4.0.1はまだ未リリース・・・