summaryrefslogtreecommitdiff
path: root/spec/bundler/runtime/setup_spec.rb
AgeCommit message (Collapse)Author
2025-11-20[ruby/rubygems] Improve error messages and handling in testseileencodes
This is a first pass to improve the way errors are handled and raised in bundler's tests. The goal is to clean up tests and modernize them - these were some obvious areas that could be cleaned up. - Instead of raising "ZOMG" in the load error tests, it now tests for the actual error and gem raising. - Improve error messages where applicable. - All errors raise a specific error class, rather than falling back to a default and just setting a message. - Removed arguments and `bundle_dir` option from `TheBundle` class as it wasn't actually used so therefore we don't need to raise an error for extra arguments. - Removed error from `BundlerBuilder`, as it won't work if it's not `bundler`, also it never uses `name`. The only reaon `name` is passed in is because of metaprogramming on loading the right builder. I think that should eventually be refactored. - Replaced and removed `update_repo3` and `update_repo4` in favor of just `build_repo3` and `build_repo4`. Rather than tell someone writing tests to use a different method, automatically use the right method. https://github.com/ruby/rubygems/commit/68c39c8451
2025-11-14[ruby/rubygems] Fix triple spacing when generating lockfileJimmy Lin
https://github.com/ruby/rubygems/commit/d3baf4110e
2025-07-07[rubygems/rubygems] Stop allowing calling `#gem` on random objectsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/4b8570ae15
2025-06-30[rubygems/rubygems] Remove "double CI" for testing Bundler 4 modeDavid Rodríguez
Since now every functionality that changes in Bundler 4 is under a setting, we can enable that setting to test the new functionality, without having to run our full CI twice. This can actually be seen as increasing coverage, because Bundler 4 functionality will now be tested on Windows, MacOS, or any other environment where previously "Bundler 4 mode" was not running. https://github.com/rubygems/rubygems/commit/1cb3e009fc
2025-06-24[rubygems/rubygems] `bundle exec` does not need artifice in generalDavid Rodríguez
https://github.com/rubygems/rubygems/commit/cb1f19573a
2025-06-19Skip to Bundler 4 directlyDavid Rodríguez
2025-06-19[rubygems/rubygems] Normalize Bundler version spec filtersDavid Rodríguez
https://github.com/rubygems/rubygems/commit/28b6a7cf5e
2025-06-17[rubygems/rubygems] Etc exemption on Windows is no longer necessaryDavid Rodríguez
https://github.com/rubygems/rubygems/commit/228f59e3ab
2025-06-06[rubygems/rubygems] Extract stdboth spec helperDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb13f4e702
2025-03-24[rubygems/rubygems] Reword log message about current platform being missingDavid Rodríguez
It reads better this way I think. https://github.com/rubygems/rubygems/commit/ce9743290d Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-24[rubygems/rubygems] Improve grammar of some error messagesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/558a4765c7 Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-12[rubygems/rubygems] Prefer `FileUtils.rm_r` to `FileUtils.rm_rf` for specsDavid Rodríguez
Because it does not swallow errors if it fails to remove the given folders, making issues easier to debug. https://github.com/rubygems/rubygems/commit/0db12d7afc
2025-03-12[rubygems/rubygems] Refactor specs to not try to remove folders that don't existDavid Rodríguez
This has the following benefits: * Avoid duplicated work in some specs that first build a repo, and then overwrite it with a completely different set of gems. * Reduce RSpec nesting and improve readability. * The change also made surfaces several specs that were incorrect since they were unintentionally not testing the right thing. https://github.com/rubygems/rubygems/commit/ed430883e0
2025-02-27[rubygems/rubygems] Improve error message when on read-only filesystemsDavid Rodríguez
If we fail to write the lockfile, give a better error. https://github.com/rubygems/rubygems/commit/81a08d6eda
2024-11-28[rubygems/rubygems] Test with Ruby 3.4David Rodríguez
https://github.com/rubygems/rubygems/commit/23d06195fa
2024-10-23[rubygems/rubygems] Remove the need for some bundler monkeypatchesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f530f8686d
2024-10-10[rubygems/rubygems] Remove code that's not needed for the spec to passDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ce9f6285c4
2024-10-09[rubygems/rubygems] Fix `Gem::Specification#gem_dir` losing custom source ↵David Rodríguez
for some reason https://github.com/rubygems/rubygems/commit/f8f589b1b8
2024-10-04[rubygems/rubygems] Remove outdated conditionals from testsSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/06eec6d855
2024-09-17[rubygems/rubygems] Bump rubies in CI to 3.3.5David Rodríguez
A spec needed changes because now loading the default `json` prints a warning about `ostruct` getting loaded although it will be removed in the future. Use a different default gem to test this. https://github.com/rubygems/rubygems/commit/7415a66906 Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
2024-07-09[rubygems/rubygems] Test using latest rubiesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6d6646b8bc
2024-07-05[rubygems/rubygems] Use preferred add_dependency instead of ↵Jerome Dalbert
add_runtime_dependency https://github.com/rubygems/rubygems/commit/9a08043858
2024-06-28Synchronize Bundler & RubyGems (#11071)David Rodríguez
2024-06-06[rubygems/rubygems] Enable one spec on truffleruby that reproduces the ↵David Rodríguez
Pathname problem Recent refactorings in test suite to not load `pathname` for launching Bundler subprocesses make some specs fail due to the warnings Ruby prints when autoloading `pathname` under a namespace. But enabling this spec also reproduces the hard error it produces on truffleruby. https://github.com/rubygems/rubygems/commit/e47cd78081
2024-05-29[rubygems/rubygems] Improve default gem handling by treating default gems as ↵David Rodríguez
any other gem For backwards compatibility, make sure default gems are still used as a last resort when materializing, in case no remote, cached, or installed specs are found. https://github.com/rubygems/rubygems/commit/93788f689f
2024-05-24[rubygems/rubygems] Fix performance regression on applications with a local ↵David Rodríguez
cache Even if all gems are properly installed and no resolve is needed, we recently started always reading all packages in `vendor/cache` and extracting specifications from them. This commit fixes the problem by longer making considering cached specs the default and only enable them when a resolve is actually needed. https://github.com/rubygems/rubygems/commit/edeb2c42bf
2024-04-29[rubygems/rubygems] Fix circular require warningDavid Rodríguez
https://github.com/rubygems/rubygems/commit/241d0aafcd
2024-04-25[rubygems/rubygems] Add auto_install support to require "bundler/setup"Josh Nichols
We have some places that already use `bundle config auto_install true`, ie: https://github.com/technicalpickles/rubygems/blob/7a144f3374f6a400cc9832f072dc1fc0bca8c724/bundler/lib/bundler/cli.rb#L11 This applies the same logic (copy and pasted) to happen when you `require "bundler/setup"`. https://github.com/rubygems/rubygems/commit/bb3c922341
2024-02-16[rubygems/rubygems] bin/rubocop -aHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/f79a6a004d
2024-02-15Update the error message format in bundlerYusuke Endoh
2024-01-29[rubygems/rubygems] Add a spec to prove uri is no longer loadedDavid Rodríguez
https://github.com/rubygems/rubygems/commit/3a262f55c8
2023-12-14[rubygems/rubygems] Revert "Improve default gem handling"David Rodríguez
This reverts commit https://github.com/rubygems/rubygems/commit/091b4fcf2b99. https://github.com/rubygems/rubygems/commit/dcade3235f
2023-12-13[rubygems/rubygems] Improve default gem handlingDavid Rodríguez
If a gem is specified in the Gemfile (or resolved as a transitive dependency), it's always resolved from remote/installed sources. Default gems are only used as a fallback for gems not included in the bundle. I believe this leads to more consistent behavior and more portable apps, since all gems will be installed to the configured bundle path, regardless of whether they are default gems or not. https://github.com/rubygems/rubygems/commit/091b4fcf2b
2023-12-12[rubygems/rubygems] Bump rake version used by testsDavid Rodríguez
And make it easier to update next time. https://github.com/rubygems/rubygems/commit/1ea4bfa5d8
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
2023-12-05[rubygems/rubygems] Converts Bundler lockfile checksum validation to opt-in onlyMartin Emde
Looks for the CHECKSUMS section in the lockfile, activating the feature only if the section exists. Without a CHECKSUMS section, Bundler will continue as normal, validating checksums when gems are installed while checksums from the compact index are present. https://github.com/rubygems/rubygems/commit/2353cc93a4
2023-11-27[rubygems/rubygems] Remove no longer necessary workaround for old RubyGemsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ed4eaefac0
2023-11-13[rubygems/rubygems] Make sure to `require "rubygems"` explicitlyNobuyoshi Nakada
This is also done in bundler/lib/bundler/rubygems_integration.rb, but bundler/lib/bundler.rb loads this file before it. https://github.com/rubygems/rubygems/commit/8840d8507b
2023-11-13[rubygems/rubygems] Drop support for Ruby 2.6 and Ruby 2.7 in BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/93619c97ff
2023-10-23[rubygems/rubygems] Add CHECKSUMS for each gem in lockfileThong Kuah
We lock the checksum for each resolved spec under a new CHECKSUMS section in the lockfile. If the locked spec does not resolve for the local platform, we preserve the locked checksum, similar to how we preserve specs. Checksum locking only makes sense on install. The compact index information is only available then. https://github.com/rubygems/rubygems/commit/bde37ca6bf
2023-10-13Removed examples for warning bundled gemsHiroshi SHIBATA
2023-10-09[rubygems/rubygems] Exempt default gem 'etc' in setup tests for rubies ↵Martin Emde
before 3.2 on windows https://github.com/rubygems/rubygems/commit/834ae8a29a
2023-10-03[rubygems/rubygems] 🚨 Rubocop LintingPeter Boling
https://github.com/rubygems/rubygems/commit/2851e051c3
2023-09-21[rubygems/rubygems] Stop bundler eagerly loading all specs with extsSamuel Giddins
We were setting the wrong `extension_dir` for git specs stubs Additionally, the call to `self.extension_dir` was loading the remote spec, which was avoidable since the stub had an extension dir (and in fact its #gem_build_complete_path does exactly what we want anyway) Finally, now set the base_dir when loading the remote_spec from a stub specification, since the git source sets the base dir for stubs based on where the spec _will_ be installed to, and we want to preserve that so the base_dir for the loaded spec & the stub are the same https://github.com/rubygems/rubygems/commit/a94acb465b
2023-09-01[rubygems/rubygems] Use assertion message strictlyHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/98da5b9826
2023-07-30[rubygems/rubygems] Use the dedicated method to convert file pathNobuyoshi Nakada
The dedicated method `File.path` to deal with pathname-like objects has been provided since ruby 1.9.0. Also adds a test for rubygems/rubygems#6837. https://github.com/rubygems/rubygems/commit/258c6eda80
2023-07-28Use Gem::BUNDLED_GEMS::SINCEHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/8126
2023-07-25[rubygems/rubygems] bin/rubocop -AHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/e8a4184429
2023-07-25[rubygems/rubygems] Extract Gem::BUNDLED_GEMS from BundlerHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/e30e86aa60
2023-07-25[rubygems/rubygems] Skip warnings if bundled gems is already loadedHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/9583a7eb82