<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/bundler/shared_helpers.rb, branch v4.0.3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Bundle RubyGems 4.0.2 and Bundler 4.0.2</title>
<updated>2025-12-17T03:12:34+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-12-17T02:29:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3b66efda523fc33070aee6097898dbc5b1af6f4b'/>
<id>3b66efda523fc33070aee6097898dbc5b1af6f4b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] Write gem files atomically</title>
<updated>2025-12-15T01:15:06+00:00</updated>
<author>
<name>eileencodes</name>
<email>eileencodes@gmail.com</email>
</author>
<published>2025-11-25T19:17:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=58940377e6f27f39d5c3baa0faa15655fa873f2c'/>
<id>58940377e6f27f39d5c3baa0faa15655fa873f2c</id>
<content type='text'>
This change updates `write_binary` to use a new class,
`AtomicFileWriter.open` to write the gem's files. This implementation
is borrowed from Active Support's [`atomic_write`](https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/file/atomic.rb).

Atomic write will write the files to a temporary file and then once
created, sets permissions and renames the file. If the file is corrupted
- ie on failed download, an error occurs, or for some other reason, the
real file will not be created. The changes made here make `verify_gz`
obsolete, we don't need to verify it if we have successfully created the
file atomically. If it exists, it is not corrupt. If it is corrupt, the
file won't exist on disk.

While writing tests for this functionality I replaced the
`RemoteFetcher` stub with `FakeFetcher` except for where we really do
need to overwrite the `RemoteFetcher`. The new test implementation is much
clearer on what it's trying to accomplish versus the prior test
implementation.

https://github.com/ruby/rubygems/commit/0cd4b54291
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change updates `write_binary` to use a new class,
`AtomicFileWriter.open` to write the gem's files. This implementation
is borrowed from Active Support's [`atomic_write`](https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/file/atomic.rb).

Atomic write will write the files to a temporary file and then once
created, sets permissions and renames the file. If the file is corrupted
- ie on failed download, an error occurs, or for some other reason, the
real file will not be created. The changes made here make `verify_gz`
obsolete, we don't need to verify it if we have successfully created the
file atomically. If it exists, it is not corrupt. If it is corrupt, the
file won't exist on disk.

While writing tests for this functionality I replaced the
`RemoteFetcher` stub with `FakeFetcher` except for where we really do
need to overwrite the `RemoteFetcher`. The new test implementation is much
clearer on what it's trying to accomplish versus the prior test
implementation.

https://github.com/ruby/rubygems/commit/0cd4b54291
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] Add support for BUNDLE_LOCKFILE environment variable</title>
<updated>2025-11-20T23:01:03+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2025-11-11T02:23:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=010b23a7cfc4a20371d74406f9f0563331a233fd'/>
<id>010b23a7cfc4a20371d74406f9f0563331a233fd</id>
<content type='text'>
This specifies the lockfile location. This allows for easy support
of different lockfiles per Ruby version or platform.

https://github.com/ruby/rubygems/commit/b54d65bc0a

Co-authored-by: Sutou Kouhei &lt;kou@cozmixng.org&gt;
Co-authored-by: Colby Swandale &lt;996377+colby-swandale@users.noreply.github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This specifies the lockfile location. This allows for easy support
of different lockfiles per Ruby version or platform.

https://github.com/ruby/rubygems/commit/b54d65bc0a

Co-authored-by: Sutou Kouhei &lt;kou@cozmixng.org&gt;
Co-authored-by: Colby Swandale &lt;996377+colby-swandale@users.noreply.github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] Use Dir.pwd instead of Pathname.pwd</title>
<updated>2025-11-07T20:12:48+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-11-07T04:16:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a7c23b9a9f726bec7cbd6f89d157d7dd140420da'/>
<id>a7c23b9a9f726bec7cbd6f89d157d7dd140420da</id>
<content type='text'>
https://github.com/ruby/rubygems/commit/6c161b253d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/rubygems/commit/6c161b253d
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] Replaced pathname auto-loading in bootstrap of bundler</title>
<updated>2025-11-07T20:12:46+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-11-06T22:12:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4816969c28def82d2fe57045758f5b39b3ac8081'/>
<id>4816969c28def82d2fe57045758f5b39b3ac8081</id>
<content type='text'>
https://github.com/ruby/rubygems/commit/79ba4a537d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/rubygems/commit/79ba4a537d
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Replaced Bundler::SharedHelpers.major_deprecation to feature_removed! or feature_deprecated!</title>
<updated>2025-10-15T02:40:13+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-10-15T00:28:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=26d1e6947e174b499aae9833d9a4c434fa9a5415'/>
<id>26d1e6947e174b499aae9833d9a4c434fa9a5415</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/b1b963b34a

Co-authored-by: David Rodríguez &lt;2887858+deivid-rodriguez@users.noreply.github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/b1b963b34a

Co-authored-by: David Rodríguez &lt;2887858+deivid-rodriguez@users.noreply.github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Introduce `SharedHelpers.feature_removed!`</title>
<updated>2025-09-03T14:38:37+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-08-13T09:53:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cc1770b968257ca6d6ec5a49b6ef54d4a4853974'/>
<id>cc1770b968257ca6d6ec5a49b6ef54d4a4853974</id>
<content type='text'>
To directly raise regardless of version.

https://github.com/rubygems/rubygems/commit/38fb97cffa
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To directly raise regardless of version.

https://github.com/rubygems/rubygems/commit/38fb97cffa
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] No need to print caller location when raising directly</title>
<updated>2025-09-03T14:38:37+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-08-13T09:54:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2e65f4ac3b1d69e7bd9e3e65a696e7f234ec9527'/>
<id>2e65f4ac3b1d69e7bd9e3e65a696e7f234ec9527</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/6c2b06cc16
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/6c2b06cc16
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Centralize managing major version dependent behavior in `FeatureFlag` class</title>
<updated>2025-06-25T23:06:44+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2025-06-18T18:14:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f32dbc9bb083c0332a28dc4f3c6ebcc40b101091'/>
<id>f32dbc9bb083c0332a28dc4f3c6ebcc40b101091</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/7708e5b784
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/7708e5b784
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Allow noop `bundle install` to work on read-only or protected folders</title>
<updated>2025-02-21T02:31:49+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2022-09-09T09:18:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ee2c7bcae5d8c96f41305e1a24739493121ef49b'/>
<id>ee2c7bcae5d8c96f41305e1a24739493121ef49b</id>
<content type='text'>
As long as there's nothing new to install and gems are already there.

If not, give a meaningful error about what happened.

This was how things already worked until
https://github.com/rubygems/rubygems/commit/345ec45f5a87, so this commit partially
reverts that change.

https://github.com/rubygems/rubygems/commit/794b0ecb39
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As long as there's nothing new to install and gems are already there.

If not, give a meaningful error about what happened.

This was how things already worked until
https://github.com/rubygems/rubygems/commit/345ec45f5a87, so this commit partially
reverts that change.

https://github.com/rubygems/rubygems/commit/794b0ecb39
</pre>
</div>
</content>
</entry>
</feed>
