summaryrefslogtreecommitdiff
path: root/tool
AgeCommit message (Collapse)Author
2025-12-17test_sync_default_gems.rb: Omit if git is v2.43 or olderTakashi Kokubun
2025-12-17test_commit_email.rb: Ensure #teardown doesn't failTakashi Kokubun
if test is omitted. Follow up c4e090def134f9b109991b74c027648564963763
2025-12-18Update bundled bigdecimal and rbs (#15611)tomoya ishida
* Bundle rbs-3.10.0.pre.1 * Update rbs gem entry with commit hash Updated rbs entry to include commit hash. * Fix rbs entry in bundled_gems * Update rbs gem to version 3.10.0.pre.2 Updated rbs gem version from 3.10.0.pre.1 to 3.10.0.pre.2. * Update bundled bigdecimal to v4.0.1 --------- Co-authored-by: Soutaro Matsumoto <matsumoto@soutaro.com>
2025-12-17Bundle RubyGems 4.0.2 and Bundler 4.0.2Hiroshi SHIBATA
2025-12-15ZJIT: Add iongraph-generating Ruby script (#15466)Max Bernstein
Run like so: $ ../tool/zjit_iongraph.rb ../build-dev/miniruby --zjit-call-threshold=2 tmp/ghbug.rb false false tmp/ghbug.rb:3:in 'Object#doit': this shouldnt ever be nil (RuntimeError) from tmp/ghbug.rb:10:in '<main>' W, [2025-12-09T11:00:32.070382 #67400] WARN -- : Command failed with exit status 1 zjit_iongraph_67405.html $ Then open zjit_iongraph_67405.html with your browser.
2025-12-14[Feature #20925] Skip infinite loop testNobuyoshi Nakada
2025-12-11release.yml: Fix tag conversion for Ruby 4.0Takashi Kokubun
and PREVIOUS_RELEASE_TAG for any .0 releases
2025-12-11tool/format-release: Fix a wrong method referenceTakashi Kokubun
2025-12-11tool/format-release: Carve out the version format logicTakashi Kokubun
to share it with tool/releng/update-www-meta.rb and another place I'm going to modify next.
2025-12-11make-snapshot: Fix Psych::DisallowedClass with newer psychTakashi Kokubun
``` $ tool/format-release ../www.ruby-lang.org 4.0.0-preview2 . /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/class_loader.rb:99:in 'Psych::ClassLoader::Restricted#find': Tried to load unspecified class: Date (Psych::DisallowedClass) from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/class_loader.rb:28:in 'Psych::ClassLoader#load' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/class_loader.rb:40:in 'Psych::ClassLoader#date' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/scalar_scanner.rb:65:in 'Psych::ScalarScanner#tokenize' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:65:in 'Psych::Visitors::ToRuby#deserialize' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:129:in 'Psych::Visitors::ToRuby#visit_Psych_Nodes_Scalar' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:30:in 'Psych::Visitors::Visitor#visit' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:6:in 'Psych::Visitors::Visitor#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:35:in 'Psych::Visitors::ToRuby#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:346:in 'block in Psych::Visitors::ToRuby#revive_hash' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:344:in 'Array#each' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:344:in 'Enumerable#each_slice' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:344:in 'Psych::Visitors::ToRuby#revive_hash' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:168:in 'Psych::Visitors::ToRuby#visit_Psych_Nodes_Mapping' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:30:in 'Psych::Visitors::Visitor#visit' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:6:in 'Psych::Visitors::Visitor#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:35:in 'Psych::Visitors::ToRuby#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:339:in 'block in Psych::Visitors::ToRuby#register_empty' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:339:in 'Array#each' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:339:in 'Psych::Visitors::ToRuby#register_empty' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:147:in 'Psych::Visitors::ToRuby#visit_Psych_Nodes_Sequence' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:30:in 'Psych::Visitors::Visitor#visit' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:6:in 'Psych::Visitors::Visitor#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:35:in 'Psych::Visitors::ToRuby#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:319:in 'Psych::Visitors::ToRuby#visit_Psych_Nodes_Document' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:30:in 'Psych::Visitors::Visitor#visit' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/visitor.rb:6:in 'Psych::Visitors::Visitor#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych/visitors/to_ruby.rb:35:in 'Psych::Visitors::ToRuby#accept' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych.rb:336:in 'Psych.safe_load' from /opt/rubies/3.4.6/lib/ruby/3.4.0/psych.rb:371:in 'Psych.load' from tool/format-release:80:in 'Tarball.parse' from tool/format-release:269:in 'Object#main' from tool/format-release:272:in '<main>' ```
2025-12-11make-snapshot: Update the tag format for Ruby 4.0+ (#15514)Takashi Kokubun
2025-12-11make-snapshot: Remove an unnecessary variableTakashi Kokubun
This is a refactoring change, which should have no impact on behaviors. Now, if patchlevel is true, tag is empty. So `if patchlevel` always does nothing. Given that prerelease is false and tag is not nil, removing `if patchlevel` should have no impact.
2025-12-11make-snapshot: Branch if it's X.Y.Z or X.Y using whenTakashi Kokubun
It just seems like a completely different input, so it makes more sense to me to have it as a separate case. Also, we don't need to support Ruby 2.0 or older.
2025-12-11make-snapshot: Make preview/rc match stricterTakashi Kokubun
to make it a bit more consistent with the other branch
2025-12-11make-snapshot: Drop X.Y.Z-pN supportTakashi Kokubun
We no longer make patchlevel releases.
2025-12-11update-www-meta.rb: Update the tag format for Ruby 4.0+Takashi Kokubun
Just copied format-release fixes in a973526c050fec044ffd7ceeba0ac8e8a1fed299 to this file.
2025-12-11tool/merger.rb: Support the new format in remove_tagTakashi Kokubun
2025-12-11tool/format-release: Fix the tag format for Ruby 4.0+Takashi Kokubun
2025-12-11tool/merger.rb: Update the tag format for Ruby 4.0+Takashi Kokubun
2025-12-11Stop bumping RUBY_PATCHLEVEL in release versions (#15502)Takashi Kokubun
[[Misc #21770]](https://bugs.ruby-lang.org/issues/21770)
2025-12-11Append found lib/<file> entries to spec.files to support out-of-place buildsHiroshi SHIBATA
2025-12-10We don't need to check the latest release of pathnameHiroshi SHIBATA
Pathname is now embedded class of Ruby
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-07Sync doc/stringio in sync_default_gems.rbPeter Zhu
2025-12-07Allow to sync pathname manuallyNobuyoshi Nakada
Still development of the gem continues, sync as possible manually.
2025-12-07Suppress noisy outputsNobuyoshi Nakada
Fix up ruby/ruby#14700.
2025-12-06Sync doc/stringio in sync_default_gems.rbPeter Zhu
2025-12-05tool/update-deps: Skip ZJIT and YJIT+ZJIT build objectsAlan Wu
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-27Store snapshot info date as Date instead of StringTommaso Barbato
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-20Omit a test on s390x linux tripping over a git bugAlan Wu
This test has been reliably failing on recent trunk versions. See: <https://github.com/ruby/ruby/actions/runs/19519712433/job/55880266450#step:14:120>
2025-11-19Revert "[Bug #21697] Keep revision.h outside VCS"Nobuyoshi Nakada
This reverts commit 8986115e0a2a989f2b2ea5945f02c7a13989d640. `RELEASE_DATE` including `YEAR`, `MONTH`, `DAY` are mandatory, while `REVISION` is not.
2025-11-19[Bug #21697] Keep revision.h outside VCSNobuyoshi Nakada
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-17Fix EnvUtil.current_parser for modular GCPeter Zhu
The regexp used in EnvUtil.current_parser did not allow square brackets for feature names. Modular GC uses square brackets for the GC name (such as +GC[mmtk]).
2025-11-17remove old codeNARUSE, Yui
2025-11-17The prev_ver of 4.0.0 is 3.4.0NARUSE, Yui
2025-11-17Skip TestCommitEmail if git is not available.Hiroshi SHIBATA
https://github.com/ruby/actions/actions/runs/19420968008/job/55558315338 ``` 1) Error: TestCommitEmail#test_sendmail_encoding: Test::Unit::ProxyError: No such file or directory - git /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:534:in 'Kernel#spawn' /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:534:in 'Open3.popen_run' /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:379:in 'Open3.popen2' /home/runner/work/actions/actions/ruby-4.0.0-preview2/lib/open3.rb:785:in 'Open3.capture2' /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:89:in 'TestCommitEmail#git' /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:13:in 'block in TestCommitEmail#setup' /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:12:in 'Dir.chdir' /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:12:in 'TestCommitEmail#setup' 2) Error: TestCommitEmail#test_sendmail_encoding: Test::Unit::ProxyError: no implicit conversion of nil into String /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:37:in 'File.unlink' /home/runner/work/actions/actions/ruby-4.0.0-preview2/tool/test/test_commit_email.rb:37:in 'TestCommitEmail#teardown' ```
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-13Exclude lib/unicode_normalize from lib/unNobuyoshi Nakada
2025-11-13Ractor support Windows platform. We need to skip only failing tests of RubyGemsHiroshi SHIBATA
2025-11-13Use omit instead of return in assertionHiroshi SHIBATA
2025-11-13Omit assert_ractor with Windows platformHiroshi SHIBATA
2025-11-13Use path in tmpdir instead of IO::NULLKazuhiro NISHIYAMA
The path already used in tool/test/test_sync_default_gems.rb . Try to fix errors on Windows. https://github.com/ruby/ruby/actions/runs/19316448613/job/55248700110