<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/bundler/resolver/package.rb, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[rubygems/rubygems] Fix truffleruby failing to install sorbet-static when there's no lockfile</title>
<updated>2025-07-30T02:19:26+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-07-25T13:24:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e42f1aaa5aa77b51f6c590a23be59cd61776ae2d'/>
<id>e42f1aaa5aa77b51f6c590a23be59cd61776ae2d</id>
<content type='text'>
The generic Ruby platform was getting unconditionally added in
truffleruby, preventing resolution in situations where there's no
generic ruby version (sorbet-static). Instead, the generic platform
should be considered per dependency, not globally.

https://github.com/rubygems/rubygems/commit/a96afc5351
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The generic Ruby platform was getting unconditionally added in
truffleruby, preventing resolution in situations where there's no
generic ruby version (sorbet-static). Instead, the generic platform
should be considered per dependency, not globally.

https://github.com/rubygems/rubygems/commit/a96afc5351
</pre>
</div>
</content>
</entry>
<entry>
<title>Move most of Bundler::GemHelpers to Gem::Platform</title>
<updated>2025-06-06T01:22:18+00:00</updated>
<author>
<name>Samuel Giddins</name>
<email>segiddins@segiddins.me</email>
</author>
<published>2025-05-18T15:37:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c0a1e877b3c0c5dd69bb634262bd4e73a07eb27e'/>
<id>c0a1e877b3c0c5dd69bb634262bd4e73a07eb27e</id>
<content type='text'>
This will help centralize wheel platform selection logic eventually

Signed-off-by: Samuel Giddins &lt;segiddins@segiddins.me&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will help centralize wheel platform selection logic eventually

Signed-off-by: Samuel Giddins &lt;segiddins@segiddins.me&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix locked gems being upgraded when locked dependencies are incorrect</title>
<updated>2025-02-18T03:12:51+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-02-12T14:45:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c77354157f7a0af8de5f16dc1b4f352f4bc1402f'/>
<id>c77354157f7a0af8de5f16dc1b4f352f4bc1402f</id>
<content type='text'>
Resolver had internal logic to prioritize locked versions when sorting
versions, however part of it was not being actually hit because of how
unlocking worked in the resolver: a package was allow to be unlocked
when that was explicit requested or when the list of unlocks was empty.
That did not make a lot of sense and other cases were working because
the explicit list of unlocks was getting "artificially filled".

Now we consider a package unlocked when explicitly requested (`bundle
update &lt;package&gt;`), or when everything is being unlocked (`bundle
install` with no lockfile or `bundle update`).

This makes things simpler and gets the edge case added as a test case
working as expected.

https://github.com/rubygems/rubygems/commit/b8e55087f0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Resolver had internal logic to prioritize locked versions when sorting
versions, however part of it was not being actually hit because of how
unlocking worked in the resolver: a package was allow to be unlocked
when that was explicit requested or when the list of unlocks was empty.
That did not make a lot of sense and other cases were working because
the explicit list of unlocks was getting "artificially filled".

Now we consider a package unlocked when explicitly requested (`bundle
update &lt;package&gt;`), or when everything is being unlocked (`bundle
install` with no lockfile or `bundle update`).

This makes things simpler and gets the edge case added as a test case
working as expected.

https://github.com/rubygems/rubygems/commit/b8e55087f0
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Extract `SpecSet#version_for`</title>
<updated>2025-01-14T03:24:37+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-01-09T19:35:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ae75c8877a0f9e635026ac39d52b012a0b019020'/>
<id>ae75c8877a0f9e635026ac39d52b012a0b019020</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/a76fd6d3bf
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/a76fd6d3bf
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix `--prefer-local` flag</title>
<updated>2024-08-22T11:48:32+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-08-19T19:53:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2569413b1cb9765d0e31fc8dcf0e674d428bb4e7'/>
<id>2569413b1cb9765d0e31fc8dcf0e674d428bb4e7</id>
<content type='text'>
The original implementation of this flag was too naive and all it did
was restricting gems to locally installed versions if there are any
local versions installed.

