Invalidate Bootsnap cache on Gemfile.lock changes #18240
Merged
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.
The majority of the time, this isn't necessary. Bootsnap builds an incremental cache correctly.
However we get edge cases when a gem shadows a default gem only under certain gem groups and have occasionally had reports of Bootsnap randomly breaking after a while.
Let's just save ourselves the stress and more aggressively version the Bootsnap cache. Now the whole cache is invalidated whenever
Gemfile.lock
changes or Ruby is updated.This does in turn have a benefit that
brew cleanup
is now smarter. Now that we version the cache we don't need to nuke the whole cache every time we runbrew cleanup
and can now detect what cache is stale and what isn't. As a result, I've now enabled it for periodicbrew cleanup
.Probably unblocks at least the LoadError part of #18216.