summaryrefslogtreecommitdiff
path: root/tool/bundler
AgeCommit message (Collapse)Author
2026-04-08Merge RubyGems/Bundler 4.0.10Hiroshi SHIBATA
2026-04-08Merge RubyGems/Bundler 4.0.9Hiroshi SHIBATA
2026-04-08Merge RubyGems/Bundler 4.0.8Hiroshi SHIBATA
2026-04-08Merge RubyGems/Bundler 4.0.7Hiroshi SHIBATA
2026-02-09Merge RubyGems/Bundler 4.0.6Hiroshi SHIBATA
2026-02-09Merge RubyGems/Bundler 4.0.5Hiroshi SHIBATA
2026-02-09Merge RubyGems/Bundler 4.0.4Hiroshi SHIBATA
2025-12-23Merge RubyGems 4.0.3 and Bundler 4.0.3Hiroshi SHIBATA
2025-12-17Bundle RubyGems 4.0.2 and Bundler 4.0.2Hiroshi SHIBATA
2025-12-09[ruby/rubygems] Bump Bundler version to 4.0.1Hiroshi SHIBATA
(cherry picked from commit https://github.com/ruby/rubygems/commit/26c1db5a65a8) https://github.com/ruby/rubygems/commit/bbb5b767d0
2025-12-04[ruby/rubygems] Increase connection pool to allow for up to 70% speed increase:Edouard CHIN
- ### TL;DR Bundler is heavily limited by the connection pool which manages a single connection. By increasing the number of connection, we can drastiscally speed up the installation process when many gems need to be downloaded and installed. ### Benchmark There are various factors that are hard to control such as compilation time and network speed but after dozens of tests I can consistently get aroud 70% speed increase when downloading and installing 472 gems, most having no native extensions (on purpose). ``` # Before bundle install 28.60s user 12.70s system 179% cpu 23.014 total # After bundle install 30.09s user 15.90s system 281% cpu 16.317 total ``` You can find on this gist how this was benchmarked and the Gemfile used https://gist.github.com/Edouard-chin/c8e39148c0cdf324dae827716fbe24a0 ### Context A while ago in #869, Aaron introduced a connection pool which greatly improved Bundler speed. It was noted in the PR description that managing one connection was already good enough and it wasn't clear whether we needed more connections. Aaron also had the intuition that we may need to increase the pool for downloading gems and he was right. > We need to study how RubyGems uses connections and make a decision > based on request usage (e.g. only use one connection for many small > requests like bundler API, and maybe many connections for > downloading gems) When bundler downloads and installs gem in parallel https://github.com/ruby/rubygems/blob/4f85e02fdd89ee28852722dfed42a13c9f5c9193/bundler/lib/bundler/installer/parallel_installer.rb#L128 most threads have to wait for the only connection in the pool to be available which is not efficient. ### Solution This commit modifies the pool size for the fetcher that Bundler uses. RubyGems fetcher will continue to use a single connection. The bundler fetcher is used in 2 places. 1. When downloading gems https://github.com/ruby/rubygems/blob/4f85e02fdd89ee28852722dfed42a13c9f5c9193/bundler/lib/bundler/source/rubygems.rb#L481-L484 2. When grabing the index (not the compact index) using the `bundle install --full-index` flag. https://github.com/ruby/rubygems/blob/4f85e02fdd89ee28852722dfed42a13c9f5c9193/bundler/lib/bundler/fetcher/index.rb#L9 Having more connections in 2) is not any useful but tweaking the size based on where the fetcher is used is a bit tricky so I opted to modify it at the class level. I fiddle with the pool size and found that 5 seems to be the sweet spot at least for my environment. https://github.com/ruby/rubygems/commit/6063fd9963
2025-12-03[ruby/rubygems] Bump Bundler version to 4.0.0Hiroshi SHIBATA
https://github.com/ruby/rubygems/commit/a55c485226
2025-11-26[ruby/rubygems] Bump up to 4.0.0.beta2Hiroshi SHIBATA
https://github.com/ruby/rubygems/commit/b8529f48bf
2025-11-20[ruby/rubygems] Bump up to 4.0.0.beta1Hiroshi SHIBATA
https://github.com/ruby/rubygems/commit/9be811c01a
2025-11-18Fixed conflict of vendor_gems.rbHiroshi SHIBATA
2025-11-18Downgrade net-http 0.7.0 because JRuby is not workingHiroshi SHIBATA
2025-11-18Use released version of net-http-0.8.0Hiroshi SHIBATA
2025-11-14[ruby/rubygems] Update the all dependencies with rake updateHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/74c9eaf1f0
2025-11-14[ruby/rubygems] Re-generate lockfile with double spacesHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/a65a4b775e
2025-11-12[ruby/rubygems] Added test-unit-ruby-core for assert_ractorHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/be579a9c8c
2025-11-12[ruby/rubygems] add rubygems-generate_index as a dev depAaron Patterson
https://github.com/ruby/rubygems/commit/8df0e4e63e
2025-10-23[ruby/rubygems] Bump up vendored uri to 1.0.4Hiroshi SHIBATA
https://github.com/ruby/rubygems/commit/bc77ec0bf2
2025-10-09[rubygems/rubygems] Update lockfiles with 4.0.0.devHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/82d46d3b28
2025-10-09[rubygems/rubygems] Bump up to Bundler 4.0.0.dev that is next major versionHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/a51334ba99
2025-09-03Added x64-mswin64-140 to lockfilesHiroshi SHIBATA
2025-09-03Completely remove `bundle viz` commandDavid Rodríguez
2025-07-30[rubygems/rubygems] Bump vendored thor to 1.4.0David Rodríguez
https://github.com/rubygems/rubygems/commit/8078a747b3
2025-07-17Set development version to Bundler 2.8.0.dev and RubyGems 3.8.0.devDavid Rodríguez
Next version for both will be 4.0.0, however, extra work is necessary to get CI passing against the new major. So for now, I'm bumping just the minor version.
2025-07-10[rubygems/rubygems] Update vendored resolv to 0.6.2Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/afbbc02763
2025-07-02[rubygems/rubygems] Migrate all remaining specs to run offlineDavid Rodríguez
Also removed the helper to install real gems during specs to avoid the temptation of introducing network stuff again. https://github.com/rubygems/rubygems/commit/a1ab5e319a
2025-07-02[rubygems/rubygems] Migrate `bundle viz` specs to run offlineDavid Rodríguez
https://github.com/rubygems/rubygems/commit/672722cd4d
2025-06-30Rewrite specs to not start local dev serversDavid Rodríguez
They cause flakies when different tests start them in parallel, and also make the specs more complicated.
2025-05-31Update rake version in lock filesNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/13484
2025-05-21[rubygems/rubygems] Bump up to rack-3.1.15 that is removed dependency of ↵Hiroshi SHIBATA
CGI::Cookie https://github.com/rubygems/rubygems/commit/cecc280f61
2025-05-14[rubygems/rubygems] Try cgi-0.5.0.beta2Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/5d5e37bf23
2025-05-14[rubygems/rubygems] Update vendored version and patch for net-http and ↵Hiroshi SHIBATA
net-http-persistent https://github.com/rubygems/rubygems/commit/b9a4722d5e
2025-05-09Use CGI 0.5.0.beta1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/13275
2025-05-09Added cgi for bundler testing. rack depends cgi/cookie.rbHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/13275
2025-03-27Update the all of gemfile depsHiroshi SHIBATA
2025-03-27[rubygems/rubygems] Implement pub_grub strategy interfaceHartley McGuire
My application spends more than 30% of time during `bundle update` comparing versions due to versions being sorted inside next_package_to_try. This has been addressed in pub_grub by defining a strategy interface (a `#next_package_and_version` method) which allows consumers to have finer control over the heuristic to select the next package to try. This commit implements the new strategy interface to remove extraneous version sorting (previously in next_package_to_try) since only the final count of versions is used. Combined with a previous change to pub_grub (already applied to Bundler), this commit results in `bundle update` taking only half the time it did on 2.6.5. https://github.com/rubygems/rubygems/commit/62f69e27f0
2025-03-26Use release version of turbo_testsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12983
2025-03-24[rubygems/rubygems] Update vendored pub_grubHartley McGuire
https://github.com/rubygems/rubygems/commit/3aaa75e7b9 Notes: Merged: https://github.com/ruby/ruby/pull/12968
2025-03-18Fix up merge conflicts for prism syncKevin Newton
2025-03-18[ruby/prism] Update truffleruby versionKevin Newton
https://github.com/ruby/prism/commit/2afe89f8ce
2025-03-10[rubygems/rubygems] Adapt specs to extraction of irb from ruby-coreDavid Rodríguez
This gets our daily Bundler CI back to green. https://github.com/rubygems/rubygems/commit/1bb70f75d2 Notes: Merged: https://github.com/ruby/ruby/pull/12890
2025-03-03[rubygems/rubygems] Update parallel_tests.Josef Šimánek
- new version restores previously removed method https://github.com/rubygems/rubygems/commit/5348e88d07 Notes: Merged: https://github.com/ruby/ruby/pull/12840
2025-03-03[rubygems/rubygems] Update vendored uri to 1.0.3Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/176dc7421c Notes: Merged: https://github.com/ruby/ruby/pull/12840
2025-03-03Restore lockfile for vendor_gems.rbHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12840
2025-02-25[rubygems/rubygems] Added fiddle dependency for TestGemExtCargoBuilderHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/a7c6696ffd Notes: Merged: https://github.com/ruby/ruby/pull/12804
2025-01-14Restore lockfile for test-bundlerHiroshi SHIBATA
In the past, bundler updated platform without normalized variable like arm64-darwin-23. We ignored that update. But the current bundler uses arm64-darwin for that. Notes: Merged: https://github.com/ruby/ruby/pull/12570