summaryrefslogtreecommitdiff
path: root/spec/bundler/support/helpers.rb
AgeCommit message (Collapse)Author
2024-10-17Merge RubyGems-3.5.22 and Bundler-2.5.22Hiroshi SHIBATA
2024-09-25Merge RubyGems-3.5.20 and Bundler-2.5.20Hiroshi SHIBATA
2024-09-25Merge RubyGems-3.5.19 and Bundler-2.5.19Hiroshi SHIBATA
2024-09-25Merge RubyGems-3.5.17 and Bundler-2.5.17Hiroshi SHIBATA
2024-07-30Update RubyGems 3.5.16 and Bundler 2.5.16 for Ruby 3.3 (#11252)Hiroshi SHIBATA
* Merge RubyGems-3.5.12 and Bundler-2.5.12 * Merge RubyGems-3.5.13 and Bundler-2.5.13 * Merge RubyGems-3.5.14 and Bundler-2.5.14 * Merge RubyGems-3.5.15 and Bundler-2.5.15 * Merge RubyGems-3.5.16 and Bundler-2.5.16
2024-06-04Merge RubyGems 3.5.11 and Bundler 2.5.11 for Ruby 3.3 (#10870)Hiroshi SHIBATA
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2024-04-16Merge RubyGems 3.5.9 and Bundler 2.5.9 (Fixed CI at Ruby 3.3) (#10348)Hiroshi SHIBATA
* Merge RubyGems-3.5.6 and Bundler-2.5.6 * Merge RubyGems-3.5.7 and Bundler-2.5.7 * Merge RubyGems-3.5.8 and Bundler-2.5.8 * Partly reverted about https://github.com/rubygems/rubygems/pull/7483 * Merge RubyGems-3.5.9 and Bundler-2.5.9
2023-12-22Merge RubyGems-3.5.2 and Bundler-2.5.2Hiroshi SHIBATA
2023-12-13Normalize bundler bindirDavid Rodríguez
This makes bundler consistent with all other gems, and makes the default installation of Bundler in the release package look like any other bundler installation. Before (on preview3, for example), Bundler executable is installed at: lib/ruby/gems/3.3.0+0/gems/bundler-2.5.0.dev/libexec/bundle Now it's installed in the standard location: lib/ruby/gems/3.3.0+0/gems/bundler-2.5.0.dev/exe/bundle
2023-12-13[rubygems/rubygems] Load hax.rb before anything when ↵David Rodríguez
`BUNDLER_IGNORE_DEFAULT_GEM` set https://github.com/rubygems/rubygems/commit/111bd11c36
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
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] Let RuboCop target Ruby 3.0David Rodríguez
https://github.com/rubygems/rubygems/commit/70243b1d72
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-11-09[rubygems/rubygems] Explicitly pass install-dir when installing system gems ↵David Rodríguez
in Bundler specs We want to avoid any "user home" fallbacks, since that won't work with Bundler. So if there's a permissions issue during specs, it's best to raise immediately. https://github.com/rubygems/rubygems/commit/767a3e7533
2023-07-24[rubygems/rubygems] Refactor spec helpers for reading lockfilesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ea2a30ba08
2023-05-30Merge RubyGems/Bundler master from 4076391fce5847689bf2ec402b17133fe4e32285Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/7873
2023-02-21[rubygems/rubygems] Fix crash in pub grub involving empty rangesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0f168516f7 Notes: Merged: https://github.com/ruby/ruby/pull/7345
2023-02-09[rubygems/rubygems] Avoid crashing with a corrupted lockfileDaniel Colson
I did a bad thing (script that edits the Gemfile.lock directly) and ended up with a Gemfile.lock that was completely missing some indirect dependencies. While this is my fault and an error is reasonable, I noticed that the error got progressively less friendly in recent versions of bundler. Something similar came up in https://github.com/rubygems/rubygems/issues/6210, and this commit would have helped with that case as well (although we've already handled this a different way with #6219). Details: --- Back on Bundler 2.2.23, a corrupt lockfile like this would cause a helpful error: ``` Unable to find a spec satisfying minitest (>= 5.1) in the set. Perhaps the lockfile is corrupted? ``` Bundler 2.3.26 gave a helpful warning: ``` Warning: Your lockfile was created by an old Bundler that left some things out. Because of the missing DEPENDENCIES, we can only install gems one at a time, instead of installing 16 at a time. You can fix this by adding the missing gems to your Gemfile, running bundle install, and then removing the gems from your Gemfile. The missing gems are: * minitest depended upon by activesupport ``` But then continued on and crashed while trying to report the unmet dependency: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- NoMethodError: undefined method `full_name' for nil:NilClass lib/bundler/installer/parallel_installer.rb:127:in `block (2 levels) in check_for_unmet_dependencies' ... ``` Bundler 2.4.0 and up crash as above when jobs=1, but crash even harder when run in parallel: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- fatal: No live threads left. Deadlock? 3 threads, 3 sleeps current:0x00007fa6b6704660 main thread:0x00007fa6b6704660 * #<Thread:0x000000010833b130 sleep_forever> rb_thread_t:0x00007fa6b6704660 native:0x0000000108985600 int:0 * #<Thread:0x0000000108dea630@Parallel Installer Worker #0 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f67c0 native:0x0000700009a62000 int:0 * #<Thread:0x0000000108dea4a0@Parallel Installer Worker #1 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f63c0 native:0x0000700009c65000 int:0 <internal:thread_sync>:18:in `pop' tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:42:in `deq' ... ``` Changes --- This commit fixes the confusing thread deadlock crash by detecting if dependencies are missing such that we'll never be able to enqueue. When that happens we treat it as a failure so the install can finish. That gets us back to the `NoMethodError`, which this commit fixes by using a different warning in the case where no spec is found. https://github.com/rubygems/rubygems/commit/d73001a21d
2022-12-12Merge RubyGems/Bundler masterHiroshi SHIBATA
from https://github.com/rubygems/rubygems/commit/bfb0ae69776069155d2092702bfbb5a12617d85a Notes: Merged: https://github.com/ruby/ruby/pull/6906
2022-11-08[rubygems/rubygems] Add tests for universal Ruby with arch-specific prebuilt ↵Bo Anderson
gems https://github.com/rubygems/rubygems/commit/11229b16c3
2022-09-05Merge ↵Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/16c3535413afebcdbab7582c6017c27b5da8a8dc Notes: Merged: https://github.com/ruby/ruby/pull/6326
2022-08-29[rubygems/rubygems] Add platform :windows as a shortcut for all Windows ↵shields
platforms https://github.com/rubygems/rubygems/commit/f3c49ad3f7
2022-07-29Merge rubygems master from ↵Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/446cc57a7ccdf1924deb291be9571219e7ba8523 Notes: Merged: https://github.com/ruby/ruby/pull/6198
2022-07-08[rubygems/rubygems] Fix `simulate_windows` helperDavid Rodríguez
It should also set the proper class variable so that `Gem.win_platform?` returns true. https://github.com/rubygems/rubygems/commit/0fbf6904d1
2022-05-11[rubygems/rubygems] Fix error message on metadata mismatchesDavid Rodríguez
Previously we were removing not installable specs. However, if those are the only ones, that would result in a bad error message. If we still choose them as a last resort, Bundler will later check metadata right before installing a give a proper error. This is a regression of https://github.com/rubygems/rubygems/commit/565549260be5 and the fix is to revert that commit. https://github.com/rubygems/rubygems/commit/bc18912257
2022-05-11[rubygems/rubygems] Extract a `next_ruby_minor` helper method for specsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/66eae0ef1d
2022-02-28Merge RubyGems and Bundler masterHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/5606
2021-12-27[rubygems/rubygems] Don't add verbose flag so opaquely for realworld specsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/fa8455ef7c Notes: Merged: https://github.com/ruby/ruby/pull/5350
2021-12-27[rubygems/rubygems] Remove the rest of the `RUBY_VERSION` monkeypatchingDavid Rodríguez
Since we're at it. This generates a bunch of warnings and seems like a brittle way to test things, so let's get rid of it. https://github.com/rubygems/rubygems/commit/f5d45520e0 Notes: Merged: https://github.com/ruby/ruby/pull/5350
2021-12-23Merge RubyGems-3.3.1 and Bundler-2.3.1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/5325
2021-12-21Merge RubyGems-3.3.0 and Bundler-2.3.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/5317
2021-11-25[rubygems/rubygems] These method should be returning a stringDavid Rodríguez
https://github.com/rubygems/rubygems/commit/dc391f4d87
2021-07-07Sync RubyGems and Bundler with upstreamHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/4634
2021-07-07Sync latest bundler & rubygems development versionDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/4533
2021-05-11Sync bundler & rubygemsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/4367
2021-04-15Merge the master branch of BundlerHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/4383
2021-03-08Sync latest development version of bundler & rubygemsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/4143
2020-10-15Merge bundler-2.2.0.rc.2Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3659
2020-07-15Import remaining changesDavid Rodríguez
The "sync with commits" scripts failed to properly import these for some reason. Notes: Merged: https://github.com/ruby/ruby/pull/3275
2020-06-18[rubygems/rubygems] More portable PATH editionDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a6d50afad0 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Remove now unused "bang helpers"David Rodríguez
https://github.com/rubygems/rubygems/commit/84e4c58e83 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] s/gem_command!/gem_commandDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f52733f6a4 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Make helpers raise by defaultDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ade0c441d5 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-15Fix most exec specsDavid Rodríguez
The `gem_command` helper was failing to require `support/hax.rb`, which takes care of making sure rubygems actually picks up the right `ruby` executable under ruby-core setup (`ENV["RUBY"]`). This caused binstubs to be generated with a wrong shebang, and that caused `bundle exec` to not work. The error message was pretty confusing though due to https://bugs.ruby-lang.org/issues/16952. Notes: Merged: https://github.com/ruby/ruby/pull/3225
2020-06-05[rubygems/rubygems] Remove `forgotten_command_line_usages` from specsDavid Rodríguez
Instead, use the non-deprecated option except when specifically testing deprecated CLI flags. In that case, pass the flag directly and limit the specs to `bundler < 3`. https://github.com/rubygems/rubygems/commit/3d5e186241 Notes: Merged: https://github.com/ruby/ruby/pull/3184
2020-06-05[rubygems/rubygems] Make `forgotten_command_line_options` always "forget" ↵David Rodríguez
options https://github.com/rubygems/rubygems/commit/4d39338670 Notes: Merged: https://github.com/ruby/ruby/pull/3184
2020-06-05[rubygems/rubygems] Support running specs against a tarballDavid Rodríguez
When bundler specs are run from a ruby tarball (ruby-core does this), there's no git folder, so `git ls-files` fails. Support this case by making specs rely on the list of files from the bundler gemspec instead, and invert the spec that makes sure we ship the right set of files. As per the other quality specs, skip them in this case. https://github.com/rubygems/rubygems/commit/b28d5ec931 Notes: Merged: https://github.com/ruby/ruby/pull/3184
2020-06-05Revert "Fix a failure in bundle version with version outputs the version ↵Hiroshi SHIBATA
with build metadata" This reverts commit fcc8be0198a16cc5fa7d4827be0c781209b70f98. Notes: Merged: https://github.com/ruby/ruby/pull/3184
2020-05-25Fix a failure in bundle version with version outputs the version with build ↵Kazuhiro NISHIYAMA
metadata ``` 1) bundle version with version outputs the version with build metadata Failure/Error: expect(out).to match(/\ABundler version #{Regexp.escape(Bundler::VERSION)} \(\d{4}-\d{2}-\d{2} commit #{COMMIT_HASH}\)\z/) expected "Bundler version 2.2.0.dev (2020-05-25 commit )" to match /\ABundler version 2\.2\.0\.dev \(\d{4}-\d{2}-\d{2} commit (?-mix:unknown|[a-fA-F0-9]{7,})\)\z/ Diff: @@ -1,2 +1,2 @@ -/\ABundler version 2\.2\.0\.dev \(\d{4}-\d{2}-\d{2} commit (?-mix:unknown|[a-fA-F0-9]{7,})\)\z/ +"Bundler version 2.2.0.dev (2020-05-25 commit )" Commands: $ /home/user/snapshot-master/ruby -I/home/user/snapshot-master/spec/bundler -r/home/user/snapshot-master/spec/bundler/support/artifice/fail.rb -r/home/user/snapshot-master/spec/bundler/support/hax.rb /home/user/snapshot-master/tmp/1/gems/system/bin/bundle version Bundler version 2.2.0.dev (2020-05-25 commit ) # $? => 0 ```