Граф коммитов

82 Коммитов

Автор SHA1 Сообщение Дата
David Rodríguez 12a5fa408b Sync RubyGems & Bundler with upstream repo 2022-06-24 10:52:02 +09:00
Hiroshi SHIBATA aeea88174d
Merge RubyGems and Bundler HEAD
125415593e
2022-05-20 17:32:19 +09:00
David Rodríguez 9d61c4519c [rubygems/rubygems] Also speed up the case when nothing changed
https://github.com/rubygems/rubygems/commit/fa0ac74883
2022-05-04 06:45:16 +09:00
David Rodríguez 2cf4318645 [rubygems/rubygems] Make looping more concise with `select`
https://github.com/rubygems/rubygems/commit/c43d5f979a
2022-05-04 06:45:15 +09:00
David Rodríguez ba4ec45cf1 [rubygems/rubygems] Don't converge specs in frozen mode
https://github.com/rubygems/rubygems/commit/ea09bc4680
2022-05-04 06:45:15 +09:00
Hiroshi SHIBATA 1056489ea3 Merge 3f7d0352e8 2022-04-28 19:08:49 +09:00
Alex Gittemeier 943efa8ca6 [rubygems/rubygems] Add newline to validate_platforms! message when platform is missing
When I run bundle install with BUNDLE_DEPLOYMENT=true in the environment
on a different platform than I usually do development, I get the
following output to the console (wrapped exactly as shown):

Your bundle only supports platforms ["x86_64-darwin-19"] but your local platform
is x86_64-linux. Add the current platform to the lockfile with `bundle lock
--add-platform x86_64-linux` and try again.

Because the way the message wraps, its not as simple as copying the
suggested command to the clipboard because it contains a newline:

    $ bundle lock
    Writing lockfile to [...]/Gemfile.lock
    $ --add-platform x86_64-linux

Adding a newline right before the command forces the command in the
error message to be on the same line, which facilitates copy-pasting the
command in the message.

https://github.com/rubygems/rubygems/commit/4cf6989b11
2022-03-08 03:40:30 +09:00
David Rodríguez 7b676b3ce3 [rubygems/rubygems] Fix corrupted lockfile when using `gemspec` and multiple sources
https://github.com/rubygems/rubygems/commit/9712262d90
2022-02-11 18:20:20 +09:00
David Rodríguez 517d7c3221 Sync latest Bundler & RubyGems 2022-02-01 08:09:23 +09:00
David Rodríguez c925d3b668 [rubygems/rubygems] Fix `force_ruby_platform` ignored when lockfile includes the current specific platform
https://github.com/rubygems/rubygems/commit/9ca371adf8
2022-01-26 13:09:31 +09:00
Hiroshi SHIBATA d22511fd75 Merge rubygems/rubygems HEAD.
Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a
2022-01-19 15:01:44 +09:00
Hiroshi SHIBATA d6311cb1ca Track RubyGems 3.4.0dev and Bundler 2.4.0dev 2021-12-27 10:45:36 +09:00
Hiroshi SHIBATA b0ad6cb371 Merge RubyGems-3.3.2 and Bundler-2.3.2 2021-12-24 10:35:31 +09:00
Hiroshi SHIBATA fff9b45fa9
Reverts the accidental commits for rubygems/bundler.
We stay to the stable version for releasing Ruby 3.1.0.

  Revert commits:
    b86a7ba492
    ef973aa7aa
2021-12-22 07:52:59 +09:00
David Rodríguez b86a7ba492 [rubygems/rubygems] Fix error when gem specified twice in gemfile under different platforms
https://github.com/rubygems/rubygems/commit/83bc87ca98
2021-12-22 03:12:57 +09:00
Hiroshi SHIBATA 69dc2ea465 Merge RubyGems-3.3.0 and Bundler-2.3.0 2021-12-21 15:27:05 +09:00
David Rodríguez 0e60bc118b [rubygems/rubygems] Ignore dependencies not actually locked from frozen check
Only needed if there can be no explicit global source (bundler < 3).

https://github.com/rubygems/rubygems/commit/73923f4af5
2021-12-10 19:09:55 +09:00
David Rodríguez 0073f624f0 [rubygems/rubygems] Don't unnecessarily loop twice through dependencies
https://github.com/rubygems/rubygems/commit/06b4a7994d
2021-12-03 20:00:51 +09:00
David Rodríguez 4c5e862434 [rubygems/rubygems] Improve source gemfile/lockfile equivalence checks
Since we no longer have multiple global sources, each top level dependency is
always pinned to a single source, so it makes little sense to talk about
adding or removing a source. Instead, source changes always mean to
change the source one or more dependencies are pinned to. This logic can
now be much simpler.

