Blog
Back to blog posts
20 Nov 2025
4.0.0.beta1 Released
RubyGems 4.0.0.beta1 includes security, breaking changes, deprecations, features, performance, enhancements and documentation.
To update to the latest RubyGems you can run:
gem update --system
To install RubyGems by hand see the Download RubyGems page.
### Security:
- Bump up vendored URI to 1.0.4. Pull request #9031 by hsbt
### Breaking changes:
- Removed deprecated
-Coption from gem build. Pull request #9088 by hsbt - Removed deprecated Gem::Specification#has_rdoc, has_rdoc= and has_rdoc?. Pull request #9084 by hsbt
- Removed deprecated
gem querycommand. Pull request #9083 by hsbt - Removed deprecated Gem::DependencyInstaller#find_gems_with_sources. Pull request #9082 by hsbt
- Remove deprecated methods of RubyGems. Pull request #9081 by hsbt
- Make verification methods private. Pull request #9051 by tenderlove
- Deprecate
--defaultoption from install command. Pull request #7588 by hsbt - Switch to 4.0.0.dev in development version. Pull request #9002 by hsbt
- Removed
compatibility.rbfor RG 4.0. Pull request #8899 by hsbt
### Deprecations:
- Deprecate
Gem::Specification#datadir. Pull request #8900 by hsbt
### Features:
- Undeprecate
Gem::Version.new(nil). Pull request #9086 by tenderlove - Add pattern matching support to Gem::NameTuple. Pull request #9064 by baweaver
- Add pattern matching support to Gem::Platform. Pull request #9062 by baweaver
### Performance:
- Remove some memoization. Pull request #9017 by tenderlove
- Pull
Gem.win_platform?out of a hot path. Pull request #8983 by tenderlove - Stop trying to remove every file on extraction. Pull request #8974 by tenderlove
- Use
IO.copy_streamwith IO object directly. Pull request #8970 by tenderlove - Pass a file size to
IO.copy_stream. Pull request #8966 by tenderlove - Use File#chmod rather than FileUtils.chmod. Pull request #8965 by tenderlove
### Enhancements:
- Update all vendored libraries to latest version. Pull request #9089 by hsbt
- Removed unused
Gem::Deprecate. Pull request #9090 by hsbt - Test all tests of
make test-allby ruby core. Pull request #9075 by hsbt - Add debug logging information to see the time it took to download and install a gem. Pull request #9066 by Edouard-chin
- Use
assert_ractorfor testing Ractor. Pull request #9069 by hsbt - Fix constants in TAR to be frozen. Pull request #9041 by tenderlove
- Remove open-ended and prerelease dependency warnings when building gems. Pull request #9050 by jeremyevans
- Revamp CmakeBuilder. Pull request #8753 by cfis
- Restrict what schemes are acceptable in the remote fetcher. Pull request #9022 by tenderlove
- Don’t fail if there is no makefile, simply don’t do anything. Pull request #8879 by ioquatix
- Installs bundler 4.0.0.beta1 as a default gem.
### Documentation:
- [DOC] Fix the location of Gem::Deprecate document. Pull request #9065 by nobu
- Fix typo. Pull request #9012 by etiennebarrie
SHA256 Checksums:
- rubygems-4.0.0.beta1.tgz
d0c63c72f1114efbd9234ccf0d635e1cb1b3d67e9f4cee12f3174cbab0f1bc6b - rubygems-4.0.0.beta1.zip
3843fa0a72cbdfb7c4997ac3ef21bf5aeda7deca2bde00633109f90530692d98 - rubygems-update-4.0.0.beta1.gem
d834c812b01bd54469d57b9d7b031389bdc52a0e5f27e13452c6464d91f3c2dd