Use load path to normalize vendored gem filenames #316
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.
Stack trace filenames are currently normalized based on the project root if they're under it, or the load path otherwise. This works for gems when they're installed globally, since they'll be outside the project root and the load path will be used. If the gems are installed into
vendor/
under the project root however, the full relative path will be used - which includes the gem version, e.g:This means that if you update a gem, any backtraces that pass through it will change and Sentry will see them as new events. Ideally we would always normalize based on the load path for gems, but use the project root for application code.
Instead of introducing a special case for load paths under
vendor/
, I've used thein_app
attribute to decide whether to ignore the load path.With this change, there are now three cases:
APP_DIRS_PATTERN
, normalize it based on the project root.