https://github.com/rubygems/rubygems/commit/f1d33fa0df
2021-12-03 20:00:51 +09:00
David Rodríguez 7d974cc56f [rubygems/rubygems] Don't overwrite locked dependency sources too early
Otherwise we hide some useful message about dependency source changes.

https://github.com/rubygems/rubygems/commit/c926673c5b
2021-12-03 20:00:50 +09:00
David Rodríguez aa87780f8f [rubygems/rubygems] Fix incorrect order in changed sources message
https://github.com/rubygems/rubygems/commit/6f1b5f68de
2021-12-03 20:00:49 +09:00
David Rodríguez ca65f7bb8a [rubygems/rubygems] Remove unnecessary code
Somehow this is trying to relax frozen mode constraints for path
sources. It doesn't make sense to me and it's not covered by any spec so
I'm killing it.

https://github.com/rubygems/rubygems/commit/17c978e161
2021-12-03 20:00:49 +09:00
David Rodríguez d19c266b49 [rubygems/rubygems] Reuse `locked_dependencies` helper
It makes the code more consistent with the above line.

https://github.com/rubygems/rubygems/commit/f28d05a548
2021-12-03 20:00:48 +09:00
David Rodríguez 901a257533 [rubygems/rubygems] Reformat for consistency with the above line
https://github.com/rubygems/rubygems/commit/11193be3f1
2021-12-03 20:00:47 +09:00
David Rodríguez 906b95780f [rubygems/rubygems] Remove unnecessary nil checks
https://github.com/rubygems/rubygems/commit/d047b8935d
2021-12-03 20:00:47 +09:00
Hiroshi SHIBATA 0b53a8895f
Merge rubygems master fd676ac464491afaa0baf5435cb11b3f86229cbd 2021-12-01 11:00:10 +09:00
David Rodríguez 59439446d9 [rubygems/rubygems] Fix missing locked specs when depended on other platform
https://github.com/rubygems/rubygems/commit/0396e899db
2021-11-27 05:31:54 +09:00
David Rodríguez 39c4673e3c [rubygems/rubygems] Previous logic can mostly go now
https://github.com/rubygems/rubygems/commit/3241b34055
2021-11-19 10:12:11 +09:00
David Rodríguez 80f39d78df [rubygems/rubygems] Allow `bundle update` to downgrade gems by changing the Gemfile
https://github.com/rubygems/rubygems/commit/6a19cca7e5
2021-11-19 10:12:10 +09:00
David Rodríguez 55f574136c [rubygems/rubygems] Extract a converge_specs method for later reusing it
https://github.com/rubygems/rubygems/commit/e896e63ac3
2021-11-19 10:12:09 +09:00
David Rodríguez 2730e45f45 [rubygems/rubygems] Avoid unnecessary loop
https://github.com/rubygems/rubygems/commit/afaf868b68
2021-11-19 10:12:09 +09:00
Hiroshi SHIBATA f3bda8987e
Merge the master branch of rubygems repo
Picked from 4b498709a0
2021-11-16 20:19:13 +09:00
David Rodríguez 4e7e057692 [rubygems/rubygems] Memoize materialized specs when requiring `bundler/setup`
Calling `Bundler.definition.specs` will memoize materialized specs.
However, requiring `bundler/setup` will end up materializing the same
set of specs, but not memoize them.

This change makes things consistent.

https://github.com/rubygems/rubygems/commit/e4c2b52824
2021-11-01 02:01:36 +09:00
David Rodríguez 853004e04d [rubygems/rubygems] Fix `bundle install` crash due to an incorrectly incomplete resolve
In case we have a corrupted lockfile that claims to support a platform, but
it's missing platform specific gems for it, bundler has a check that
detects the situation and forces a re-resolve. The result of this check
is kept under the `@locked_specs_incomplete_for_platformn` instance
variable in `Definition`.

The installer, however, calls `Definition#nothing_changed?` before this
instance variable has been filled, so the result of it is actually
incorrect here since it will claim that nothing has changed, but
something has changed (locked specs are incomplete for the current
platform).

