Stop decorating Kernel.load. This used to be very useful in development because the Rails "classic" autoloader
was using Kernel.load in dev and Kernel.require in production. But Zeitwerk is now the default, and it doesn't
use Kernel.load at all.
People still using the classic autoloader might want to stick to bootsnap 1.12.
Add Bootsnap.unload_cache!. Applications can call it at the end of their boot sequence when they know
no more code will be loaded to reclaim a bit of memory.
1.12.0
bootsnap precompile CLI will now also precompile Rakefile and .rake files.
Stop decorating Module#autoload as it was only useful for supporting Ruby 2.2 and older.
Remove uname and other patform specific version from the cache keys. RUBY_PLATFORM + RUBY_REVISION should be
enough to ensure bytecode compatibility. This should improve caching for alpine based setups. See #409.
1.11.1
Fix the can't modify frozen Hash error on load path cache mutation. See #411.
1.11.0
Drop dependency on fileutils.
Better respect Kernel#require duck typing. While it almost never comes up in practice, Kernel#require
follow a fairly intricate duck-typing protocol on its argument implemented as rb_get_path(VALUE) in MRI.
So when applicable we bind rb_get_path and use it for improved compatibility. See #396 and #406.
Get rid of the Kernel.require_relative decorator by resolving $LOAD_PATH members to their real path.
This way we handle symlinks in $LOAD_PATH much more efficiently. See #402 for the detailed explanation.
Drop support for Ruby 2.3 (to allow getting rid of the Kernel.require_relative decorator).
1.10.3
Fix Regexp and Date type support in YAML compile cache. (#400)
Note that the above only apply for actual YAML symbols (e..g --- :foo).
The issue is still present for string keys parsed with YAML.load_file(..., symbolize_names: true), that is a bug
in msgpack that will hopefully be solved soon, see: msgpack/msgpack-ruby#246
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps bootsnap from 1.8.0 to 1.13.0.
Changelog
Sourced from bootsnap's changelog.
... (truncated)
Commits
27735a5
Release 1.13.08be976f
Merge pull request #420 from Shopify/replace-cla-probot-with-action3dd29a8
Remove CLA from probot and use new GitHub actionb7455a3
Merge pull request #324 from knovok/master89434cc
Merge pull request #388 from Shopify/drop-cachef541922
Add missing fail-fast: false on CI901c0b7
Add Bootsnap.unload_cache!26fcb55
Add ChangeObserver.unregistereec400e
RemoveKernel.load
caching.7b668e2
Merge pull request #418 from Shopify/drop-ruby-2.4Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)