<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/lib/bundler/definition.rb, 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.9</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:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dc13b5adc91c91a8d2c35cf6e770390811dbf596'/>
<id>dc13b5adc91c91a8d2c35cf6e770390811dbf596</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler 4.0.7</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:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f13b391174f959d6d19e383335829756edb3d273'/>
<id>f13b391174f959d6d19e383335829756edb3d273</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler 4.0.6</title>
<updated>2026-02-10T01:38:24+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-02-10T01:07:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e025c839ac71b609bb50ff74352f9a11cd164c3c'/>
<id>e025c839ac71b609bb50ff74352f9a11cd164c3c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler 4.0.5</title>
<updated>2026-02-10T01:38:24+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-02-10T01:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=87b544b8c4400ef2b37405f132846e5c3738213b'/>
<id>87b544b8c4400ef2b37405f132846e5c3738213b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge RubyGems/Bundler 4.0.4</title>
<updated>2026-02-10T01:38:24+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2026-02-10T01:07:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=91a4926c9a9cd12f43307a2c934766c000356f07'/>
<id>91a4926c9a9cd12f43307a2c934766c000356f07</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] Fixed checksums generation issue when no source is specified</title>
<updated>2025-11-28T22:50:49+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-11-28T07:57:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bb2e4d58cce135d3609dba1ee17ed614522a88bf'/>
<id>bb2e4d58cce135d3609dba1ee17ed614522a88bf</id>
<content type='text'>
https://github.com/ruby/rubygems/commit/bb4d791cb4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/rubygems/commit/bb4d791cb4
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed warning for String comparison of Gem::Version</title>
<updated>2025-11-21T06:49:14+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-11-21T05:39:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1d160ed0591fbaabe1ae6d76920da409e238b396'/>
<id>1d160ed0591fbaabe1ae6d76920da409e238b396</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] Add support for lockfile in Gemfile</title>
<updated>2025-11-20T23:01:02+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2025-11-09T00:00:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=82d8d24e7cdd26123ed4ad478ce6a0bb81d7abb5'/>
<id>82d8d24e7cdd26123ed4ad478ce6a0bb81d7abb5</id>
<content type='text'>
This allows you to specify the lockfile to use. This is useful if
you want to use different lockfiles for different ruby versions or
platforms. You can also skip writing the lockfile by using a false
value.

https://github.com/ruby/rubygems/commit/2896aa3fc2

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 allows you to specify the lockfile to use. This is useful if
you want to use different lockfiles for different ruby versions or
platforms. You can also skip writing the lockfile by using a false
value.

https://github.com/ruby/rubygems/commit/2896aa3fc2

Co-authored-by: Colby Swandale &lt;996377+colby-swandale@users.noreply.github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/rubygems] Run git operations in parallel to speed things up:</title>
<updated>2025-11-20T22:05:13+00:00</updated>
<author>
<name>Edouard CHIN</name>
<email>chin.edouard@gmail.com</email>
</author>
<published>2025-11-19T14:59:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bd60600d00f13234cad83c9c5af5b6607a4b0fba'/>
<id>bd60600d00f13234cad83c9c5af5b6607a4b0fba</id>
<content type='text'>
- ### Problem

  When you have a Gemfile that contains git gems, each repository will
  be fetched one by one. This is extremelly slow.
  A simple Gemfile with 5 git gems (small repositories) can take up
  to 10 seconds just to fetch the repos.

  We can speed this up by running multiple git process and fetching
  repositories silmutaneously.

  ### Solution

  The repositories are fetched in Bundler when `Source::Git#specs` is
  called.
  The problem is that `source.specs` is called in various places
  depending on Gemfile.

  I think the issue is that calling `source.specs` feels like that
  as a "side effect" we are going to clone repositories. I believe
  that fetching repositories should be an explicit call.

  For instance:

  ```ruby
  source "https://rubygems.org"

  gem "foo", github: "foo/foo"

  # The repository foo will be fetched as a side effect to the call to `source.spec_names`
  # https://github.com/ruby/rubygems/blob/6cc7d71dac3d0275c9727cf200c7acfbf6c78d37/bundler/lib/bundler/source_map.rb#L21
  ```

  ```ruby
  source "https://rubygems.org"

  gem "bar", source: "https://example.org"
  gem "foo", github: "foo/foo"

  # The repository foo will be fetched on a different codepath
  # https://github.com/ruby/rubygems/blob/6cc7d71dac3d0275c9727cf200c7acfbf6c78d37/bundler/lib/bundler/source/rubygems_aggregate.rb#L35

  # That is because the gem "bar" has a source that doesn't have the `/dependencies` API
  # endpoint and therefore Bundler enters a different branch condition.
  ```

  I opted to add a self explanatory call to fetch the git source
  repositories just before we start the resolution, and *just*
  before any other calls to `source.specs` is performed.

