Skip to content

Commit b91fb94

Browse files
committed
with_original_env so BUNDLER_APP_CONFIG is honored
Bundler's `with_clean_env` completely erases all Bundler-related environment variables, even if those variables existed prior to loading Bundler. That means that custom Bundler settings that we legitimately want to pass down to child processes - namely, `BUNDLE_APP_CONFIG` - are erased, leading to errors when the child process loads `bundler/setup`. Note that `with_clean_env` is actually deprecated by Bundler. The method recommended by Bundler going forward, and the one used in this commit, is `with_original_env`. This clears any variables that were set by Bundler itself, but retains any user-supplied settings that existed prior. This fixes a bug where spring binstubs would fail if `BUNDLE_APP_CONFIG` was set to a custom location (i.e. other than the default `./.bundle`) and `bundle install --path` was used. The binstub would not be able to load the bundle because without `BUNDLE_APP_CONFIG`, it could not know the path where the gems were installed.
1 parent f0d2d65 commit b91fb94

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
* Fix binstubs not being replaced when their quoting style was changed (#534)
44
* Preserve comments right after the shebang line which might include magic comments such as `frozen_string_literal: true'
5+
* Fix binstub failures when Bundler's `BUNDLE_APP_CONFIG` environment variable is present (#545)
56

67
## 2.0.2
78

lib/spring/application_manager.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def stop
9292
def start_child(preload = false)
9393
@child, child_socket = UNIXSocket.pair
9494

95-
Bundler.with_clean_env do
95+
Bundler.with_original_env do
9696
@pid = Process.spawn(
9797
{
9898
"RAILS_ENV" => app_env,

0 commit comments

Comments
 (0)