<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/rubygems/resolver, branch v4.0.4</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Merge RubyGems/Bundler 4.0.8</title>
<updated>2026-04-08T22:49:38+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-04-08T08:07:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=36084c24579e5a8c294f5b3ea7be35cda27775b1'/>
<id>36084c24579e5a8c294f5b3ea7be35cda27775b1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Use spaces around optional parameter values</title>
<updated>2025-08-18T03:31:51+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-08-11T20:02:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7125f7635d43f67b1664bf85e72a34d868259822'/>
<id>7125f7635d43f67b1664bf85e72a34d868259822</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/b58829a868
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/b58829a868
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Copy prerelease attribute to dependency resolver sets</title>
<updated>2025-05-21T02:33:32+00:00</updated>
<author>
<name>Nathan Ladd</name>
<email>nathanladd@gmail.com</email>
</author>
<published>2025-04-23T16:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3ac239f7904816a61137524140306123e53c18dd'/>
<id>3ac239f7904816a61137524140306123e53c18dd</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/5956e7f8e5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/5956e7f8e5
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Let compact index response parser consistently return a mutable dependencies array</title>
<updated>2025-04-01T00:57:40+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-03-26T21:26:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=79f3167e0b601656f651b247d6ca09e4cadfadcb'/>
<id>79f3167e0b601656f651b247d6ca09e4cadfadcb</id>
<content type='text'>
That restores support for compact index dummy implementations that only lists
versions, without checksums or dependencies.

This format is undocumented, so we may want to get rid of it in the
future. However, some of our tests rely on it, and some implementations
did use it (gems.mutant.dev at least). And the way the code was written
suggest that support was intentional.

So for now, we should restore it.

https://github.com/rubygems/rubygems/commit/0427d8c983
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
That restores support for compact index dummy implementations that only lists
versions, without checksums or dependencies.

This format is undocumented, so we may want to get rid of it in the
future. However, some of our tests rely on it, and some implementations
did use it (gems.mutant.dev at least). And the way the code was written
suggest that support was intentional.

So for now, we should restore it.

https://github.com/rubygems/rubygems/commit/0427d8c983
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Stop storing executable names in ivars</title>
<updated>2024-12-05T19:00:44+00:00</updated>
<author>
<name>Samuel Giddins</name>
<email>segiddins@segiddins.me</email>
</author>
<published>2024-12-04T20:45:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7daf85bdf250a1056e7441ee88b588cf69d00556'/>
<id>7daf85bdf250a1056e7441ee88b588cf69d00556</id>
<content type='text'>
Removes usage of these classes as ACE gadgets

See https://nastystereo.com/security/ruby-3.4-deserialization.html

Signed-off-by: Samuel Giddins &lt;segiddins@segiddins.me&gt;

https://github.com/rubygems/rubygems/commit/89ad04db86
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removes usage of these classes as ACE gadgets

See https://nastystereo.com/security/ruby-3.4-deserialization.html

Signed-off-by: Samuel Giddins &lt;segiddins@segiddins.me&gt;

https://github.com/rubygems/rubygems/commit/89ad04db86
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] More aggressive `Performance/FlatMap` cop configuration</title>
<updated>2024-11-26T06:11:05+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-11-18T19:51:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4addaaf4df9a7b48c3490b806c195fcb7be999b5'/>
<id>4addaaf4df9a7b48c3490b806c195fcb7be999b5</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/d8d68cc00e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/d8d68cc00e
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix error in one source when fetching dependency APIs clearing results from all sources</title>
<updated>2024-10-02T10:37:26+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-09-27T07:37:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=acbdb309417a8436ae542cc8948121d9baaf1fed'/>
<id>acbdb309417a8436ae542cc8948121d9baaf1fed</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/0549ddbcc5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/0549ddbcc5
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix `bundle exec rake install` failing when local gem has extensions and `gemspec` DSL is being used</title>
<updated>2024-09-11T11:28:35+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-08-29T12:24:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e52d4d462f9b4d10f6d29a69058c5117399c968e'/>
<id>e52d4d462f9b4d10f6d29a69058c5117399c968e</id>
<content type='text'>
In a `bundle exec` context, the local specification will actually be
part of the known specifications, so RubyGems will assume it has already
been installed, which is not actually true.

