<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/rubygems/util, 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>[rubygems/rubygems] Update SPDX license list as of 2025-07-01</title>
<updated>2025-07-07T02:53:15+00:00</updated>
<author>
<name>License Update</name>
<email>license.update@rubygems.org</email>
</author>
<published>2025-07-06T00:38:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e1d09ffe5d389c8d486238273e355aa192a99a2d'/>
<id>e1d09ffe5d389c8d486238273e355aa192a99a2d</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/56b55a198a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/56b55a198a
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Update SPDX license list as of 2024-12-30</title>
<updated>2025-01-06T07:19:23+00:00</updated>
<author>
<name>License Update</name>
<email>license.update@rubygems.org</email>
</author>
<published>2025-01-05T00:32:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=70decc857cdaa9c5766ae39394f174bd717a2696'/>
<id>70decc857cdaa9c5766ae39394f174bd717a2696</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/42aaaff15c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/42aaaff15c
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Update SPDX license list as of 2024-08-19</title>
<updated>2024-11-12T08:06:36+00:00</updated>
<author>
<name>License Update</name>
<email>license.update@rubygems.org</email>
</author>
<published>2024-11-11T18:56:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dc08d6e9172c655c770d91c5d5fba5beda431a7d'/>
<id>dc08d6e9172c655c770d91c5d5fba5beda431a7d</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/5a094cbfab
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/5a094cbfab
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Update SPDX license list as of 2024-05-22</title>
<updated>2024-05-27T01:45:38+00:00</updated>
<author>
<name>License Update</name>
<email>license.update@rubygems.org</email>
</author>
<published>2024-05-26T00:25:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5853a3804382e2935bb23917080ceea647d19161'/>
<id>5853a3804382e2935bb23917080ceea647d19161</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/f91ac04397
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/f91ac04397
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Update SPDX license list as of 2024-02-08</title>
<updated>2024-02-13T01:27:18+00:00</updated>
<author>
<name>License Update</name>
<email>license.update@rubygems.org</email>
</author>
<published>2024-02-11T00:24:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=785aa47cd643a516f6aa524ee1488c5edb459dd1'/>
<id>785aa47cd643a516f6aa524ee1488c5edb459dd1</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/ec3de95d79
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/ec3de95d79
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Let RuboCop target Ruby 3.0</title>
<updated>2023-11-13T02:06:10+00:00</updated>
<author>
<name>David Rodríguez</name>
<email>deivid.rodriguez@riseup.net</email>
</author>
<published>2023-10-26T20:17:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a4d80eee179cf4d0b126aa8c61888b7e08795a85'/>
<id>a4d80eee179cf4d0b126aa8c61888b7e08795a85</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/70243b1d72
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/70243b1d72
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Update SPDX license list as of 2023-10-05</title>
<updated>2023-10-27T22:14:37+00:00</updated>
<author>
<name>License Update</name>
<email>license.update@rubygems.org</email>
</author>
<published>2023-10-08T00:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2714d7507aa053d1804095f7ce3b869c56f64337'/>
<id>2714d7507aa053d1804095f7ce3b869c56f64337</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/e69a43ac9f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/e69a43ac9f
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Update SPDX list and warn on deprecated identifiers.</title>
<updated>2023-09-30T11:20:08+00:00</updated>
<author>
<name>Josef Šimánek</name>
<email>josef.simanek@gmail.com</email>
</author>
<published>2023-08-30T00:31:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4cf68908e59979306d6069b1828c209079bcb9b7'/>
<id>4cf68908e59979306d6069b1828c209079bcb9b7</id>
<content type='text'>
https://github.com/rubygems/rubygems/commit/61667028f5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/rubygems/rubygems/commit/61667028f5
</pre>
</div>
</content>
</entry>
</feed>