https://github.com/ruby/rubygems/commit/f0ef526f23
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- ### Problem

  When you have a Gemfile that contains git gems, each repository will
  be fetched one by one. This is extremelly slow.
  A simple Gemfile with 5 git gems (small repositories) can take up
  to 10 seconds just to fetch the repos.

  We can speed this up by running multiple git process and fetching
  repositories silmutaneously.

  ### Solution

  The repositories are fetched in Bundler when `Source::Git#specs` is
  called.
  The problem is that `source.specs` is called in various places
  depending on Gemfile.

  I think the issue is that calling `source.specs` feels like that
  as a "side effect" we are going to clone repositories. I believe
  that fetching repositories should be an explicit call.

  For instance:

  ```ruby
  source "https://rubygems.org"

  gem "foo", github: "foo/foo"

  # The repository foo will be fetched as a side effect to the call to `source.spec_names`
  # https://github.com/ruby/rubygems/blob/6cc7d71dac3d0275c9727cf200c7acfbf6c78d37/bundler/lib/bundler/source_map.rb#L21
  ```

  ```ruby
  source "https://rubygems.org"

  gem "bar", source: "https://example.org"
  gem "foo", github: "foo/foo"

  # The repository foo will be fetched on a different codepath
  # https://github.com/ruby/rubygems/blob/6cc7d71dac3d0275c9727cf200c7acfbf6c78d37/bundler/lib/bundler/source/rubygems_aggregate.rb#L35

  # That is because the gem "bar" has a source that doesn't have the `/dependencies` API
  # endpoint and therefore Bundler enters a different branch condition.
  ```

  I opted to add a self explanatory call to fetch the git source
  repositories just before we start the resolution, and *just*
  before any other calls to `source.specs` is performed.

https://github.com/ruby/rubygems/commit/f0ef526f23
</pre>
</div>
</content>
</entry>
<entry>
<title>[rubygems/rubygems] Add checksum of gems hosted on private servers:</title>
<updated>2025-10-15T09:54:50+00:00</updated>
<author>
<name>Edouard CHIN</name>
<email>chin.edouard@gmail.com</email>
</author>
<published>2025-10-09T15:23:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dce202d6d653dfc1b2c64822fe53066c3c558a78'/>
<id>dce202d6d653dfc1b2c64822fe53066c3c558a78</id>
<content type='text'>
- ### Problem

  Running `bundle lock --add-checksums` doesn't add the checksum of
  gems hosted on server that don't implement the compact index API.

  This result in a lockfile which is unusable in production as
  some checksums will be missing and Bundler raising an error.
  Users can work around this problem by running:

  `BUNDLE_LOCKFILE_CHECKSUMS=true bundle install --force`

  But this means redownloading and installing all gems which isn't
  great and slow on large apps.

  ### Context

  Bundler uses the Compact Index API to get the checksum of gems,
  but most private gem servers don't implement the compact index API
  (such as cloudsmith or packagecloud). This results in a soft failure
  on bundler side, and bundler leaving out blank checksum for those
  gems.

  ### Solution

  For gems that are hosted on private servers that don't send back
  the checksum of the gem, I'd like to fallback to the
  `bundle install` mechanism, which don't rely on an external API but
  instead compute the checksum of the package installed on disk.

  This patch goes through the spec that didn't return a checksum,
  and compute one if the package exists on disk.
  This solution makes the  `bundle lock --add-checksums` command
  actually usable in real world scenarios while keeping the
  `bundle lock` command fast enough.

https://github.com/rubygems/rubygems/commit/8e9abb5472
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- ### Problem

  Running `bundle lock --add-checksums` doesn't add the checksum of
  gems hosted on server that don't implement the compact index API.

  This result in a lockfile which is unusable in production as
  some checksums will be missing and Bundler raising an error.
  Users can work around this problem by running:

  `BUNDLE_LOCKFILE_CHECKSUMS=true bundle install --force`

  But this means redownloading and installing all gems which isn't
  great and slow on large apps.

  ### Context

  Bundler uses the Compact Index API to get the checksum of gems,
  but most private gem servers don't implement the compact index API
  (such as cloudsmith or packagecloud). This results in a soft failure
  on bundler side, and bundler leaving out blank checksum for those
  gems.

  ### Solution

  For gems that are hosted on private servers that don't send back
  the checksum of the gem, I'd like to fallback to the
  `bundle install` mechanism, which don't rely on an external API but
  instead compute the checksum of the package installed on disk.

  This patch goes through the spec that didn't return a checksum,
  and compute one if the package exists on disk.
  This solution makes the  `bundle lock --add-checksums` command
  actually usable in real world scenarios while keeping the
  `bundle lock` command fast enough.

https://github.com/rubygems/rubygems/commit/8e9abb5472
</pre>
</div>
</content>
</entry>
</feed>