However, it should be much smarter. For example:

* It should fallback to remote versions if locally installed version
  don't satisfy the requirements.
* It should pick locally installed versions even for subdependencies not
  yet discovered.

This commit fixes both issues by using a smarter approach similar to how
we resolve prereleases:

* First resolve optimistically using only locally installed gems.
* If any conflicts are found, scan those conflicts, allow remote
  versions for the specific gems that run into conflicts, and
  re-resolve.

https://github.com/rubygems/rubygems/commit/607a3bf479

Co-authored-by: Gourav Khunger &lt;gouravkhunger18@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The original implementation of this flag was too naive and all it did
was restricting gems to locally installed versions if there are any
local versions installed.

However, it should be much smarter. For example:

* It should fallback to remote versions if locally installed version
  don't satisfy the requirements.
* It should pick locally installed versions even for subdependencies not
  yet discovered.

This commit fixes both issues by using a smarter approach similar to how
we resolve prereleases:

* First resolve optimistically using only locally installed gems.
* If any conflicts are found, scan those conflicts, allow remote
  versions for the specific gems that run into conflicts, and
  re-resolve.

https://github.com/rubygems/rubygems/commit/607a3bf479

Co-authored-by: Gourav Khunger &lt;gouravkhunger18@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix generic platform gems getting incorrectly removed when locked for a specific platform</title>
<updated>2024-07-09T16:34:09+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-07-04T16:22:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=140d8318dbafe2c7c112651389da0b3ef4fd8424'/>
<id>140d8318dbafe2c7c112651389da0b3ef4fd8424</id>
<content type='text'>
If they are already in the lockfile as the most specific variant for a
platform, we shouldn't change that unless explicitly unlocking.

https://github.com/rubygems/rubygems/commit/a901660498
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If they are already in the lockfile as the most specific variant for a
platform, we shouldn't change that unless explicitly unlocking.

https://github.com/rubygems/rubygems/commit/a901660498
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Raise an error when top level dependency does not resolve under all locked platforms</title>
<updated>2023-10-16T04:52:57+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2023-10-04T18:08:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=77ffa1a7c3af797078b2a8e84bfc6f2b0ba67820'/>
<id>77ffa1a7c3af797078b2a8e84bfc6f2b0ba67820</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/25304f3e8d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/25304f3e8d
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler master.</title>
<updated>2023-01-31T01:49:08+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2023-01-31T00:35:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d3822c9a8aa91151bd040d5635b723ff80bc1886'/>
<id>d3822c9a8aa91151bd040d5635b723ff80bc1886</id>
<content type='text'>
  Pick from https://github.com/rubygems/rubygems/commit/5ace20dbecfeaf09fba5f616193f3cfcff70ba00
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Pick from https://github.com/rubygems/rubygems/commit/5ace20dbecfeaf09fba5f616193f3cfcff70ba00
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler master</title>
<updated>2022-12-09T07:36:22+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2022-12-09T05:45:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a4e14b9d9d58391fb7d7a10be8d883690860373b'/>
<id>a4e14b9d9d58391fb7d7a10be8d883690860373b</id>
<content type='text'>
  Pick from https://github.com/rubygems/rubygems/commit/823c776d951f3c35094611473ec77f94e8bf6610
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Pick from https://github.com/rubygems/rubygems/commit/823c776d951f3c35094611473ec77f94e8bf6610
</pre>
</div>
</content>
</entry>
<entry>
<title>Migrate our resolver engine to PubGrub</title>
<updated>2022-11-11T22:40:31+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2022-11-11T21:00:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0a9d51ee9d2b3d0111832e5ea1c8195a16e2f99b'/>
<id>0a9d51ee9d2b3d0111832e5ea1c8195a16e2f99b</id>
<content type='text'>
  https://github.com/rubygems/rubygems/pull/5960

  Co-authored-by: David Rodríguez &lt;deivid.rodriguez@riseup.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  https://github.com/rubygems/rubygems/pull/5960

  Co-authored-by: David Rodríguez &lt;deivid.rodriguez@riseup.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
