commit a15874da2ed713d318c19ef490ad2f42cbcf0e13d9b90a91e0d4554ddf1e3067 Author: Adrian Schröter <adrian@suse.de> Date: Tue Dec 24 17:25:14 2024 +0100 Sync from SUSE:SLFO:Main rubygem-bootsnap revision 7bf27d3e4df340dfc887c1f168199287 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/bootsnap-1.18.4.gem b/bootsnap-1.18.4.gem new file mode 100644 index 0000000..8636e43 --- /dev/null +++ b/bootsnap-1.18.4.gem @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac4c42af397f7ee15521820198daeff545e4c360d2772c601fbdc2c07d92af55 +size 41984 diff --git a/gem2rpm.yml b/gem2rpm.yml new file mode 100644 index 0000000..d182d92 --- /dev/null +++ b/gem2rpm.yml @@ -0,0 +1,72 @@ +# --- +# ## used by gem2rpm +# :summary: this is a custom summary +# ## used by gem2rpm +# :description: |- +# this is a custom description +# +# it can be multiline +# ## used by gem2rpm +# :license: MIT or Ruby +# ## used by gem2rpm and gem_packages +# :version_suffix: -x_y +# ## used by gem2rpm and gem_packages +# :disable_docs: true +# ## used by gem2rpm +# :disable_automatic_rdoc_dep: true +# ## used by gem2rpm +# :preamble: |- +# BuildRequires: foobar +# Requires: foobar +# ## used by gem2rpm +# :patches: +# foo.patch: -p1 +# bar.patch: +# :post_patch: +# if you need to fiddle with the source dir before rebuilding the gem +# ## used by gem2rpm +:sources: +# - foo.desktop +# - bar.desktop +# :gem_install_args: '....' +# ## used by gem2rpm +# :pre_install: |- +# %if 0%{?use_system_libev} +# export USE_VENDORED_LIBEV="no" +# %endif +# ## used by gem2rpm +# :post_install: |- +# # delete custom files here or do other fancy stuff +# install -D -m 0644 %{S:1} %{buildroot}%{_bindir}/gem2rpm-opensuse +# ## used by gem2rpm +# :testsuite_command: |- +# (pushd %{buildroot}%{gem_base}/gems/%{mod_full_name} && rake test) +# ## used by gem2rpm +# :filelist: |- +# /usr/bin/gem2rpm-opensuse +# ## used by gem2rpm +# :scripts: +# :post: |- +# /bin/echo foo +# ## used by gem_packages +# :main: +# :preamble: |- +# Requires: util-linux +# Recommends: pwgen +# :filelist: |- +# /usr/bin/gem2rpm-opensuse +# ## used by gem_packages +# :custom_pkgs: +# apache: +# :preamble: |- +# Requires: ..... +# :filelist: |- +# /etc/apache2/conf.d/passenger.conf +# :summary: Custom summary is optional +# :description: |- +# Custom description is optional +# +# bar +# :post: |- +# /bin/echo foo +# diff --git a/rubygem-bootsnap.changes b/rubygem-bootsnap.changes new file mode 100644 index 0000000..5192557 --- /dev/null +++ b/rubygem-bootsnap.changes @@ -0,0 +1,387 @@ +------------------------------------------------------------------- +Mon Nov 4 16:20:10 UTC 2024 - Dan Čermák <dan.cermak@posteo.net> + +- New upstream release 1.18.4, see bundled CHANGELOG.md + +------------------------------------------------------------------- +Fri Jun 21 09:33:29 UTC 2024 - Dan Čermák <dan.cermak@posteo.net> + +- # 1.18.3 + +* Fix the cache corruption issue in the revalidation feature. See #474. + The cache revalidation feature remains opt-in for now, until it is more battle tested. + +# 1.18.2 + +* Disable stale cache entries revalidation by default as it seems to cause cache corruption issues. See #471 and #474. + Will be re-enabled in a future version once the root cause is identified. +* Fix a potential compilation issue on some systems. See #470. + +# 1.18.1 + +* Handle `EPERM` errors when opening files with `O_NOATIME`. + +# 1.18.0 + +* `Bootsnap.instrumentation` now receive `:hit` events. +* Add `Bootsnap.log_stats!` to print hit rate statistics on process exit. Can also be enabled with `BOOTSNAP_STATS=1`. +* Revalidate stale cache entries by digesting the source content. + This should significantly improve performance in environments where `mtime` isn't preserved (e.g. CI systems doing a git clone, etc). + See #468. +* Open source files and cache entries with `O_NOATIME` when available to reduce disk accesses. See #469. +* `bootsnap precompile --gemfile` now look for `.rb` files in the whole gem and not just the `lib/` directory. See #466. + + +------------------------------------------------------------------- +Mon Jan 29 13:47:58 UTC 2024 - Dan Čermák <dan.cermak@posteo.net> + +- New upstream release 1.17.1, see bundled CHANGELOG.md + +------------------------------------------------------------------- +Thu Nov 2 15:40:16 UTC 2023 - Dan Čermák <dan.cermak@posteo.net> + +- # 1.17.0 + +* Ensure `$LOAD_PATH.dup` is Ractor shareable to fix an conflit with `did_you_mean`. +* Allow to ignore direcotries using absolute paths. +* Support YAML and JSON CompileCache on TruffleRuby. +* Support LoadPathCache on TruffleRuby. + +# 1.16.0 + +* Use `RbConfig::CONFIG["rubylibdir"]` instead of `RbConfig::CONFIG["libdir"]` to check for stdlib files. See #431. +* Fix the cached version of `YAML.load_file` being slightly more permissive than the default `Psych` one. See #434. + `Date` and `Time` values are now properly rejected, as well as aliases. + If this causes a regression in your application, it is recommended to load *trusted* YAML files with `YAML.unsafe_load_file`. + + +------------------------------------------------------------------- +Wed Dec 7 11:13:46 UTC 2022 - Stephan Kulow <coolo@suse.com> + +updated to version 1.15.0 + see installed CHANGELOG.md + + # 1.15.0 + + * Add a readonly mode, for environments in which the updated cache wouldn't be persisted. See #428 and #423. + + # 1.14.0 + + * Require Ruby 2.6. + * Add a way to skip directories during load path scanning. + If you have large non-ruby directories in the middle of your load path, it can severely slow down scanning. + Typically this is a problem with `node_modules`. See #277. + * Fix `Bootsnap.unload_cache!`, it simply wouldn't work at all becaue of a merge mistake. See #421. + + +------------------------------------------------------------------- +Thu Aug 4 12:59:41 UTC 2022 - Stephan Kulow <coolo@suse.com> + +updated to version 1.13.0 + see installed CHANGELOG.md + + # 1.13.0 + + * 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. + + +------------------------------------------------------------------- +Mon Jun 13 16:52:37 UTC 2022 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 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. + +------------------------------------------------------------------- +Thu Mar 10 15:43:33 UTC 2022 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 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). + +------------------------------------------------------------------- +Tue Feb 15 07:24:24 UTC 2022 - Stephan Kulow <coolo@suse.com> + +updated to version 1.10.3 + see installed CHANGELOG.md + + # 1.10.3 + + * Fix Regexp and Date type support in YAML compile cache. (#400) + + * Improve the YAML compile cache to support `UTF-8` symbols. (#398, #399) + [The default `MessagePack` symbol serializer assumes all symbols are ASCII](https://github.com/msgpack/msgpack-ruby/pull/211), + because of this, non-ASCII compatible symbol would be restored with `ASCII_8BIT` encoding (AKA `BINARY`). + Bootsnap now properly cache them in `UTF-8`. + + 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: https://github.com/msgpack/msgpack-ruby/pull/246 + + * Entirely disable the YAML compile cache if `Encoding.default_internal` is set to an encoding not supported by `msgpack`. (#398) + `Psych` coerce strings to `Encoding.default_internal`, but `MessagePack` doesn't. So in this scenario we can't provide + YAML caching at all without returning the strings in the wrong encoding. + This never came up in practice but might as well be safe. + + +------------------------------------------------------------------- +Tue Jan 25 06:40:49 UTC 2022 - Stephan Kulow <coolo@suse.com> + +updated to version 1.10.2 + see installed CHANGELOG.md + + # 1.10.2 + + * Reduce the `Kernel.require` extra stack frames some more. Now bootsnap should only add one extra frame per `require` call. + + * Better check `freeze` option support in JSON compile cache. + Previously `JSON.load_file(..., freeze: true)` would be cached even when the msgpack version is missing support for it. + + # 1.10.1 + + * Fix `Kernel#autoload`'s fallback path always being executed. + + * Consider `unlink` failing with `ENOENT` as a success. + + # 1.10.0 + + * Delay requiring `FileUtils`. (#285) + `FileUtils` can be installed as a gem, so it's best to wait for bundler to have setup the load path before requiring it. + + * Improve support of Psych 4. (#392) + Since `1.8.0`, `YAML.load_file` was no longer cached when Psych 4 was used. This is because `load_file` loads + in safe mode by default, so the Bootsnap cache could defeat that safety. + Now when precompiling YAML files, Bootsnap first try to parse them in safe mode, and if it can't fallback to unsafe mode, + and the cache contains a flag that records wether it was generated in safe mode or not. + `YAML.unsafe_load_file` will use safe caches just fine, but `YAML.load_file` will fallback to uncached YAML parsing + if the cache was generated using unsafe parsing. + + * Minimize the Kernel.require extra stack frames. (#393) + This should reduce the noise generated by bootsnap on `LoadError`. + + # 1.9.4 + + * Ignore absolute paths in the loaded feature index. (#385) + This fixes a compatibility issue with Zeitwerk when Zeitwerk is loaded before bootsnap. It also should + reduce the memory usage and improve load performance of Zeitwerk managed files. + + * Automatically invalidate the load path cache whenever the Ruby version change. (#387) + This is to avoid issues in case the same installation path is re-used for subsequent ruby patch releases. + + +------------------------------------------------------------------- +Tue Dec 21 22:47:57 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.9.3 + + # 1.9.3 + + * Only disable the compile cache for source files impacted by [Ruby 3.0.3 [Bug 18250]](https://bugs.ruby-lang.org/issues/18250). + This should keep the performance loss to a minimum. + + # 1.9.2 + + * Disable compile cache if [Ruby 3.0.3's ISeq cache bug](https://bugs.ruby-lang.org/issues/18250) is detected. + AKA `iseq.rb:13 to_binary: wrong argument type false (expected Symbol)` + * Fix `Kernel.load` behavior: before `load 'a'` would load `a.rb` (and other tried extensions) and + wouldn't load `a` unless `development_mode: true`, now only `a` would be loaded and files with + extensions wouldn't be. + +------------------------------------------------------------------- +Sat Oct 9 09:04:24 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.9.1 + + * Removed a forgotten debug statement in JSON precompilation + +------------------------------------------------------------------- +Wed Aug 25 05:06:34 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.7.7 + + * Fix `require_relative` in evaled code on latest ruby 3.1.0-dev. (#366) + +------------------------------------------------------------------- +Thu Jul 29 08:40:13 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.7.6 + + * Fix reliance on `set` to be required. + * Fix `Encoding::UndefinedConversionError` error for Rails applications when precompiling cache. (#364) + +------------------------------------------------------------------- +Fri May 14 16:00:26 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.7.5 + + # 1.7.5 + + * Handle a regression of Ruby 2.7.3 causing Bootsnap to call the deprecated `untaint` method. (#360) + * Gracefully handle read-only file system as well as other errors preventing to persist the load path cache. (#358) + + # 1.7.4 + + * Stop raising errors when encoutering various file system errors. The cache is now best effort, + if somehow it can't be saved, bootsnapp will gracefully fallback to the original operation (e.g. `Kernel.require`). + (#353, #177, #262) + +------------------------------------------------------------------- +Tue Mar 23 06:00:28 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.7.3 + + * Disable YAML precompilation when encountering YAML tags. (#351) + +------------------------------------------------------------------- +Mon Feb 15 13:32:13 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.7.2 + + * Fix compatibility with msgpack < 1. (#349) + +------------------------------------------------------------------- +Sat Feb 6 11:27:04 UTC 2021 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.7.1 + + * no changelog found in CHANGELOG.md + +------------------------------------------------------------------- +Tue Nov 10 21:00:10 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.5.1 + + * Workaround a Ruby bug in InstructionSequence.compile_file. (#332) + +------------------------------------------------------------------- +Sun Nov 1 14:46:59 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.4.9 + + * [Windows support](https://github.com/Shopify/bootsnap/pull/319) + * [Fix potential crash](https://github.com/Shopify/bootsnap/pull/322) + +------------------------------------------------------------------- +Sat Aug 22 12:59:34 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.4.8 + + # 1.4.8 + + * [Prevent FallbackScan from polluting exception cause](https://github.com/Shopify/bootsnap/pull/314) + + # 1.4.7 + + * Various performance enhancements + * Fix race condition in heavy concurrent load scenarios that would cause bootsnap to raise + +------------------------------------------------------------------- +Tue Mar 3 11:01:39 UTC 2020 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.4.6 + + * no changelog found + +------------------------------------------------------------------- +Tue Nov 12 16:42:47 UTC 2019 - Manuel Schnitzer <mschnitzer@suse.com> + +- updated to version 1.4.5 + + * MRI 2.7 support + * Fixed concurrency bugs + +------------------------------------------------------------------- +Sun May 5 09:19:48 UTC 2019 - Stephan Kulow <coolo@suse.com> + +- updated to version 1.4.4 + see installed CHANGELOG.md + + # 1.4.4 + + * Disable ISeq cache in `bootsnap/setup` by default in Ruby 2.5 + + # 1.4.3 + + * Fix some cache permissions and umask issues after switch to mkstemp + +------------------------------------------------------------------- +Fri Mar 29 05:56:31 UTC 2019 - Stephan Kulow <coolo@suse.com> + +- updated to version 1.4.2 + see installed CHANGELOG.md + + # 1.4.2 + + * Fix bug when removing features loaded by relative path from `$LOADED_FEATURES` + * Fix bug with propagation of `NameError` up from nested calls to `require` + +------------------------------------------------------------------- +Sat Mar 2 15:05:33 UTC 2019 - Stephan Kulow <coolo@suse.com> + +- updated to version 1.4.1 + see installed CHANGELOG.md + + # 1.4.1 + + * Don't register change observers to frozen objects. + + # 1.4.0 + + * When running in development mode, always fall back to a full path scan on LoadError, making + bootsnap more able to detect newly-created files. (#230) + * Respect `$LOADED_FEATURES.delete` in order to support code reloading, for integration with + Zeitwerk. (#230) + * Minor performance improvement: flow-control exceptions no longer generate backtraces. + * Better support for requiring from environments where some features are not supported (especially + JRuby). (#226)k + * More robust handling of OS errors when creating files. (#225) + +------------------------------------------------------------------- +Mon Sep 17 09:29:37 UTC 2018 - mschnitzer@suse.com + +- updated to version 1.3.2 + + * Fix Spring + Bootsnap incompatibility when there are files with similar names. + * Fix `YAML.load_file` monkey patch to keep accepting File objects as arguments. + * Fix the API for `ActiveSupport::Dependencies#autoloadable_module?`. + * Some performance improvements. + +------------------------------------------------------------------- +Wed Jul 11 18:00:51 UTC 2018 - factory-auto@kulow.org + +- updated to version 1.3.1 + see installed CHANGELOG.md + + # 1.3.1 + + * Change load path scanning to more correctly follow symlinks. + +------------------------------------------------------------------- +Fri Jul 6 21:15:48 UTC 2018 - mschnitzer@suse.com + +- Initial package release diff --git a/rubygem-bootsnap.spec b/rubygem-bootsnap.spec new file mode 100644 index 0000000..0142993 --- /dev/null +++ b/rubygem-bootsnap.spec @@ -0,0 +1,57 @@ +# +# spec file for package rubygem-bootsnap +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +# +# This file was generated with a gem2rpm.yml and not just plain gem2rpm. +# All sections marked as MANUAL, license headers, summaries and descriptions +# can be maintained in that file. Please consult this file before editing any +# of those fields +# + +Name: rubygem-bootsnap +Version: 1.18.4 +Release: 0 +%define mod_name bootsnap +%define mod_full_name %{mod_name}-%{version} +BuildRequires: %{rubydevel >= 2.6.0} +BuildRequires: %{rubygem gem2rpm} +BuildRequires: ruby-macros >= 5 +BuildRequires: update-alternatives +URL: https://github.com/Shopify/bootsnap +Source: https://rubygems.org/gems/%{mod_full_name}.gem +Source1: gem2rpm.yml +Summary: Boot large ruby/rails apps faster +License: MIT + +%description +Boot large ruby/rails apps faster. + +%prep + +%build + +%install +%gem_install \ + --symlink-binaries \ + --doc-files="CHANGELOG.md LICENSE.txt README.md" \ + -f +%gem_cleanup + +%gem_packages + +%changelog