Avoid loading incorrect add-on versions when bundle path is inside project #3620
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Closes #3411
If the user sets
BUNDLE_PATH
to be inside of the project (e.g.:vendor/bundle
), we will incorrectly load whatever add-ons we find there thinking that they are project add-ons and not gem add-ons.This might finally explain how we sometimes see errors related to impossible add-on version combinations, since we are simply globbing the vendor directory and loading with no restrictions.
This PR starts ignoring the bundle path if it's configured inside of the project.
Implementation
The idea is to ignore the bundle path when loading project add-ons. Add-ons coming from the bundle are already discovered, within the right version constraints, via
Gem.find_files
.Automated Tests
Added a test that reproduces the scenario.