This will cause `RequestSet` to rebuild extensions for a gem that's not
actually installed, causing errors.

The fix is to make sure detection of installed activation requests
considers not only that there's a known spec with the same full name as
the one being installed, but also that this spec is installed in the
same gem_home were pretend to install the new gem.

https://github.com/rubygems/rubygems/commit/a8ef1286a6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In a `bundle exec` context, the local specification will actually be
part of the known specifications, so RubyGems will assume it has already
been installed, which is not actually true.

This will cause `RequestSet` to rebuild extensions for a gem that's not
actually installed, causing errors.

The fix is to make sure detection of installed activation requests
considers not only that there's a known spec with the same full name as
the one being installed, but also that this spec is installed in the
same gem_home were pretend to install the new gem.

https://github.com/rubygems/rubygems/commit/a8ef1286a6
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix `gem install does-not-exist` being super slow</title>
<updated>2024-09-06T18:44:37+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-09-06T07:34:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fe1bace43c73d88a5721e9b97066e746a34f135c'/>
<id>fe1bace43c73d88a5721e9b97066e746a34f135c</id>
<content type='text'>
Every time a gem is not found in the Compact Index API, RubyGems will
fallback to the full index, which is very slow. This is unnecessary
because both indexes should be providing the same gems, so if a gem
can't be found in the Compact Index API, it won't be found in the full
index.

We _do_ want a fallback to the full index, whenever the Compact Index
API is not implemented. To detect that, we check that the API responds
to the "/versions" endpoint, just like Bundler does.

Before:

```
$ time gem install fooasdsfafs
ERROR:  Could not find a valid gem 'fooasdsfafs' (&gt;= 0) in any repository
gem  20,77s user 0,59s system 96% cpu 22,017 total
```

After:

```
$ time gem install fooasdsfafs
ERROR:  Could not find a valid gem 'fooasdsfafs' (&gt;= 0) in any repository
gem  5,02s user 0,09s system 91% cpu 5,568 total
```

https://github.com/rubygems/rubygems/commit/c0d6b9eea7
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Every time a gem is not found in the Compact Index API, RubyGems will
fallback to the full index, which is very slow. This is unnecessary
because both indexes should be providing the same gems, so if a gem
can't be found in the Compact Index API, it won't be found in the full
index.

We _do_ want a fallback to the full index, whenever the Compact Index
API is not implemented. To detect that, we check that the API responds
to the "/versions" endpoint, just like Bundler does.

Before:

```
$ time gem install fooasdsfafs
ERROR:  Could not find a valid gem 'fooasdsfafs' (&gt;= 0) in any repository
gem  20,77s user 0,59s system 96% cpu 22,017 total
```

After:

```
$ time gem install fooasdsfafs
ERROR:  Could not find a valid gem 'fooasdsfafs' (&gt;= 0) in any repository
gem  5,02s user 0,09s system 91% cpu 5,568 total
```

https://github.com/rubygems/rubygems/commit/c0d6b9eea7
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix resolver bug where ActivationRequest objects were not properly compared</title>
<updated>2024-03-25T19:45:51+00:00</updated>
<author>
<name>David Rodriguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2024-03-25T17:02:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=06d5d4f1d0f58bdf73a0978221fe13e17f36712e'/>
<id>06d5d4f1d0f58bdf73a0978221fe13e17f36712e</id>
<content type='text'>
They were delegating their `#hash` value to a class not overriding that
method, and so were returning inconsistent results.

https://github.com/rubygems/rubygems/commit/723e4ee0fc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They were delegating their `#hash` value to a class not overriding that
method, and so were returning inconsistent results.

https://github.com/rubygems/rubygems/commit/723e4ee0fc
</pre>
</div>
</content>
</entry>
</feed>
