RubyGems 2.3.0 includes 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.
- Added the
opencommand which allows you to inspect the source of a gem using your editor. Issue #789 by Mike Perham. Pull request #804 by Vitali F.
updatecommand shows a summary of which gems were and were not updated. Issue #544 by Mark D. Blackwell. Pull request #777 by Tejas Bubane.
- Improved “could not find ‘gem’” error reporting. Pull request #913 by Richard Schneeman.
- Gem.use_gemdeps now accepts an argument specifying the path of the gem dependencies file. When the file is not found an ArgumentError is raised.
- Writing a .lock file for a gem dependencies file is now controlled by the –[no-]lock option. Pull reuqest #774 by Jeremy Evans.
- Suggestion of alternate names and spelling corrections during install can be suppressed with the –no-suggestions option. Issue #867 by Jimmy Cuadra.
- Added mswin64 support. Pull request #881 by U. Nakamura.
- A gem is installable from an IO again (as in RubyGems 1.8.x and older). Pull request #716 by Xavier Shay.
- RubyGems no longer attempts to build extensions during activation. Instead a warning is issued instructing you to run
gem pristinewhich will build the extensions for the current platform. Issue #796 by dunric.
- Added Gem::UserInteraction#verbose which prints when the –verbose option is given. Pull request #811 by Aaron Patterson.
- RubyGems can now fetch gems from private repositories using S3. Pull request #856 by Brian Palmer.
- Added Gem::ConflictError subclass of Gem::LoadError so you can distinguish conflicts from other problems. Pull request #841 by Aaron Patterson.
- Cleaned up unneeded load_yaml bootstrapping in Rakefile. Pull request #815 by Zachary Scott.
- Improved performance of conflict resolution. Pull request #842 by Aaron Patterson.
- Add documentation of “~> 0” to Gem::Version. Issue #896 by Aaron Suggs.
- Added CONTRIBUTING file. Pull request #849 by Mark Turner.
- Allow use of bindir in windows_stub_script in .bat Pull request #818 by @unak and @nobu
- Use native File::PATH_SEPARATOR and remove $ before gem env on Gem::Dependency#to_specs. Pull request #915 by @parkr
- RubyGems recommends SPDX IDs for licenses now. Pull request #917 by Benjamin Fleischer.
- RubyGems now only fetches the latest specs to find misspellings which speeds up gem suggestions. Pull request #808 by Aaron Patterson.
- The given .gem is installed again when multiple versions of the same gem exist in the current directory. Bug #875 by Prem Sichanugrist.
- Local gems are preferred by name over remote gems again. Bug #834 by jonforums.
- RubyGems can install local prerelease gems again. Pull request #866 by Aaron Patterson. Issue #813 by André Arko.
- RubyGems installs development dependencies correctly again. Issue #893 by Jens Wille.
- RubyGems only installs prerelease versions when they are requested again. Issue #853 by Seth Vargo, special thanks to Zachary Scott and Ben Moss. Issue #884 by Nathaniel Bibler.
- Fixed RubyGems list and search command help. Pull request #905 and #928 by Gabriel Gilder.
- The list of gems to uninstall is always sorted now. Bug #918 by postmodern.
- The update command only updates exactly matching gem names now. Bug #919 by postmodern.
- Gem::Server now supports prerelease versions. Bug #857 by Marcelo Alvim.
- RubyGems no longer raises an exception immediately when gems are missing with RUBYGEMS_GEMDEPS. A warning is printed instead. Issue #886 by Michael Kaiser-Nyman.
- Commands using the rubygems.org API no longer try to sign-in when a non-rubygems API key has been chosen. Bug #826 by Ben Sedat.
- Updated documentation of Gem::Specification#executables to indicate that only ruby scripts are allowed. Bug #830 by Geoff Nixon.
- Gem dependency API supports multiple platforms for #platform and #platforms now. Bug #821 by johnny5-.
- Gem dependency API supports lockfiles without explicit sources. Bug #820 by johnny5-.
- Gem dependency API supports lockfiles with multiple sources. Bug #822 by johnny5-, bug #851 by sumit shah.
- Gem dependency API supports lockfiles with git sources using branch, tag and ref. Bug #822 by johnny5-, #931 by Christoph Blank.
- Gem dependency API no longer raises an exception when a gem does not exist in one of the configured sources. Bug #897 by Michael Kaiser-Nyman.
- Gem dependency API no longer lists development dependencies in the lockfile. Bug #768 by Diego Viola, #916 by Santiago Pastorino.
- SSL configuration entries in ~/.gemrc are properly round-tripped. Bug #837 by Noah Luck Easterly.
- The environment command now shows the system configuration directory where the all-users gemrc lives. Bug #827 by Ben Langfeld.
- Improved speed of conflict checking when activating gems. Pull request #843 by Aaron Patterson.
- Improved speed of levenshtein distance for gem suggestion misspellings. Pull requests #809, #812 by Aaron Patterson.
- Restored persistent connections. Pull request #869 by Aaron Patterson.
- Reduced requests when fetching gems with the bundler API. Pull request #773 by Charlie Somerville.
- Reduced dependency prefetching to improve install speed. Pull requests #871, #872 by Matthew Draper.
- RubyGems now avoids net/http auto-proxy detection. Issue #824 by HINOHARA Hiroshi.
- Removed conversion of Gem::List (used for debugging installs) to unless necessary. Pull request #870 by Aaron Patterson.
- RubyGems now prints release notes from the current release. Bug #814 by André Arko.
- RubyGems allows installation of unsigned gems again with -P MediumSecurity and lower. Bug #859 by Justin S. Collins.
- Fixed typo in Jim Weirich’s name. Ruby pull request #577 by Mo Khan.
- Fixed typo in Gem.datadir documentation. Pull request #868 by Patrick Jones.
- Fixed File.exists? warnings. Pull request #829 by SHIBATA Hiroshi.
- Fixed show_release_notes test for LANG=C. Issue #862 by Luis Lavena.
- Fixed Gem::Package from IO tests on windows. Patch from issue #861 by Luis Lavena.
- Check for nil extensions as BasicSpecification does not initialize them. Pull request #882 by André Arko.
- Fixed Gem::BasicSpecification#require_paths receives a String for @require_paths. Pull requrest #904 by @danielpclark
- Fixed circular require warnings. Bug #908 by Zachary Scott.
- Gem::Specification#require_paths can no longer accidentally be an Array. Pull requests #904, #909 by Daniel P. Clark.
- Don’t build extensions if
build_dir/extensionsisn’t writable. Pull request #912 by @dunric
- Gem::BasicSpecification#require_paths respects default_ext_dir_for now. Bug #852 by Vít Ondruch.