summaryrefslogtreecommitdiff
path: root/lib/bundler
AgeCommit message (Collapse)Author
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-27[rubygems/rubygems] Add ignore_funding_requests config flagmoe
https://github.com/rubygems/rubygems/commit/ab302f72c9
2022-07-27[rubygems/rubygems] Don't use Pathname for creating extension dirDavid Rodríguez
Not sure why, but I run into the following flaky test failure ```` (...) Invoking `/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/4/gems/system/bin/bundle install` failed with output: ---------------------------------------------------------------------- --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` NameError: constant Pathname::FileUtils not defined FileUtils.mkpath(@path, mode: mode) ^^^^^^^^^ /Users/deivid/.asdf/installs/ruby/3.1.2/lib/ruby/3.1.0/pathname.rb:585:in `mkpath' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/shared_helpers.rb:103:in `filesystem_access' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/rubygems_gem_installer.rb:78:in `build_extensions' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/rubygems_gem_installer.rb:28:in `install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/source/rubygems.rb:207:in `install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/gem_installer.rb:54:in `install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/parallel_installer.rb:186:in `do_install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:62:in `apply_func' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:57:in `block in process_queue' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:54:in `loop' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:54:in `process_queue' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads' (...) ``` Whatever it was, this small change should fix it. https://github.com/rubygems/rubygems/commit/71d7503ce4
2022-07-27[rubygems/rubygems] Completely drop base parameter from indexDavid Rodríguez
This parameter was coupling the concept of lockfile with the index. I don't think it's necessary. Also I believe it's causing some flaky test failures, which might leak into realworld issues. They are like this: ```` Invoking `/opt/hostedtoolcache/Ruby/3.0.4/x64/bin/ruby -I/home/runner/work/rubygems/rubygems/bundler/spec -r/home/runner/work/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -r/home/runner/work/rubygems/rubygems/bundler/spec/support/hax.rb /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle lock` failed with output: ---------------------------------------------------------------------- --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` NoMethodError: undefined method `identifier' for #<Gem::Specification:0x00005639ad0db0a0 @extension_dir=nil, @full_gem_path=nil, @gem_dir=nil, @ignored=nil, @bin_dir=nil, @cache_dir=nil, @cache_file=nil, @doc_dir=nil, @ri_dir=nil, @spec_dir=nil, @spec_file=nil, @gems_dir=nil, @base_dir=nil, @loaded=false, @activated=false, @loaded_from=nil, @original_platform="ruby", @installed_by_version=nil, @autorequire=nil, @date=2022-07-25 00:00:00 UTC, @description="This is a completely fake gem, for testing purposes.", @email="foo@bar.baz", @homepage="http://example.com", @name="win32-process", @post_install_message=nil, @signing_key=nil, @summary="This is just a fake gem for testing", @version=#<Gem::Version "0.8.3">, @authors=["no one"], @bindir="bin", @cert_chain=[], @dependencies=[<Gem::Dependency type=:runtime name="ffi" requirements=">= 1.0.0">], @executables=[], @extensions=[], @extra_rdoc_files=[], @files=[], @licenses=[], @metadata={}, @platform="ruby", @rdoc_options=[], @require_paths=["lib"], @required_ruby_version=#<Gem::Requirement:0x00005639ad0dbc80 @requirements=[[">=", #<Gem::Version "0">]]>, @required_rubygems_version=#<Gem::Requirement:0x00005639ad0dba50 @requirements=[[">=", #<Gem::Version "0">]]>, @requirements=[], @rubygems_version="3.2.33", @specification_version=4, @test_files=[], @new_platform="ruby", @full_name="win32-process-0.8.3", @has_rdoc=true, @license=["MIT"] win32-process-0.8.3> /home/runner/work/rubygems/rubygems/bundler/tmp/rubygems/lib/rubygems/specification.rb:2116:in `method_missing' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/remote_specification.rb:115:in `method_missing' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/lazy_specification.rb:34:in `eql?' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:189:in `eql?' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:189:in `search_by_dependency' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:96:in `local_search' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:64:in `unsorted_search' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:60:in `search' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:179:in `results_for' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:113:in `search_for' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:216:in `block in sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:207:in `each' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:207:in `sort_by' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:207:in `sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb:60:in `block in sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb:59:in `sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:754:in `push_state_for_requirements' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:744:in `require_nested_dependencies_for' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:727:in `activate_new_spec' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:684:in `attempt_to_activate' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:254:in `process_topmost_state' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:182:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb:43:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:50:in `start' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:24:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/definition.rb:480:in `reresolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/definition.rb:283:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/definition.rb:181:in `resolve_remotely!' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/lock.rb:53:in `run' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:674:in `lock' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /home/runner/work/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' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:31:in `dispatch' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:25:in `start' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:48:in `block in <top (required)>' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:36:in `<top (required)>' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:23:in `load' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:23:in `<main>' ``` ```` I think the issue is that now we eagerly materialize some base specifications before resolving in order to give better errors if user specified an incorrect source in the Gemfile. This means that the key for the index hash will have heterogeneous specification objects (some LazySpecification, some real Specification), and `LazySpecification#eql?` is incompatible with that. By dropping the base parameter from the index, we should no longer have these heterogenous objects as hash keys. https://github.com/rubygems/rubygems/commit/dc179d41c3
2022-07-26Merge rubygems/bundler HEADHiroshi SHIBATA
Merge from https://github.com/rubygems/rubygems/commit/2af2520b4a7ab1c6eb1fdc3d2ef4d8c062d96ad7 Notes: Merged: https://github.com/ruby/ruby/pull/6184
2022-07-25[rubygems/rubygems] Bundler: add deprecation notice of viz to manTakuya Noguchi
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/0e1cbfa598
2022-07-23[rubygems/rubygems] Bundler: update command example in bundle-exec(1)Takuya Noguchi
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/28bf5c8b33
2022-07-22[rubygems/rubygems] Remove bundle show from obsolete commandsTakuya Noguchi
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/6c07c9427b
2022-07-20[rubygems/rubygems] Bundler: update primary source in man 5 gemfileTakuya Noguchi
Specifying multiple primary sources in top-level was deprecated in Bundler 1.13. As Bundler CLI uses primary source instead of global, "global source" is replaced with "primary source". Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net> Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/1dd1753f6e
2022-07-19[rubygems/rubygems] Bundler: change error/warning message for multiple ↵Takuya Noguchi
global sources Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/316564b8fc
2022-07-18[rubygems/rubygems] Improve error message when gems cannot be foundDavid Rodríguez
Include the source of each gem. https://github.com/rubygems/rubygems/commit/a0bed2fb79
2022-07-17[rubygems/rubygems] Show a proper error if extension dir is not writableDavid Rodríguez
Instead of showing the bug report template. https://github.com/rubygems/rubygems/commit/0c8b6f7dd5
2022-07-17[rubygems/rubygems] Unify some common codeDavid Rodríguez
https://github.com/rubygems/rubygems/commit/972e8ff965
2022-07-17[rubygems/rubygems] Don't call `#build_extensions` at all if there are no ↵David Rodríguez
extensions https://github.com/rubygems/rubygems/commit/5ecc0e0b31
2022-07-15[rubygems/rubygems] Use https protocol for URLs for config mirrorTakuya Noguchi
example.org is used mirror URL as an example, not to make access to a (potential) third-party domain. Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/31230f850c
2022-07-14[rubygems/rubygems] Fix misleading error if compact index cannot be copiedDavid Rodríguez
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>
2022-07-13Merge RubyGems and Bundler masterHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6124
2022-07-02[rubygems/rubygems] Account for default gems not having remote when cachingDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b93d4de2ff
2022-07-02[rubygems/rubygems] Move rubygems source specific logic to rubygems sourceDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6aa4c422a7
2022-06-30[rubygems/rubygems] Fix unintended double spaces in DSL documentationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b1826876d0
2022-06-30[rubygems/rubygems] Use modern style hashes in Gemfile DSL docsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/3f83236c02
2022-06-27[rubygems/rubygems] Print error messages just once in verbose modeDavid Rodríguez
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
2022-06-24Sync RubyGems & Bundler with upstream repoDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/6054
2022-06-23[rubygems/rubygems] Fix standalone script generation for statically linked ↵David Rodríguez
dev ruby https://github.com/rubygems/rubygems/commit/4d0d7b3c97
2022-06-23[rubygems/rubygems] Fix `bundle package --no-install` no longer skipping installDavid Rodríguez
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
2022-06-22[rubygems/rubygems] Bundler: fix man page for bundle-addTakuya Noguchi
Follows up https://github.com/rubygems/bundler/pull/5610 Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com> https://github.com/rubygems/rubygems/commit/0c4df2b8ca
2022-06-20[rubygems/rubygems] Fix extension paths in generated standalone scriptcitrusmoose
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
2022-06-20[rubygems/rubygems] Improve performance of Bundler::SpecSet#for by using ↵Josh Nichols
hash lookup of handled deps I was looking at (yet another) flamegraph in speedscope, and used the 'left hand heavy' and was shocked to realize that 0.5s of the 1.7s is spent in DepProxy#name. This method _only_ delegates the name to an underlying spec, so it's not complex at all. It seems to be of how often this line ends up calling it: next if handled.any?{|d| d.name == dep.name && (match_current_platform || d.__platform == dep.__platform) } || dep.name == "bundler" The `handled` array is built up as dependencies are handled, so this get slower as more dependencies are installed. This change changes how `handled` is track. Instead of just an array, I've tried using a Hash, with the key being a dep's name, and the value being a list of deps with that name. This means it's constant time to find the dependencies with the same name. I saw a drop from 1.7s to 1.0s against master, and from 0.95s to 0.24s when used with https://github.com/rubygems/rubygems/pull/5533 https://github.com/rubygems/rubygems/commit/844dac30d4
2022-06-11[rubygems/rubygems] Reuse package from the installer for extracting the ↵David Rodríguez
specification Previously we would instantiate two different packages and extract the specification from the package twice for each gem installed. We can reuse the installer for this so that we just need to do it once. https://github.com/rubygems/rubygems/commit/e454f850b1
2022-06-11[rubygems/rubygems] Move security exception handling to the only place using itDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ba975b3b7f
2022-06-11[rubygems/rubygems] Swapping should not raise any errorsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/600a9ac658
2022-06-11[rubygems/rubygems] Remove unclear commentDavid Rodríguez
This is the explanation of why we do the swapping, not of why we download the gem. https://github.com/rubygems/rubygems/commit/1a25eb7e7b
2022-06-11[rubygems/rubygems] `Gem::Specification.loaded_from` is already set by the ↵David Rodríguez
installer https://github.com/rubygems/rubygems/commit/796eebfdbf
2022-06-11[rubygems/rubygems] Refactor some more duplicated logicDavid Rodríguez
https://github.com/rubygems/rubygems/commit/9bd389e1b6
2022-06-11[rubygems/rubygems] Move `no_install` setting check to a more sensible placeDavid Rodríguez
It's only related to the `bundle cache` command, so it should be checked there. https://github.com/rubygems/rubygems/commit/cf749f8ffa
2022-06-11[rubygems/rubygems] No need to redownload if package already thereDavid Rodríguez
https://github.com/rubygems/rubygems/commit/285ccbc07e
2022-06-11[rubygems/rubygems] No need to overwrite path when there's a remoteDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d86fb2c316
2022-06-11[rubygems/rubygems] Remove another unnecessary requireDavid Rodríguez
https://github.com/rubygems/rubygems/commit/04e6a5ae31
2022-06-11[rubygems/rubygems] Simplify `Gem::Security::Exception` handlingDavid Rodríguez
These days all these errors are raised as `Gem::Security::Exception` so there's no need to do any matching on the exception message. https://github.com/rubygems/rubygems/commit/bd3403da57
2022-06-11[rubygems/rubygems] Remove unnecessary requireDavid Rodríguez
The `security_policies` method already requires it. https://github.com/rubygems/rubygems/commit/d19b088f2f
2022-06-11[rubygems/rubygems] Remove unnecessary `spec.remote` guardDavid Rodríguez
It's checked before calling the method already. https://github.com/rubygems/rubygems/commit/4eb00e9586
2022-06-11[rubygems/rubygems] Refactor ambiguous gems checkDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a00c79a4da
2022-06-02[rubygems/rubygems] Remove redundant bitwise ANDDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a20bac7924
2022-06-01[rubygems/rubygems] Fix `bundle remove` by invalidating cached ↵Ellen Marie Dash
`Bundle.defintion`. Prior to this commit, `bundle add GEM_NAME` updated the lockfile, but `bundle remove GEM_NAME` left GEM_NAME in the lockfile. By invalidating the cached `Bundle.definition`, the existing code handles that without a problem. https://github.com/rubygems/rubygems/commit/aa0794d6a9
2022-06-01[rubygems/rubygems] Fix generated standalone script for default gemsDavid Rodríguez
The installer is actually rewriting the spec's full gem path to be the one of the newly installed gem, however the accessor was not properly working for `StubSpecification` instances, and default gems are always of this type, because they are always present locally. Fix the accessor to properly update the underlying full specification. https://github.com/rubygems/rubygems/commit/efa41babfa
2022-06-01[rubygems/rubygems] Remove code that seems unnecessaryDavid Rodríguez
This change was never covered with a spec, and we have recently covered the case of partially deleted gems with specs and it works fine (installation is "auto-healed"). https://github.com/rubygems/rubygems/commit/6e66ee4235
2022-06-01[rubygems/rubygems] Skip duplicated dependency warning for gemspec dev depsDavid Rodríguez
Generally this warning is skipped for gemspec development dependencies. I think because it's common to override them in the Gemfile to change the source, for example. But the order of conditions was not correct and the warning was still being printed in one case. https://github.com/rubygems/rubygems/commit/da9d1d6a3f
2022-05-31[rubygems/rubygems] Give better conflict resolution adviceDavid Rodríguez
This alternative really uses only the Gemfile, and can never end up being absurd, because it will never be suggested when there's no lockfile, and it suggests deleting the lockfile. https://github.com/rubygems/rubygems/commit/5d154dd50e
2022-05-30[rubygems/rubygems] Fix crash when commenting out a mirror in configurationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2d99277328
2022-05-30[rubygems/rubygems] Fix crash when installing gems with symlinksDavid Rodríguez
If BUNDLE_PATH is configured to a symlinked path, installing gems with symlinks would crash with an error like this: ``` Gem::Package::SymlinkError: installing symlink 'man/man0/README.markdown' pointing to parent path /usr/home/stevewi/srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0/README.markdown of /srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0 is not allowed ``` This commit fixes the problem by changing the bundle path to be the realpath of the configured value, right after we're sure the path has been created. https://github.com/rubygems/rubygems/commit/3cd3dd142a