The consequence of this incorrect result is that the installer thinks it
can go on without re-resolving, resulting in the incomplete resolution
from the lockfile being used, and in a crash being triggered due to
that.

The solution is to make sure the `@locked_specs_incomplete_for_platform`
instance variable is filled before `nothing_changed?` gets called.
Moving it to `initialize` makes the most sense, not because it's the
best place for it (we can refactor this later), but because all of the
other "outdated definition" checks are already set there.

https://github.com/rubygems/rubygems/commit/708afdd789
2021-10-13 21:16:40 +09:00
David Rodríguez d1e6f2226b [rubygems/rubygems] No need to use converged dependencies either
This is exclusively about the lockfile.

https://github.com/rubygems/rubygems/commit/d6c6d040cd
2021-10-13 21:16:40 +09:00
David Rodríguez ec5f732b7d [rubygems/rubygems] Extract `locked_dependencies` helper
https://github.com/rubygems/rubygems/commit/7326d47530
2021-10-13 21:16:39 +09:00
David Rodríguez 15f50d3bed [rubygems/rubygems] Simplify the incomplete locked specs for platform check
It doesn't really need converged specs, since it's only about the
lockfile.

https://github.com/rubygems/rubygems/commit/9cd6224b5e
2021-10-13 21:16:39 +09:00
David Rodríguez 3683781f53 [rubygems/rubygems] Restore working `bundle check` behaviour
As part of a recent bug fix where bundler was accidentally hitting the
network when not supposed to, I made some refactoring, and the commit I'm
reverting here
(d74830d00b)
was some cleanup that those refactorings allowed according to "past me".

That was completely wrong, `bundle check` should never consider cached
gems, only installed gems, so the code that was removed was necessary.

https://github.com/rubygems/rubygems/commit/5483e98305
2021-08-31 19:06:14 +09:00
David Rodríguez 97de4c02ad [rubygems/rubygems] Remove now unnecessary code
https://github.com/rubygems/rubygems/commit/d74830d00b
2021-08-31 19:06:14 +09:00
David Rodríguez 7116ec6199 [rubygems/rubygems] Requiring `bundler/setup` shouldn't try to hit the network
https://github.com/rubygems/rubygems/commit/06f5efce02
2021-08-31 19:06:14 +09:00
David Rodríguez 1b9b41472f [rubygems/rubygems] Completely avoid replacing sources when in multisource compatibility mode
Since this mode is only enabled in frozen mode, it's fine to use the
lockfile and means we don't have to "prepare" the replacement for
materialization.

https://github.com/rubygems/rubygems/commit/dda01b288e
2021-08-31 19:06:14 +09:00
David Rodríguez 9a25a98c6b [rubygems/rubygems] Show all missing gems when using a bundle before installing it
Not only the first one that's missing.

This also allows us to simplify things.

https://github.com/rubygems/rubygems/commit/69718a9509
2021-08-31 19:06:14 +09:00
David Rodríguez d298ef40f2 [rubygems/rubygems] Small refactor by DRYing up some logic
https://github.com/rubygems/rubygems/commit/c7e3c092e1
2021-08-31 19:06:14 +09:00
Daniel Niknam bd8daa8523
[rubygems/rubygems] Remove the warning for not defining a gem server source
Bundler has deprecated gemfiles without a global source and this feature
is now obsolete. `Bundler::Definition#has_rubygems_remotes?` is removed
because it's not used anymore.

https://github.com/rubygems/rubygems/commit/d29dd2cb7b
2021-07-27 09:25:57 +09:00
Hiroshi SHIBATA 896bbb9fad Merge RubyGems/Bundler master from 8459ebd6ad65ce3397233416dc64083ae7572bb9 2021-07-14 10:48:07 +09:00
Hiroshi SHIBATA c082c6eb7c Sync RubyGems and Bundler with upstream 2021-07-07 15:31:52 +09:00
David Rodríguez 6e2240a2f9 Sync latest bundler & rubygems development version 2021-07-07 13:30:20 +09:00
David Rodríguez 5b0abba931 Sync bundler & rubygems 2021-05-11 11:29:41 +09:00
Hiroshi SHIBATA ed149dbf46 Merge the master branch of Bundler 2021-04-15 15:36:15 +09:00
David Rodríguez 53468cc111 Sync latest development version of bundler & rubygems 2021-03-08 13:47:35 +09:00