<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/bundler/compact_index_client, branch v3_3_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Update RubyGems 3.5.16 and Bundler 2.5.16 for Ruby 3.3 (#11252)</title>
<updated>2024-07-30T16:05:54+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-07-30T16:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f85c7deacc25738bd83ba182370c283ba82b61d4'/>
<id>f85c7deacc25738bd83ba182370c283ba82b61d4</id>
<content type='text'>
* Merge RubyGems-3.5.12 and Bundler-2.5.12

* Merge RubyGems-3.5.13 and Bundler-2.5.13

* Merge RubyGems-3.5.14 and Bundler-2.5.14

* Merge RubyGems-3.5.15 and Bundler-2.5.15

* Merge RubyGems-3.5.16 and Bundler-2.5.16</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Merge RubyGems-3.5.12 and Bundler-2.5.12

* Merge RubyGems-3.5.13 and Bundler-2.5.13

* Merge RubyGems-3.5.14 and Bundler-2.5.14

* Merge RubyGems-3.5.15 and Bundler-2.5.15

* Merge RubyGems-3.5.16 and Bundler-2.5.16</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems 3.5.11 and Bundler 2.5.11 for Ruby 3.3 (#10870)</title>
<updated>2024-06-05T04:36:46+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-06-05T04:36:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=06f470ce66be24f82d3720dd2bb08b18b16753ac'/>
<id>06f470ce66be24f82d3720dd2bb08b18b16753ac</id>
<content type='text'>
Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems 3.5.5 and Bundler 2.5.5 (#9676)</title>
<updated>2024-02-05T14:51:04+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2024-02-05T14:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ac526abcd6d82545b8dc3586efb55d75f45f7417'/>
<id>ac526abcd6d82545b8dc3586efb55d75f45f7417</id>
<content type='text'>
* Merge RubyGems-3.5.4 and Bundler-2.5.4

* Merge RubyGems-3.5.5 and Bundler-2.5.5

* Make tests play with upstream Ruby tests

CI broke in https://github.com/ruby/ruby/pull/9604 because if any Ruby
tests run `require 'net/http'`, they will pollute the
`$LOADED_FEATURES` for the RubyGems tests. We can fix this by renaming
the test default gem from `net-http` to `my-http`.

See https://github.com/rubygems/rubygems/pull/7379#issuecomment-1901241299
for more details.

---------

Co-authored-by: Stan Hu &lt;stanhu@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Merge RubyGems-3.5.4 and Bundler-2.5.4

* Merge RubyGems-3.5.5 and Bundler-2.5.5

* Make tests play with upstream Ruby tests

CI broke in https://github.com/ruby/ruby/pull/9604 because if any Ruby
tests run `require 'net/http'`, they will pollute the
`$LOADED_FEATURES` for the RubyGems tests. We can fix this by renaming
the test default gem from `net-http` to `my-http`.

See https://github.com/rubygems/rubygems/pull/7379#issuecomment-1901241299
for more details.

---------

Co-authored-by: Stan Hu &lt;stanhu@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Use vendored net-http in Bundler</title>
<updated>2023-12-13T03:16:55+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2023-01-29T20:28:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=90317472e87692fff1c864d129d60130dc3bab2c'/>
<id>90317472e87692fff1c864d129d60130dc3bab2c</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/0d758e8926
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/0d758e8926
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Prefer String#split with block in Bundler::CompactIndexClient::Cache#versions</title>
<updated>2023-12-05T05:28:39+00:00</updated>
<author>
<name>Mau Magnaguagno</name>
<email>maumagnaguagno@gmail.com</email>
</author>
<published>2023-11-30T03:24:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5f789350dceef80494e4e3e3e1ce95f886657845'/>
<id>5f789350dceef80494e4e3e3e1ce95f886657845</id>
<content type='text'>
String#split supports a block since Ruby 2.6, avoiding intermediate array.

https://github.com/rubygems/rubygems/commit/4e864a8f2e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
String#split supports a block since Ruby 2.6, avoiding intermediate array.

https://github.com/rubygems/rubygems/commit/4e864a8f2e
</pre>
</div>
</content>
</entry>
<entry>
<title>Opaque Etags for compact index requests</title>
<updated>2023-11-27T06:04:40+00:00</updated>
<author>
<name>Josef Šimánek</name>
<email>josef.simanek@gmail.com</email>
</author>
<published>2023-06-27T00:36:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=71a8daecd9ad10ba8aa0d66131e326722f1d78ad'/>
<id>71a8daecd9ad10ba8aa0d66131e326722f1d78ad</id>
<content type='text'>
This changes the CompactIndexClient to store etags received from the
compact index in separate files rather than relying on the MD5 checksum
of the file as the etag.

Smoothes the upgrade from md5 etags to opaque by generating them when no
etag file exists. This should reduce the initial impact of changing the
caching behavior by reducing cache misses when the MD5 etag is the same.

Eventually, the MD5 behavior should be retired and the etag should be
considered completely opaque with no assumption that MD5 would match.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This changes the CompactIndexClient to store etags received from the
compact index in separate files rather than relying on the MD5 checksum
of the file as the etag.

Smoothes the upgrade from md5 etags to opaque by generating them when no
etag file exists. This should reduce the initial impact of changing the
caching behavior by reducing cache misses when the MD5 etag is the same.

Eventually, the MD5 behavior should be retired and the etag should be
considered completely opaque with no assumption that MD5 would match.
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Reduce allocations when parsing compact index</title>
<updated>2023-10-08T04:17:15+00:00</updated>
<author>
<name>Samuel Giddins</name>
<email>segiddins@segiddins.me</email>
</author>
<published>2023-09-18T20:56:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2b6228be48dc656c3e7a95919622e4b8561324cf'/>
<id>2b6228be48dc656c3e7a95919622e4b8561324cf</id>
<content type='text'>
This still allocates a ton (a string for each line, plus a bunch of
splits into arrays), but it helps a bit when Bundler has to go through
dependency resolution.

```
==&gt; memprof.after.txt &lt;==
Total allocated: 194.14 MB (2317172 objects)
Total retained:  60.81 MB (593164 objects)

==&gt; memprof.before.txt &lt;==
Total allocated: 211.97 MB (2404890 objects)
Total retained:  62.85 MB (640342 objects)
```

https://github.com/rubygems/rubygems/commit/c68b41b0e5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This still allocates a ton (a string for each line, plus a bunch of
splits into arrays), but it helps a bit when Bundler has to go through
dependency resolution.

```
==&gt; memprof.after.txt &lt;==
Total allocated: 194.14 MB (2317172 objects)
Total retained:  60.81 MB (593164 objects)

==&gt; memprof.before.txt &lt;==
Total allocated: 211.97 MB (2404890 objects)
Total retained:  62.85 MB (640342 objects)
```

https://github.com/rubygems/rubygems/commit/c68b41b0e5
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler master</title>
<updated>2022-12-12T01:49:43+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2022-12-12T00:09:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bbe56a643734025aef6a3cbeb07c5306505040f6'/>
<id>bbe56a643734025aef6a3cbeb07c5306505040f6</id>
<content type='text'>
  from https://github.com/rubygems/rubygems/commit/bfb0ae69776069155d2092702bfbb5a12617d85a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  from https://github.com/rubygems/rubygems/commit/bfb0ae69776069155d2092702bfbb5a12617d85a
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Fix misleading error if compact index cannot be copied</title>
<updated>2022-07-14T06:06:09+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2022-07-12T10:33:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=76de7a92b90e216c6645e93a3a034bc2f4257b03'/>
<id>76de7a92b90e216c6645e93a3a034bc2f4257b03</id>
<content type='text'>
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 &lt;stanhu@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;stanhu@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge rubygems/rubygems HEAD.</title>
<updated>2022-01-19T06:01:44+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2022-01-19T04:28:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d22511fd7595ef1819baa42851d598d95b8f4d00'/>
<id>d22511fd7595ef1819baa42851d598d95b8f4d00</id>
<content type='text'>
  Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a
</pre>
</div>
</content>
</entry>
</feed>
