Add a way to pin RubyGems and pin to 3.2
What does this MR do and why?
Add a way to pin RubyGems and pin to 3.2
The bundled RubyGems for Ruby 2.7 is 3.1.6, which has a bug that is breaking JiHu: gitlab!90487 (comment 998489659)
- Ruby 2.7 upgraded RubyGems to 3.2.33: https://gitlab.com/gitlab-org/gitlab-build-images/-/jobs/2620663198#L4090
- It also upgraded Bundler to 2.2.33 along the way
- Ruby 3.0 has up-to-date RubyGems therefore it does nothing: https://gitlab.com/gitlab-org/gitlab-build-images/-/jobs/2620663240#L4110
Changes from RubyGems 3.1.6 -> 3.2.33
3.2.33 / 2021-12-07
Deprecations:
- Deprecate typo name. Pull request #5109 by nobu
Enhancements:
- Add login & logout alias for the signin & signout commands. Pull request #5133 by colby-swandale
- Fix race conditions when reading & writing gemspecs concurrently. Pull request #4408 by deivid-rodriguez
- Installs bundler 2.2.33 as a default gem.
Bug fixes:
- Fix
ruby setup.rbtrying to write outside of--destdir. Pull request #5053 by deivid-rodriguez
Documentation:
- Move required_ruby_version gemspec attribute to recommended section. Pull request #5130 by simi
- Ignore to generate the documentation from vendored libraries. Pull request #5118 by hsbt
3.2.32 / 2021-11-23
Enhancements:
- Refactor installer thread safety protections. Pull request #5050 by deivid-rodriguez
- Allow gem activation from
operating_system.rb. Pull request #5044 by deivid-rodriguez - Installs bundler 2.2.32 as a default gem.
3.2.31 / 2021-11-08
Enhancements:
- Don't pass empty
DESTDIRtonmakesince it works differently from standardmake. Pull request #5057 by hsbt - Fix
gem installvsgem fetchinconsistency. Pull request #5037 by deivid-rodriguez - Lazily load and vendor
optparse. Pull request #4881 by deivid-rodriguez - Use a vendored copy of
tsortinternally. Pull request #5027 by deivid-rodriguez - Install bundler 2.2.31 as a default gem.
Bug fixes:
- Fix
ruby setup.rbwhen--prefixis passed. Pull request #5051 by deivid-rodriguez - Don't apply
--destdirtwice when runningsetup.rb. Pull request #2768 by alyssais
3.2.30 / 2021-10-26
Enhancements:
- Add support to build and sign certificates with multiple key algorithms. Pull request #4991 by doodzik
- Avoid loading the
digestgem unnecessarily. Pull request #4979 by deivid-rodriguez - Prefer
require_relativefor all internal requires. Pull request #4978 by deivid-rodriguez - Add missing
requireoftimewithinGem::Request.verify_certificate_message. Pull request #4975 by nobu - Install bundler 2.2.30 as a default gem.
Performance:
- Speed up
gem install, specially under Windows. Pull request #4960 by deivid-rodriguez
3.2.29 / 2021-10-08
Enhancements:
- Only disallow FIXME/TODO for first word of gemspec description. Pull request #4937 by duckinator
- Install bundler 2.2.29 as a default gem.
Bug fixes:
- Fix
wordymethod inSourceFetchProblemchanging the password of source. Pull request #4910 by Huangxiaodui
Performance:
- Improve
requireperformance, particularly on systems with a lot of gems installed. Pull request #4951 by pocke
3.2.28 / 2021-09-23
Enhancements:
- Support MINGW-UCRT. Pull request #4925 by hsbt
- Only check if descriptions start with FIXME/TODO. Pull request #4841 by duckinator
- Avoid loading
uriunnecessarily when activating gems. Pull request #4897 by deivid-rodriguez - Install bundler 2.2.28 as a default gem.
Bug fixes:
- Fix redacted credentials being sent to gemserver. Pull request #4919 by jdliss
3.2.27 / 2021-09-03
Enhancements:
- Redact credentails when printing URI. Pull request #4868 by intuxicated
- Prefer
require_relativetorequirefor internal requires. Pull request #4858 by deivid-rodriguez - Prioritise gems with higher version for fetching metadata, and stop fetching once we find a valid candidate. Pull request #4843 by intuxicated
- Install bundler 2.2.27 as a default gem.
3.2.26 / 2021-08-17
Enhancements:
- Enhance the error handling for loading the
rubygems/defaults/operating_systemfile. Pull request #4824 by intuxicated - Ignore
RUBYGEMS_GEMDEPSfor the bundler gem. Pull request #4532 by deivid-rodriguez - Install bundler 2.2.26 as a default gem.
Bug fixes:
- Also load user installed rubygems plugins. Pull request #4829 by deivid-rodriguez
3.2.25 / 2021-07-30
Enhancements:
- Don't load the
base64library since it's not used. Pull request #4785 by deivid-rodriguez - Don't load the
resolvlibrary since it's not used. Pull request #4784 by deivid-rodriguez - Lazily load
shellwordslibrary. Pull request #4783 by deivid-rodriguez - Check requirements class before loading marshalled requirements. Pull request #4651 by nobu
- Install bundler 2.2.25 as a default gem.
Bug fixes:
- Add missing
require 'fileutils'inGem::ConfigFile. Pull request #4768 by ybiquitous
3.2.24 / 2021-07-15
Enhancements:
- Install bundler 2.2.24 as a default gem.
Bug fixes:
- Fix contradictory message about deletion of default gem. Pull request #4739 by jaredbeck
Documentation:
- Add a description about
GEM_HOST_OTP_CODEto help text. Pull request #4742 by ybiquitous
3.2.23 / 2021-07-09
Enhancements:
- Rewind IO source to allow working with contents in memory. Pull request #4729 by drcapulet
- Install bundler 2.2.23 as a default gem.
3.2.22 / 2021-07-06
Enhancements:
- Allow setting
--otpviaGEM_HOST_OTP_CODE. Pull request #4697 by CGA1123 - Fixes for the edge case when openssl library is missing. Pull request #4695 by rhenium
- Install bundler 2.2.22 as a default gem.
3.2.21 / 2021-06-23
Enhancements:
- Fix typo in OpenSSL detection. Pull request #4679 by osyoyu
- Add the most recent licenses from spdx.org. Pull request #4662 by nobu
- Simplify setup.rb code to allow installing rubygems from source on truffleruby 21.0 and 21.1. Pull request #4624 by deivid-rodriguez
- Install bundler 2.2.21 as a default gem.
Bug fixes:
- Create credentials folder when setting API keys if not there yet. Pull request #4665 by deivid-rodriguez
3.2.20 / 2021-06-11
Security fixes:
- Verify plaform before installing to avoid potential remote code execution. Pull request #4667 by sonalkr132
Enhancements:
- Add better specification policy error description. Pull request #4658 by ceritium
- Install bundler 2.2.20 as a default gem.
3.2.19 / 2021-05-31
Enhancements:
- Fix
gem help buildoutput format. Pull request #4613 by tnir - Install bundler 2.2.19 as a default gem.
3.2.18 / 2021-05-25
Enhancements:
- Don't leave temporary directory around when building extensions to improve build reproducibility. Pull request #4610 by baloo
- Install bundler 2.2.18 as a default gem.
3.2.17 / 2021-05-05
Enhancements:
- Only print month & year in deprecation messages. Pull request #3085 by Schwad
- Make deprecate method support ruby3's keyword arguments. Pull request #4558 by mame
- Update the default bindir on macOS. Pull request #4524 by nobu
- Prefer File.open instead of Kernel#open. Pull request #4529 by mame
- Install bundler 2.2.17 as a default gem.
Documentation:
- Fix usage messages to reflect the current POSIX-compatible behaviour. Pull request #4551 by graywolf-at-work
3.2.16 / 2021-04-08
Enhancements:
- Install bundler 2.2.16 as a default gem.
Bug fixes:
- Correctly handle symlinks. Pull request #2836 by voxik
3.2.15 / 2021-03-19
Enhancements:
- Prevent downgrades to untested rubygems versions. Pull request #4460 by deivid-rodriguez
- Install bundler 2.2.15 as a default gem.
Bug fixes:
- Fix missing require breaking
gem cert. Pull request #4464 by lukehinds
3.2.14 / 2021-03-08
Enhancements:
- Less wrapping of network errors. Pull request #4064 by deivid-rodriguez
- Install bundler 2.2.14 as a default gem.
Bug fixes:
- Revert addition of support for
muslvariants to restore graceful fallback on Alpine. Pull request #4434 by deivid-rodriguez
3.2.13 / 2021-03-03
Enhancements:
- Install bundler 2.2.13 as a default gem.
Bug fixes:
- Support non-gnu libc linux platforms. Pull request #4082 by lloeki
3.2.12 / 2021-03-01
Enhancements:
- Install bundler 2.2.12 as a default gem.
Bug fixes:
- Restore the ability to manually install extension gems. Pull request #4384 by cfis
3.2.11 / 2021-02-17
Enhancements:
- Optionally fallback to IPv4 when IPv6 is unreachable. Pull request #2662 by sonalkr132
- Install bundler 2.2.11 as a default gem.
3.2.10 / 2021-02-15
Enhancements:
- Install bundler 2.2.10 as a default gem.
Documentation:
- Add a
gem pushexample togem help. Pull request #4373 by deivid-rodriguez - Improve documentation for
required_ruby_version. Pull request #4343 by AlexWayfer
3.2.9 / 2021-02-08
Enhancements:
- Install bundler 2.2.9 as a default gem.
Bug fixes:
- Fix error message when underscore selection can't find bundler. Pull request #4363 by deivid-rodriguez
- Fix
Gem::Specification.stubs_forreturning wrong named specs. Pull request #4356 by tompng - Don't error out when activating a binstub unless necessary. Pull request #4351 by deivid-rodriguez
- Fix
gem outdatedincorrectly handling platform specific gems. Pull request #4248 by deivid-rodriguez
3.2.8 / 2021-02-02
Enhancements:
- Install bundler 2.2.8 as a default gem.
Bug fixes:
- Fix
gem installcrashing on gemspec with nil required_ruby_version. Pull request #4334 by pbernays
3.2.7 / 2021-01-26
Enhancements:
- Install bundler 2.2.7 as a default gem.
Bug fixes:
- Generate plugin wrappers with relative requires. Pull request #4317 by deivid-rodriguez
3.2.6 / 2021-01-18
Enhancements:
- Fix
Gem::Platform#inspectshowing duplicate information. Pull request #4276 by deivid-rodriguez - Install bundler 2.2.6 as a default gem.
Bug fixes:
- Swallow any system call error in
ensure_gem_subdirsto support jruby embedded paths. Pull request #4291 by kares - Restore accepting custom make command with extra options as the
makeenv variable. Pull request #4271 by terceiro
3.2.5 / 2021-01-11
Enhancements:
- Install bundler 2.2.5 as a default gem.
Bug fixes:
- Don't load more specs after the whole set of specs has been setup. Pull request #4262 by deivid-rodriguez
- Fix broken
bundlerexecutable aftergem update --system. Pull request #4221 by deivid-rodriguez
3.2.4 / 2020-12-31
Enhancements:
- Use a CHANGELOG in markdown for rubygems. Pull request #4168 by deivid-rodriguez
- Never spawn subshells when building extensions. Pull request #4190 by deivid-rodriguez
- Install bundler 2.2.4 as a default gem.
Bug fixes:
- Fix fallback to the old index and installation from it not working. Pull request #4213 by deivid-rodriguez
- Fix installing from source on truffleruby. Pull request #4201 by deivid-rodriguez
3.2.3 / 2020-12-22
Enhancements:
- Fix misspellings in default API key name. Pull request #4177 by hsbt
- Install bundler 2.2.3 as a default gem.
Bug fixes:
- Respect
required_ruby_versionandrequired_rubygems_versionconstraints when looking forgem installcandidates. Pull request #4110 by deivid-rodriguez
3.2.2 / 2020-12-17
Enhancements:
- Install bundler 2.2.2 as a default gem.
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 --systemdisplaying 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
- Install bundler 2.2.1 as a default gem.
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 querydeprecation. Pull request #4021 by landongrindheim - Lazily load
time,cgi, andzlib. Pull request #4010 by deivid-rodriguez - Don't hit the network when installing dependencyless local gemspec. Pull request #3968 by deivid-rodriguez
- Add
--forceoption togem sourcescommand. 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
- Install bundler 2.2.0 as a default gem.
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
fileutilsrequire in rubygems installer. Pull request #4036 by deivid-rodriguez - Fix
--platformoption togem specificationbeing ignored. Pull request #4043 by deivid-rodriguez - Expose
--no-minimal-depsflag 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-rootflag under Windows. Pull request #3975 by deivid-rodriguez - Fix
typo_squatting?false positive forrubygems.orgitself. Pull request #3951 by andy-smith-msm - Make
--defaultand--install-diroptions togem installplay 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
--platformoption tobuildcommand. Pull request #3079 by nobu - Have "gem update --system" pass through the
--silentflag. 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 --userfails withGem::FilePermissionErroron 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/ExtraSpacingcop. 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
psychactivation. Pull request #3636 by David Rodríguez. - Delay
fileutilsloading 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
tmpfolder exists before callingDir.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_urimetadata 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.rbfor 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
buildergem requirement forgem 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.
Edited by Lin Jen-Shin