RubyGems Navigation menu

Blog

Back to blog posts

2.5.0 Released

RubyGems 2.5.0 includes major enhancements, minor enhancements and bug fixes.

To update to the latest RubyGems you can run:

gem update --system

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.

Major enhancements:

  • Added the Gem::Licenses class which provides a set of standard license identifiers as set by spdx.org. This is now used by the Gem::Specification#license attribute to try to standardize (though not enforce) licenses set by gem authors.

    Pull request #1249 by Kyle Mitchell.

Minor enhancements:

  • Use Molinillo as the resolver library. This is the same resolver as used by Bundler. Pull request #1189 by Samuel E. Giddins.
  • Add --skip=gem_name to Pristine command. Pull request #1018 by windwiny.
  • The parsed gem dependencies file is now available via Gem.gemdeps following Gem.use_gemdeps. Pull request #1224 by Hsing-Hui Hsu, issue #1213 by Michal Papis.
  • Moved description attribute to recommended for Gem::Specification. Pull request #1046 by Michal Papis
  • Moved Gem::Indexer#abbreviate and #sanitize to Gem::Specification. Pull request #1145 by Arthur Nogueira Neves
  • Cache Gem::Version segments for #bump and #release. Pull request #1131 by Matijs van Zuijlen
  • Fix edge case in levenshtein_distance for comparing longer strings. Pull request #1173 by Richard Schneeman
  • Remove duplication from List#to_a, improving from O(n^2) to O(n) time. Pull request #1200 by Marc Siegel.
  • Gem::Specification.add_specs is deprecated and will be removed from version 3.0 with no replacement. To add specs, install the gem, then reset the cache.
  • Gem::Specification.add_spec is deprecated and will be removed from version 3.0 with no replacement. To add specs, install the gem, then reset the cache.
  • Gem::Specification.remove_spec is deprecated and will be removed from version 3.0 with no replacement. To remove specs, uninstall the gem, then reset the cache by calling Gem::Specification.reset.
  • Call Array#compact before calling Array#uniq for minor speed improvement in the Gem::Specification#files method. Pull request #1253 by Marat Amerov.
  • Use stringio instead of custom String classes. Pull request #1250 by Petr Skocik.
  • Use URI#host instead of URI#hostname to retain backwards compatibility with Ruby 1.9.2 and earlier in util library. Pull request #1288 by Joe Rafaniello.
  • Documentation update for gem sources. Pull request #1324 by Ilya Vassilevsky.
  • Documentation update for required_ruby_version. Pull request #1321 by Matt Patterson.
  • Documentation update for gem update. Pull request #1306 by Tim Blair.
  • Emit a warning on SRV resolve failure. Pull request #1023 by Ivan Kuchin.
  • Allow duplicate dependencies between runtime and development. Pull request #1032 by Murray Steele.
  • The gem env command now shows the user installation directory. Pull request #1343 by Luis Sagastume.
  • The Gem::Platform#=== method now treats a nil cpu arch the same as ‘universal’. Pull request #1356 by Daniel Berger.
  • Improved memory performance in Gem::Specification.traverse. Pull request #1188 by Aaron Patterson.
  • RubyGems packages now support symlinks. Pull request #1209 by Samuel E. Giddins.
  • RubyGems no longer outputs mkmf.log if it does not exist. Pull request #1222 by Andrew Hooker.
  • Added Bitrig platform. Pull request #1233 by John C. Vernaleo.
  • Improved error message for first-time RubyGems developers. Pull request #1241 by André Arko
  • Improved performance of Gem::Specification#load with cached specs. Pull request #1297 by Samuel E. Giddins.
  • Gem::RemoteFetcher allows users to set HTTP headers. Pull request #1363 by Agis Anastasopoulos.

Bug fixes:

  • Fixed Rake homepage url in example for Gem::Specification#homepage. Pull request #1171 by Arthur Nogueira Neves
  • Don’t crash if partially uninstalled gem can’t be found. Pull request #1283 by Cezary Baginski.
  • Test warning cleanup. Pull request #1298 by Samuel E. Giddins.
  • Documentation fix for GemDependencyAPI. Pull request #1308 by Michael Papis.
  • Fetcher now ignores ENOLCK errors in single threaded environments. This handles an issue with gem installation on NFS as best we can. Addresses issue #1176 by Ryan Moore. Pull request #1327 by Daniel Berger.
  • Fix some path quoting issues in the test suite. Pull request #1328 by Gavin Miller.
  • Fix NoMethodError in running ruby processes when gems are uninstalled. Pull request #1332 by Peter Drake.
  • Fixed a potential NoMethodError for gem cleanup. Pull request #1333 by Peter Drake.
  • Fixed gem help bug. Issue #1352 reported by bogem, pull request #1357 by Luis Sagastume.
  • Remove temporary directories after tests finish. Pull request #1181 by Nobuyoshi Nokada.
  • Update links in RubyGems documentation. Pull request #1185 by Darío Hereñú.
  • Prerelease gem executables can now be run. Pull request #1186 by Samuel E. Giddins.
  • Updated RubyGems travis-ci ruby versions. Pull request #1187 by Samuel E. Giddins.
  • Fixed release date of RubyGems 2.4.6. Pull request #1190 by Frieder Bluemle.
  • Fixed bugs in gem activation. Pull request #1202 by Miklós Fazekas.
  • Fixed documentation for gem list. Pull request #1228 by Godfrey Chan.
  • Fixed #1200 history entry. Pull request #1234 by Marc Siegel.
  • Fixed synchronization issue when resetting the Gem::Specification gem list. Pull request #1239 by Samuel E. Giddins.
  • Fixed running tests in parallel. Pull request #1257 by SHIBATA Hiroshi.
  • Fixed running tests with --program-prefix or --program-suffix for ruby. Pull request #1258 by Shane Gibbs.
  • Fixed Gem::Specification#to_yaml. Pull request #1262 by Hiroaki Izu.
  • Fixed taintedness of Gem::Specification#raw_require_paths. Pull request #1268 by Sam Ruby.
  • Fixed sorting of platforms when installing gems. Pull request #1271 by nonsequitur.
  • Use --no-document over deprecated documentation options when installing dependencies on travis. Pull request #1272 by takiy33.
  • Improved support for IPv6 addresses in URIs. Pull request #1275 by Joe Rafaniello.
  • Spec validation no longer crashes if a file does not exist. Pull request #1278 by Samuel E. Giddins.
  • Gems can now be installed within rescue. Pull request #1282 by Samuel E. Giddins.
  • Increased Diffie-Hellman key size for tests for modern OpenSSL. Pull request #1290 by Vít Ondruch.
  • RubyGems handles invalid config files better. Pull request #1367 by Agis Anastasopoulos.

SHA256 Checksums:

  • rubygems-2.5.0.tgz
    a39e95acb86f52fdca38b1484b2eed61a7f76551119079d7a9f8c67c5be78831
  • rubygems-2.5.0.zip
    e5256076a4cabacc32c4369bd665dd0af8167d8895500426970f39bc74b6c228
  • rubygems-update-2.5.0.gem
    bb63b29e0b1604b48784a6c0646e9d727135c829c8466406ab8dd2f253f5c091
Eric Hodel