aboutsummaryrefslogtreecommitdiffstats
path: root/spec/bundler
Commit message (Collapse)AuthorAgeFilesLines
* Resync Bundler & RubyGemsDavid Rodríguez2022-09-0812-54/+160
|
* [rubygems/rubygems] Fix `set` not being found when running specs on dev rubiesDavid Rodríguez2022-09-061-0/+3
| | | | https://github.com/rubygems/rubygems/commit/c5b2960388
* [rubygems/rubygems] Add `syntax_suggest` to exemption list in setup specsDavid Rodríguez2022-09-061-0/+1
| | | | https://github.com/rubygems/rubygems/commit/f9a51e4380
* [rubygems/rubygems] Remove no longer needed `fiddle` hacksDavid Rodríguez2022-09-054-13/+0
| | | | | | | RubyInstaller has released patch versions backporting their changes to not load `fiddle` on boot, so all these are no longer necessary. https://github.com/rubygems/rubygems/commit/05a307deb2
* Merge ↵Hiroshi SHIBATA2022-09-0516-467/+130
| | | | https://github.com/rubygems/rubygems/commit/16c3535413afebcdbab7582c6017c27b5da8a8dc
* [rubygems/rubygems] Feature: `bundle add` supports `--path` optionMike Dalessio2022-09-051-0/+9
| | | | https://github.com/rubygems/rubygems/commit/32bee01fbe
* [rubygems/rubygems] Fix resolution hanging on musl platformsDavid Rodríguez2022-09-052-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | After recent musl support was added, Bundler started hanging in musl platforms. I identified the issue where valid candidates were being filtered out because their platform was specified as a string, and thus `Gem::Platform.match_spec?` which under the hood ends up calling `Gem::Platform#===` would return `nil`, because it does not support comparing platforms to strings. In particular, `Bundler::EndpointSpecification`'s platform coming from the API was not instantiated as a `Gem::Platform`, hence the issue. Also, this spec surfaced another issue where a bug corrected in `Gem::Platform#match_platforms` had not been yet backported to Bundler. So this commit also backports that to get the spec green across RubyGems versions. Finally, the fix in `Bundler::EndpointSpecification` made a realworld spec start failing. This spec was faking out `rails-4.2.7.1` requirement on Bundler in the `Gemfile.lock` file to be `>= 1.17, < 3` when the real requirement is `>= 1.17, < 2`. Due to the bug in `Bundler::EndpointSpecification`, the real requirement provided by the compact index API (recorded with VCR) was being ignored, and the `Gemfile.lock` fake requirement was being used, which made the spec pass. This is all expected, and to fix the issue I changed the spec to be really realworld and don't fake any Bundler requirements. https://github.com/rubygems/rubygems/commit/faf4ef46bc
* [rubygems/rubygems] Add platform :windows as a shortcut for all Windows ↵shields2022-08-2911-22/+74
| | | | | | platforms https://github.com/rubygems/rubygems/commit/f3c49ad3f7
* [rubygems/rubygems] Bundler: make to_lock consistent between ↵Aleksandr Varnin2022-08-281-0/+37
| | | | | | Gem::Dependency and Bundler::Dependency https://github.com/rubygems/rubygems/commit/971d57cf5a
* [rubygems/rubygems] Fix another regression for sorbetDavid Rodríguez2022-08-251-0/+71
| | | | | | | | | | | | | Recently a changed was introduced to update the resolver platforms after it has been created, in order to remove the "ruby" platform from it if it's to be removed from the lockfile. However, it did not update the `@resolving_only_for_ruby` instance variable in that case, so the resolver was not properly doing the right thing anymore. To fix this, I tweaked the code to restore not changing resolver platforms after the resolver has been instantiated. https://github.com/rubygems/rubygems/commit/8fbc30a1d0
* [rubygems/rubygems] Backport non-gnu libc on linux platform matching to BundlerDavid Rodríguez2022-08-242-0/+77
| | | | | | https://github.com/rubygems/rubygems/commit/703373b41f Co-authored-by: Loic Nageleisen <loic.nageleisen@gmail.com>
* [rubygems/rubygems] Bundler: avoid use of "can not" in spec literalsTakuya Noguchi2022-08-232-3/+3
| | | | | | Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/73b5cf9bd1
* [rubygems/rubygems] Bundler: update the link suggested on error with the new oneTakuya Noguchi2022-08-231-2/+2
| | | | | | | | Also typo is fixed. Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/9c1ea52ddf
* Merge rubygems/bundler HEADHiroshi SHIBATA2022-08-232-0/+87
| | | | Pick from https://github.com/rubygems/rubygems/commit/6b3a5a9ab0453463381a8164efb6298ea9eb776f
* [rubygems/rubygems] Fix conservative update downgrading top level gemsDavid Rodríguez2022-08-231-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | When `--conservative` is passed, explicit unlocks are set for top level gems via `@unlock[:gems]`, so that only those particular gems are allowed to be updated. When we compute the "base resolve" from the lockfile (the set of gems whose versions should be kept pinned by the resolver), we always exclude gems explicitly unlocked through `@unlock[:gems]` from it. This is done by the `converge_specs` method. However, the `converge_specs` method is also used for figuring out additional lower bound requirements from the lockfile. But in this case, even if gems are explicitly unlock in `@unlock[:gems]`, we still want to add the additional requirement, so that gems are not downgraded by the resolver. So the solution is to move the line filtering out gems in `@unlock[:gems]` from the `converged_specs` method out of that method, so that it only applies for computing the "base resolve", but not the addtional lower bound requirements. https://github.com/rubygems/rubygems/commit/405119bd7b
* [rubygems/rubygems] Make `compact_index_api_missing` server more strictDavid Rodríguez2022-08-231-6/+1
| | | | | | The compact index should not request any marshaled gemspecs whatsoever. https://github.com/rubygems/rubygems/commit/6dbd44d0c0
* [rubygems/rubygems] Fix edge case where `bundler/inline` unintentionally ↵David Rodríguez2022-08-211-0/+14
| | | | | | | | | skips install If the application has the `no_install` setting set for `bundle package`, then `bundler/inline` would silently skip installing any gems. https://github.com/rubygems/rubygems/commit/7864f49b27
* [rubygems/rubygems] Fix `bundle platform` crash when there's a lockfile with ↵David Rodríguez2022-08-211-0/+23
| | | | | | no Ruby locked https://github.com/rubygems/rubygems/commit/49fc54e87d
* [rubygems/rubygems] Fix Ruby platform incorrectly removed on `bundle update`David Rodríguez2022-08-151-0/+41
| | | | https://github.com/rubygems/rubygems/commit/0d321c9e3a
* [rubygems/rubygems] Fix yanked gems being unintentionally update when other ↵David Rodríguez2022-08-062-1/+58
| | | | | | | | | | | | | gems are unlocked This is a regression from a change intended to raise errors when user puts a gem under an incorrect source in the Gemfile by mistake. To fix the issue, we revert the change that caused it and implement it in a different way that restores the resolver independency from real specifications. Now it deals only with names and versions and does not try to materialize anything into real specifications before resolving. https://github.com/rubygems/rubygems/commit/d2bf1b86eb
* [rubygems/rubygems] Automatically remove "ruby" from lockfile if incompleteDavid Rodríguez2022-08-051-0/+71
| | | | https://github.com/rubygems/rubygems/commit/69d0b4e10b
* [rubygems/rubygems] Fix `bundle outdated --strict`David Rodríguez2022-08-031-0/+16
| | | | | | | | | It should be an alias of `--filter-strict`. `--update-strict` is essentially a dummy option with no special behavior associated and should be deprecated. https://github.com/rubygems/rubygems/commit/ec1e5d83c8
* [rubygems/rubygems] Fix conservative updates regardless of `--strict`David Rodríguez2022-08-031-98/+96
| | | | https://github.com/rubygems/rubygems/commit/c9a1d69a8d
* Merge rubygems/bundler HEADHiroshi SHIBATA2022-08-034-7/+7
| | | | Pick from https://github.com/rubygems/rubygems/commit/8331e63263081a6aa690d8025d2957f30c4e814a
* [rubygems/rubygems] Preserve the previous behavior of raising an error when ↵David Rodríguez2022-08-021-37/+50
| | | | | | in frozen mode https://github.com/rubygems/rubygems/commit/6e35a6edfe
* [rubygems/rubygems] Check for errors in error streamDavid Rodríguez2022-08-021-5/+5
| | | | https://github.com/rubygems/rubygems/commit/7b0f7804f2
* [rubygems/rubygems] Don't discard candidates matching ruby metadataDavid Rodríguez2022-08-022-4/+65
| | | | | | | | | | Do dependency filtering and materialization in one step. Before, dependency filtering would not consider ruby metadata so it would discard variants that end up not being materializable in the end. https://github.com/rubygems/rubygems/commit/0c0d40d417 Co-authored-by: Ian Ker-Seymer <ian.kerseymer@shopify.com>
* [rubygems/rubygems] Fix crash when running `bundle outdated` in debug modeDavid Rodríguez2022-08-011-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously it would crash like this: ```` $ /Users/deivid/.asdf/installs/ruby/3.1.2/bin/ruby -I/Users/deivid/Code/rubygems/rubygems/bundler/spec -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/hax.rb /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle outdated --patch --strict --filter-patch Running `bundle outdated --filter-patch --patch --strict` with bundler 2.4.0.dev Found changes from the lockfile, re-resolving dependencies because bundler is unlocking Using a local server, bundler won't use the CompactIndex API Fetching source index from file:///Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/remote4/ Resolving dependencies... --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` RuntimeError: LazySpecification has not been materialized yet (calling :loaded_from []) /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/lazy_specification.rb:147:in `method_missing' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:214:in `gem_column_for' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:174:in `block in print_gems_table' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:173:in `map' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:173:in `print_gems_table' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:123:in `run' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:420:in `outdated' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:31:in `dispatch' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:25:in `start' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:48:in `block in <top (required)>' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:36:in `<top (required)>' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `load' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `<main>' ``` ```` https://github.com/rubygems/rubygems/commit/23c46f3b57
* [rubygems/rubygems] Fix comment incorrectly copied from another specDavid Rodríguez2022-08-011-2/+1
| | | | https://github.com/rubygems/rubygems/commit/9be5eae9cf
* [rubygems/rubygems] Make `--standalone` play nice with `--local`David Rodríguez2022-07-301-0/+28
| | | | | | | | I'm not sure if using relative paths in the generated script is best for this case, since it makes the script not movable, but that can be improved later. https://github.com/rubygems/rubygems/commit/7f5bdbb842
* Merge rubygems master from ↵Hiroshi SHIBATA2022-07-2911-44/+85
| | | | https://github.com/rubygems/rubygems/commit/446cc57a7ccdf1924deb291be9571219e7ba8523
* [rubygems/rubygems] Add ignore_funding_requests config flagmoe2022-07-271-0/+27
| | | | https://github.com/rubygems/rubygems/commit/ab302f72c9
* [rubygems/rubygems] Use main as default branch for Bundler specsDavid Rodríguez2022-07-2715-61/+62
| | | | https://github.com/rubygems/rubygems/commit/482077d185
* Merge rubygems/bundler HEADHiroshi SHIBATA2022-07-267-17/+88
| | | | Merge from https://github.com/rubygems/rubygems/commit/2af2520b4a7ab1c6eb1fdc3d2ef4d8c062d96ad7
* [rubygems/rubygems] Bundler: change error/warning message for multiple ↵Takuya Noguchi2022-07-191-3/+3
| | | | | | | | global sources Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/316564b8fc
* [rubygems/rubygems] Improve error message when gems cannot be foundDavid Rodríguez2022-07-181-2/+2
| | | | | | Include the source of each gem. https://github.com/rubygems/rubygems/commit/a0bed2fb79
* [rubygems/rubygems] bundler: fix typo in inline RuboCop configTakuya Noguchi2022-07-171-1/+1
| | | | | | Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/e11f5a143b
* [rubygems/rubygems] Show a proper error if extension dir is not writableDavid Rodríguez2022-07-171-0/+30
| | | | | | Instead of showing the bug report template. https://github.com/rubygems/rubygems/commit/0c8b6f7dd5
* [rubygems/rubygems] Fix misleading error if compact index cannot be copiedDavid Rodríguez2022-07-141-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if `~/.bundle/cache/compact_index/rubygems.org.*/version` were owned by root with read-only access, `bundle install` would fail with a misleading error message. For example: ``` There was an error while trying to write to `/tmp/bundler-compact-index-20220711-1823-npllre/versions`. It is likely that you need to grant write permissions for that path. ``` This happened because the EACCESS error was caught by `SharedHelpers.filesystem_access`, which makes it look like the target directory is at fault instead of the source. We can't simply drop this guard because that causes the opposite problem: the permission error appears to come from the source instead of the target, since `CompactIndexClient::Cache#lines` also wraps read access errors. Instead, bring a minimal implementation of `FileUtils.cp` and nest calls to `SharedHelpers.filesystem_access` properly. https://github.com/rubygems/rubygems/commit/320822c070 Co-authored-by: Stan Hu <stanhu@gmail.com>
* Merge RubyGems and Bundler masterHiroshi SHIBATA2022-07-1321-164/+394
|
* [rubygems/rubygems] Fix `simulate_windows` helperDavid Rodríguez2022-07-082-0/+8
| | | | | | | It should also set the proper class variable so that `Gem.win_platform?` returns true. https://github.com/rubygems/rubygems/commit/0fbf6904d1
* [rubygems/rubygems] Account for default gems not having remote when cachingDavid Rodríguez2022-07-021-0/+12
| | | | https://github.com/rubygems/rubygems/commit/b93d4de2ff
* [rubygems/rubygems] Print error messages just once in verbose modeDavid Rodríguez2022-06-272-11/+30
| | | | | | | | | When running a command with the `--verbose` flag that ends up raising a `BundlerError`, Bundler will unnecessarily print the error twice. This commit fixes the issue by removing the duplicate logging. https://github.com/rubygems/rubygems/commit/689004a164
* [rubygems/rubygems] Fix pending Bundler specsDavid Rodríguez2022-06-269-12/+16
| | | | | | | | | | | | | | | | | | | When testing under the ruby/ruby setup, mkmf.rb needs to the `$extout` global variable set properly. This is because, in this particular case, the `ruby.h` header needed to compile extensions is constructed from `$(extout)/include($arch)/ruby/config.h` but `$extout` is not set by default. I tried to fix this in mkmf.rb itself but I couldn't figure it. But setting it externally to workaround the issue fixes the specs, so I'll start with that. Also setting it externally causes issues when running specs upstream against Ruby 2.3 (I guess because of some difference with Ruby 2.3 mkmf.rb implementation). So I'm avoiding doing it on Ruby 2.3 to woraround that. https://github.com/rubygems/rubygems/commit/d782984585
* Sync RubyGems & Bundler with upstream repoDavid Rodríguez2022-06-243-14/+14
|
* [rubygems/rubygems] Fix standalone script generation for statically linked ↵David Rodríguez2022-06-231-5/+23
| | | | | | dev ruby https://github.com/rubygems/rubygems/commit/4d0d7b3c97
* [rubygems/rubygems] Fix `bundle package --no-install` no longer skipping installDavid Rodríguez2022-06-231-1/+1
| | | | | | | | | | | | This is a regression from https://github.com/rubygems/rubygems/commit/cf749f8ffabd. The funny thing is that we have a spec for this feature, so it was unclear how we regressed here. It turns out there was a bug in one of our negative matchers checking that gems ARE NOT included in a bundle. This commit fixes the bug in the negative matcher and reverts https://github.com/rubygems/rubygems/commit/cf749f8ffabd (with a slightly simpler diff). https://github.com/rubygems/rubygems/commit/3f9a4ff32a
* [rubygems/rubygems] Fix extension paths in generated standalone scriptcitrusmoose2022-06-201-1/+2
| | | | | | | | | The paths for extensions of gems would contain the hardcoded ruby version on which the extension was built. This will replace it with runtime ruby version like the parent version directory. It will make the standalone script compatible between different ruby version installations. https://github.com/rubygems/rubygems/commit/a9dae93d5d
* [rubygems/rubygems] Unset ENV set by official Ruby docker imagesDavid Rodríguez2022-06-171-0/+2
| | | | | | So that it does not interfere with our specs. https://github.com/rubygems/rubygems/commit/1029714e21
* [rubygems/rubygems] Revert "Support running specs with asdf version manager"David Rodríguez2022-06-151-10/+1
| | | | | | This reverts commit https://github.com/rubygems/rubygems/commit/4b2d09af5bc7. https://github.com/rubygems/rubygems/commit/90ca7a7163