RubyGems Navigation menu

Blog

Back to blog posts

3.2.3 Released

RubyGems 3.2.3 fixes a long standing bug in the gem client.

gem install now doesn’t try to forcefully install the latest version of the target gem if the current ruby or rubygems version doesn’t meet its required_ruby_version or required_rubygems_version requirements, respectively. Instead, it will try to install the newest version that supports those.

As a result, running gem install rails on ruby 2.4 now installs rails 5.2.4.4, the latest rails that supports ruby 2.4, instead of raising an error.

You may have needed to update your workflows running old rubies with something like the following to workaround this issue:

gem install bundler -v '~> 1.17'

Indeed, when we dropped support for old rubies in bundler and released bundler 2, that meant gem install bundler suddenly started failing for people still running those rubies.

If you update rubygems in those workflows using

gem update --system

You can go back to the previous gem install bundler and rubygems will do the right thing.

If you need to upgrade or downgrade please follow the how to upgrade/downgrade RubyGems instructions. To install RubyGems by hand see the Download RubyGems page.

Enhancements:

  • Fix misspellings in default API key name. Pull request #4177 by hsbt

Bug fixes:

  • Respect required_ruby_version and required_rubygems_version constraints when looking for gem install candidates. Pull request #4110 by deivid-rodriguez

=== 3.2.2 / 2020-12-17

Bug fixes:

  • Fix issue where CLI commands making more than one request to rubygems.org needing an OTP code would crash or ask for the code twice. Pull request #4162 by sonalkr132
  • Fix building rake extensions that require openssl. Pull request #4165 by deivid-rodriguez
  • Fix gem update --system displaying too many changelog entries. Pull request #4145 by deivid-rodriguez

=== 3.2.1 / 2020-12-14

Enhancements:

  • Added help message for gem i webrick in gem server command. Pull request #4117 by hsbt

Bug fixes:

  • Added the missing loading of fileutils same as load_specs. Pull request #4124 by hsbt
  • Fix Resolver::APISet to always include prereleases when necessary. Pull request #4113 by deivid-rodriguez

=== 3.2.0 / 2020-12-07

Enhancements:

  • Do not override Kernel#warn when there is no need. Pull request #4075 by eregon
  • Update endpoint of gem signin command. Pull request #3840 by sonalkr132
  • Omit deprecated commands from command help output. Pull request #4023 by landongrindheim
  • Suggest alternatives in gem query deprecation. Pull request #4021 by landongrindheim
  • Lazily load time, cgi, and zlib. Pull request #4010 by deivid-rodriguez
  • Don’t hit the network when installing dependencyless local gemspec. Pull request #3968 by deivid-rodriguez
  • Add --force option to gem sources command. Pull request #3956 by andy-smith-msm
  • Lazily load openssl. Pull request #3850 by deivid-rodriguez
  • Pass more information when comparing platforms. Pull request #3817 by eregon

Bug fixes:

  • Use better owner & group for files in rubygems package. Pull request #4065 by deivid-rodriguez
  • Improve gem build -C flag. Pull request #3983 by bronzdoc
  • Handle unexpected behavior with URI#merge and subpaths missing trailing slashes. Pull request #3123 by drcapulet
  • Add missing fileutils require in rubygems installer. Pull request #4036 by deivid-rodriguez
  • Fix --platform option to gem specification being ignored. Pull request #4043 by deivid-rodriguez
  • Expose --no-minimal-deps flag to install the latest version of dependencies. Pull request #4030 by deivid-rodriguez
  • Fix “stack level too deep” error when overriding Warning.warn. Pull request #3987 by eregon
  • Append ‘.gemspec’ extension only when it is not present. Pull request #3988 by voxik
  • Install to correct plugins dir when using --build-root. Pull request #3972 by deivid-rodriguez
  • Fix --build-root flag under Windows. Pull request #3975 by deivid-rodriguez
  • Fix typo_squatting? false positive for rubygems.org itself. Pull request #3951 by andy-smith-msm
  • Make --default and --install-dir options to gem install play nice together. Pull request #3906 by deivid-rodriguez

Deprecations:

  • Deprecate server command. Pull request #3868 by bronzdoc

Performance:

  • Don’t change ruby process CWD when building extensions. Pull request #3498 by deivid-rodriguez

=== 3.2.0.rc.2 / 2020-10-08

Enhancements:

  • Make –dry-run flag consistent across rubygems commands. Pull request #3867 by bronzdoc
  • Disallow downgrades to too old versions. Pull request #3566 by deivid-rodriguez
  • Added --platform option to build command. Pull request #3079 by nobu
  • Have “gem update –system” pass through the --silent flag. Pull request #3789 by duckinator
  • Add writable check for cache dir. Pull request #3876 by xndcn
  • Warn on duplicate dependency in a specification. Pull request #3864 by bronzdoc
  • Fix indentation in gem env. Pull request #3861 by colby-swandale
  • Let more exceptions flow. Pull request #3819 by deivid-rodriguez
  • Ignore internal frames in RubyGems’ Kernel#warn. Pull request #3810 by eregon

Bug fixes:

  • Add missing fileutils require. Pull request #3911 by deivid-rodriguez
  • Fix false positive warning on Windows when PATH has File::ALT_SEPARATOR. Pull request #3829 by deivid-rodriguez
  • Fix Kernel#warn override to handle backtrace location with nil path. Pull request #3852 by jeremyevans
  • Don’t format executables on gem update --system. Pull request #3811 by deivid-rodriguez
  • gem install --user fails with Gem::FilePermissionError on the system plugins directory. Pull request #3804 by nobu

Performance:

  • Avoid duplicated generation of APISpecification objects. Pull request #3940 by mame
  • Eval defaults with frozen_string_literal: true. Pull request #3847 by casperisfine
  • Deduplicate the requirement operators in memory. Pull request #3846 by casperisfine
  • Optimize Gem.already_loaded?. Pull request #3793 by casperisfine

=== 3.2.0.rc.1 / 2020-07-04

Enhancements:

  • Test TruffleRuby in CI. Pull request #2797 by Benoit Daloze.
  • Rework plugins system and speed up rubygems. Pull request #3108 by David Rodríguez.
  • Specify explicit separator not to be affected by $;. Pull request #3424 by Nobuyoshi Nakada.
  • Enable Layout/ExtraSpacing cop. Pull request #3449 by David Rodríguez.
  • Rollback gem deprecate. Pull request #3530 by Luis Sagastume.
  • Normalize heredoc delimiters. Pull request #3533 by David Rodríguez.
  • Log messages to stdout in rake package. Pull request #3632 by David Rodríguez.
  • Remove explicit psych activation. Pull request #3636 by David Rodríguez.
  • Delay fileutils loading to fix some warnings. Pull request #3637 by David Rodríguez.
  • Make sure rubygems/package can be directly required reliably. Pull request #3670 by Luis Sagastume.
  • Make sure tmp folder exists before calling Dir.tmpdir. Pull request #3711 by David Rodríguez.
  • Add Gem.disable_system_update_message to disable gem update –system if needed. Pull request #3720 by Josef Šimánek.
  • Tweaks to play nice with ruby-core setup. Pull request #3733 by David Rodríguez.
  • Remove explicit require for auto-loaded constant. Pull request #3751 by Karol Bucek.
  • Test files should not be included in spec.files. Pull request #3758 by Marc-André Lafortune.
  • Remove TODO comment about warning on setting instead of pushing. Pull request #2823 by Luis Sagastume.
  • Add deprecate command method. Pull request #2935 by Luis Sagastume.
  • Simplify deprecate command method. Pull request #2974 by Luis Sagastume.
  • Fix Gem::LOADED_SPECS_MUTEX handling for recursive locking. Pull request #2985 by MSP-Greg.
  • Add funding_uri metadata field to gemspec. Pull request #3060 by Colby Swandale.
  • Updates to some old gem-signing docs. Pull request #3063 by Tieg Zaharia.
  • Update the gem method for Gem::Installer. Pull request #3137 by Daniel Berger.
  • Simplify initial gem help output. Pull request #3148 by Olivier Lacan.
  • Resolve latest version via gem contents. Pull request #3149 by Dan Rice.
  • Install suggestions. Pull request #3151 by Sophia Castellarin.
  • Only rescue the errors we actually want to rescue. Pull request #3156 by David Rodríguez.

Bug fixes:

  • Accept not only /usr/bin/env but also /bin/env in some tests. Pull request #3422 by Yusuke Endoh.
  • Skip a test that attempts to remove the current directory on Solaris. Pull request #3423 by Yusuke Endoh.
  • Fix race condition on bundler’s parallel installer. Pull request #3440 by David Rodríguez.
  • Fix platform comparison check in #contains_requirable_file?. Pull request #3495 by Benoit Daloze.
  • Improve missing spec error. Pull request #3559 by Luis Sagastume.
  • Fix hidden bundler template installation from rubygems updater. Pull request #3674 by David Rodríguez.
  • Fix gem update –user-install. Pull request #2901 by Luis Sagastume.
  • Correct conflict list when uninstallation is prevented. Pull request #2973 by David Rodríguez.
  • Fix error when trying to find bundler with a deleted “working directo…. Pull request #3090 by Luis Sagastume.
  • Fix -I require priority. Pull request #3124 by David Rodríguez.
  • Fix ruby setup.rb for new plugins layout. Pull request #3144 by David Rodríguez.

Deprecations:

  • Set deprecation warning on query command. Pull request #2967 by Luis Sagastume.

Breaking changes:

  • Remove ruby 1.8 leftovers. Pull request #3442 by David Rodríguez.
  • Minitest cleanup. Pull request #3445 by David Rodríguez.
  • Remove builder gem requirement for gem regenerate_index. Pull request #3552 by David Rodríguez.
  • Remove modelines for consistency. Pull request #3714 by David Rodríguez.
  • Stop using deprecated OpenSSL::Digest constants. Pull request #3763 by Bart de Water.
  • Remove Gem module deprecated methods. Pull request #3101 by Luis Sagastume.
  • Remove ubygems.rb. Pull request #3102 by Luis Sagastume.
  • Remove Gem::Commands::QueryCommand. Pull request #3104 by Luis Sagastume.
  • Remove dependency installer deprecated methods. Pull request #3106 by Luis Sagastume.
  • Remove Gem::UserInteraction#debug method. Pull request #3107 by Luis Sagastume.
  • Remove options from Gem::GemRunner.new. Pull request #3110 by Luis Sagastume.
  • Remove deprecated Gem::RemoteFetcher#fetch_size. Pull request #3111 by Luis Sagastume.
  • Remove source_exception from Gem::Exception. Pull request #3112 by Luis Sagastume.
  • Requiring rubygems/source_specific_file is deprecated, remove it. Pull request #3114 by Luis Sagastume.

SHA256 Checksums:

  • rubygems-3.2.3.tgz
    601dd68cb1a2352c008685149d32e0b2e0f4865a932c36fa142da1857fd892ed
  • rubygems-3.2.3.zip
    3d24113a3e6de69751c487f70ec45e922c4fa01b8d41b29e8b6f0aec49482885
  • rubygems-update-3.2.3.gem
    69cf2c0fd35fc447976bede8f0c55169b3c4f4e5d695be2e09304b9106b2a086
David Rodríguez