RubyGems Changelog

What's new in RubyGems 2.6.6

Jun 27, 2016
  • Bug fixes:
  • Sort installed versions to make sure we install the latest version when running `gem update --system`. As a one-time fix, run `gem update --system=2.6.6`. Pull request #1601 by David Radcliffe.

New in RubyGems 2.6.5 (Jun 27, 2016)

  • Minor enhancements:
  • Support for unified Integer in Ruby 2.4. Pull request #1618 by SHIBATA Hiroshi.
  • Update vendored Molinillo to 0.5.0 for performance improvements. Pull request #1638 by Samuel Giddins.
  • Bug fixes:
  • Raise an explicit error if Signer#sign is called with no certs. Pull request #1605 by Daniel Berger.
  • Update `update_bundled_ca_certificates` utility script for directory nesting. Pull request #1583 by James Wen.
  • Fix broken symlink support in tar writer (+ fix broken test). Pull request #1578 by Cezary Baginski.
  • Remove extension directory before (re-)installing. Pull request #1576 by Jeremy Hinegardner.
  • Regenerate test CA certificates with appropriate extensions. Pull request #1611 by rhenium.
  • Rubygems does not terminate on failed file lock when not superuser. Pull request #1582 by Ellen Marie Dash.
  • Fix tar headers with a 101 character name. Pull request #1612 by Paweł Tomulik.
  • Add Gem.platform_defaults to allow implementations to override defaults. Pull request #1644 by Charles Oliver Nutter.
  • Run Bundler tests on TravisCI. Pull request #1650 by Samuel Giddins.

New in RubyGems 2.4.8 (Jun 18, 2015)

  • Bug fixes:
  • Tightened API endpoint checks for CVE-2015-3900

New in RubyGems 2.4.7 (May 15, 2015)

  • Bug fixes:
  • Backport: Limit API endpoint to original security domain for CVE-2015-3900.

New in RubyGems 2.4.6 (Feb 16, 2015)

  • Bug fixes:
  • Fixed resolving gems with both upper and lower requirement boundaries. Issue #1141 by Jakub Jirutka.
  • Moved extension directory after require_paths to fix missing constant bugs in some gems with C extensions. Issue #784 by André Arko, pull request #1137 by Barry Allard.
  • Use Gem::Dependency#requirement when adding a dependency to an existing dependency instance. Pull request #1101 by Josh Cheek.
  • Fixed warning of shadowed local variable in Gem::Specification. Pull request #1109 by Rohit Arondekar
  • Gem::Requirement should always sort requirements before coercion to Hash. Pull request #1139 by Eito Katagiri.
  • The `gem open` command should change the current working directory before opening the editor. Pull request #1142 by Alex Wood.
  • Ensure quotes are stripped from the Windows launcher script used to install gems. Pull request #1115 by Youngjun Song.
  • Fixed errors when writing to NFS to to 0444 files. Issue #1161 by Emmanuel Hadoux.
  • Removed dead code in Gem::StreamUI. Pull request #1117 by mediaslave24.
  • Fixed typos. Pull request #1096 by hakeda.
  • Relaxed CMake dependency for RHEL 6 and CentOS 6. Pull request #1124 by Vít Ondruch.
  • Relaxed Psych dependency. Pull request #1128 by Vít Ondruch.

New in RubyGems 2.4.5 (Dec 15, 2014)

  • Bug fixes:
  • Improved speed of requiring gems. (Around 25% for a 60 gem test). Pull request #1060 by unak.
  • RubyGems no longer attempts to look up gems remotely with the --local flag. Pull request #1084 by Jeremy Evans.
  • Executable stubs use the correct gem version when RUBYGEMS_GEMDEPS is active. Issue #1072 by Michael Kaiser-Nyman.
  • Fixed handling of pinned gems in lockfiles with versions. Issue #1078 by Ian Ker-Seymer.
  • Fixed handling of git@example:gem.git URIs. Issue #1054 by Mogutan Mogu.
  • Fixed handling of platforms retrieved from the dependencies API. Issue #1058 and patch suggestion by tux-mind.
  • RubyGems now suggests a copy-pasteable `gem pristine` command when extensions are missing. Pull request #1057 by Shannon Skipper.
  • Improved errors for long file names when packaging. Pull request #1016 by Piotrek Bator.
  • `gem pristine` now skips gems cannot be found remotely. Pull request #1064 by Tuomas Kareinen.
  • `gem pristine` now caches gems to the proper directory. Pull request #1064 by Tuomas Kareinen.
  • `gem pristine` now skips bundled gems properly. Pull request #1064 by Tuomas Kareinen.
  • Improved interoperability of Vagrant with RubyGems. Pull request #1057 by Vít Ondruch.
  • Renamed CONTRIBUTING to CONTRIBUTING.rdoc to allow markup. Pull request #1090 by Roberto Miranda.
  • Switched from #partition to #reject as only one collection is used. Pull request #1074 by Tuomas Kareinen.
  • Fixed installation of gems on systems using memory-mapped files. Pull request #1038 by Justin Li.
  • Fixed bug in Gem::Text#min3 where `a == b < c`. Pull request #1026 by fortissimo1997.
  • Fixed uninitialized variable warning in BasicSpecification. Pull request #1019 by Piotr Szotkowski.
  • Removed unneeded exception handling for cyclic dependencies. Pull request #1043 by Jens Wille.
  • Fixed grouped expression warning. Pull request #1081 by André Arko.
  • Fixed handling of platforms when writing lockfiles.

New in RubyGems 2.4.2 (Oct 1, 2014)

  • Bug fixes:
  • RubyGems now correctly matches wildcard no_proxy hosts. Issue #997 by voelzemo.
  • Added support for missing git_source method in the gem dependencies API.
  • Fixed handling of git gems with an alternate install directory.
  • Lockfiles will no longer be truncated upon resolution errors.
  • Fixed messaging for `gem owner -a`. Issue #1004 by Aaron Patterson, Ryan Davis.
  • Removed meaningless ensure. Pull request #1003 by gogotanaka.
  • Improved wording of --source option help. Pull request #989 by Jason Clark.
  • Empty build_info files are now ignored. Issue #903 by Adan Alvarado.
  • Gem::Installer ignores dependency checks when installing development dependencies. Issue #994 by Jens Willie.
  • `gem update` now continues after dependency errors. Issue #993 by aaronchi.
  • RubyGems no longer warns about semantic version dependencies for the 0.x range. Issue #987 by Jeff Felchner, pull request #1006 by Hsing-Hui Hsu.
  • Added minimal lock to allow multithread installation of gems. Issue #982 and pull request #1005 by Yorick Peterse
  • RubyGems now considers prerelease dependencies as it did in earlier versions when --prerelease is given. Issue #990 by Jeremy Tryba.
  • Updated capitalization in README. Issue #1010 by Ben Bodenmiller.
  • Fixed activating gems from a Gemfile for default gems. Issue #991 by khoan.
  • Fixed windows stub script generation for Cygwin. Issue #1000 by Brett DiFrischia.
  • Allow gem bindir and ruby.exe to live in separate diretories. Pull request #942 by Ian Flynn.
  • Fixed handling of gemspec in gem dependencies files to match Bundler behavior. Issue #1020 by Michal Papis.
  • Fixed `gem update` when updating to prereleases. Issue #1028 by Santiago Pastorino.
  • RubyGems now fails immediately when a git reference cannot be found instead of spewing git errors. Issue #1031 by Michal Papis

New in RubyGems 2.4.1 (Jul 18, 2014)

  • Bug fixes:
  • RubyGems can now be updated on Ruby implementations that do not support vendordir in RbConfig::CONFIG. Issue #974 by net1957.

New in RubyGems 2.4.0 (Jul 17, 2014)

  • Minor enhancements:
  • The contents command now supports a --show-install-dir option that shows only the directory the gem is installed in. Feature request #966 by Akinori MUSHA.
  • Added a --build-root option to the install command for packagers. Pull request #965 by Marcus Rückert.
  • Added vendor gem support to RubyGems. Package managers may now install gems in Gem.vendor_dir with the --vendor option to gem install. Issue #943 by Marcus Rückert.
  • Bug fixes:
  • Kernel#gem now respects the prerelease flag when activating gems. Previously this behavior was undefined which could lead to bugs when a prerelease version was unintentionally activated. Bug #938 by Joe Ferris.
  • RubyGems now prefers gems from git over installed gems. This allows gems from git to override an installed gem with the same name and version. Bug #944 by Thomas Kriechbaumer.
  • Fixed handling of git gems in a lockfile with unversioned dependencies. Bug #940 by Michael Kaiser-Nyman.
  • The ruby directive in a gem dependencies file is ignored when installing. Bug #941 by Michael Kaiser-Nyman.
  • Added open to list of builtin commands (`gem open` now works). Reported by Espen Antonsen.
  • `gem open` now works with command-line editors. Pull request #962 by Tim Pope.
  • `gem install -g` now respects `--conservative`. Pull request #950 by Jeremy Evans.
  • RubyGems releases announcements now now include checksums. Bug #939 by Alexander E. Fischer.
  • RubyGems now expands ~ in $PATH when checking if installed executables will be runnable. Pull request #945 by Alex Talker.
  • Fixed `gem install -g --explain`. Issue #947 by Luis Lavena. Patch by Hsing-Hui Hsu.
  • RubyGems locks less during gem activation. Pull request #951 by Aaron Patterson and Justin Searls, #969 by Jeremy Tryba.
  • Kernel#gem is now thread-safe. Pull request #967 by Aaron Patterson.
  • RubyGems now handles spaces in directory names for some parts of extension building. Pull request #949 by Tristan Hill.
  • RubyGems no longer defines an empty Date class. Pull Request #948 by Benoit Daloze.
  • RubyGems respects --document options for `gem update` again. Bug 946 by jonforums. Patch by Hsing-Hui Hsu.
  • RubyGems generates documentation again with --ignore-dependencies. Bug #961 by Pulfer.
  • RubyGems can install extensions across partitions now. Pull request #970 by Michael Scherer.
  • `-s` is now short for `--source` which resolves an ambiguity with --no-suggestions. Pull request #955 by Alexander Kahn.
  • Added extra test for ~> for 0.0.X versions. Pull request #958 by Mark Lorenz.
  • Fixed typo in gem updated help. Pull request #952 by Per Modin.
  • Clarified that the gem description should not be excessively long. Part of bug #956 by Renier Morales.
  • Hid documentation of outdated test_files related methods in Specification. Guides issue #90 by Emil Soman.
  • RubyGems now falls back to the old index if the rubygems.org API fails during gem resolution.

New in RubyGems 2.3.0 (Jun 13, 2014)

  • Minor enhancements:
  • Added the `open` command which allows you to inspect the source of a gem using your editor. Issue #789 by Mike Perham. Pull request #804 by Vitali F.
  • The `update` command 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 pristine` which 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.
  • Bug fixes:
  • 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/extensions` isn't writable. Pull request #912 by @dunric
  • Gem::BasicSpecification#require_paths respects default_ext_dir_for now. Bug #852 by Vít Ondruch.

New in RubyGems 2.2.2 (Feb 28, 2014)

  • Bug fixes:
  • Fixed ruby tests when BASERUBY is not set. Patch for #778 by Nobuyoshi Nakada.
  • Removed double requests in RemoteFetcher#cache_update_path to improve remote install speed. Pull request #772 by Charlie Somerville.
  • The mkmf.log is now placed next to gem_make.out when building extensions.
  • `gem install -g --local` no longer accesses the network. Bug #776 by Jeremy Evans.
  • RubyGems now correctly handles URL passwords with encoded characters. Pull request #781 by Brian Fletcher.
  • RubyGems now correctly escapes URL characters. Pull request #788 by Brian Fletcher.
  • RubyGems can now unpack tar files where the type flag is not given. Pull request #790 by Cody Russell.
  • Typo corrections. Pull request ruby/ruby#506 by windwiny.
  • RubyGems now uses both the default certificates and ssl_ca_cert instead of one or the other. Pull request #795 by zebardy.
  • RubyGems can now use the bundler API against hosted gem servers in a directory. Pull request #801 by Brian Fletcher.
  • RubyGems bin stubs now ignore non-versions. This allows RubyGems bin stubs to list file names like "_foo_". Issue #799 by Postmodern.
  • Restored behavior of Gem::Version::new when subclassed. Issue #805 by Sergio Rubio.

New in RubyGems 2.1.11 (Dec 14, 2013)

  • Bug fixes:
  • Gem::Specification::remove_spec no longer checks for existence of the spec to be removed. Issue #698 by Tiago Macedo.
  • Restored wildcard handling when installing gems. Issue #697 by Chuck Remes.
  • Added DigiCert High Assurance EV Root CA certificate for the cloudfront.net certificate change.
  • The Gem::RemoteFetcher tests now choose the test server port more reliably. Pull Request #706 by akr.

New in RubyGems 2.1.7 (Oct 10, 2013)

  • Bug fixes:
  • `gem sources --list` now displays a list of sources. Pull request #672 by Nathan Marley.
  • RubyGems no longer alters Gem::Specification.dirs when installing. Pull Request #670 by Vít Ondruch
  • Use RFC 2616-compatible time in HTTP headers. Pull request #655 by Larry Marburger.
  • RubyGems now gives a more descriptive message for missing licenses on validation. Issue #656 by Markus Heiler.
  • Expand unpack destination directory. This fixes problems when File.realpath is missing and $GEM_HOME contains "..". Issue #679 by Charles Nutter.

New in RubyGems 2.1.6 (Oct 9, 2013)

  • Bug fixes:
  • Added certificates to follow the s3.amazonaws.com certificate change. Fixes #665 by emeyekayee. Fixes #671 by jonforums.
  • Remove redundant built-in certificates not needed for https://rubygems.org Fixes #654 by Vít Ondruch.
  • Added test for missing certificates for https://s3.amazonaws.com or https://rubygems.org. Pull request #673 by Hannes Georg.
  • RubyGems now allows a Pathname for Kernel#require like the built-in Kernel#require. Pull request #663 by Aaron Patterson.
  • Required rbconfig in Gem::ConfigFile for Ruby 1.9.1 compatibility. (Ruby 1.9.1 is no longer receiving security fixes, so please update to a newer version.) Issue #676 by Michal Papis. Issue wayneeseguin/rvm#2262 by Thomas Sänger.

New in RubyGems 2.1.5 (Sep 25, 2013)

  • Security fixes:
  • RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a backtracking in Gem::Version validation. See CVE-2013-4363 for full details including vulnerable APIs. Fixed versions include 2.1.5, 2.0.10, 1.8.27 and 1.8.23.2 (for Ruby 1.9.3).

New in RubyGems 2.1.4 (Sep 25, 2013)

  • Bug fixes:
  • `gem uninstall foo --all` now force-uninstalls all versions of foo. Issue #650 by Kyle (remkade).
  • Fixed uninstalling gems installed in the home directory (as in `--user-install`). Issue #653 by Lin Jen-Shin.

New in RubyGems 2.1.3 (Sep 24, 2013)

  • Bug fixes:
  • Gems with files entries starting with "./" no longer install 0 files. Issue #644 by Darragh Curran, #645 by Brandon Turner, #646 by Alex Tambellini

New in RubyGems 2.0.7 (Aug 17, 2013)

  • Bug fixes:
  • Extensions may now be built in parallel (therefore gems may be installed in parallel). Bug #606 by Hemant Kumar.
  • Changed broken link to RubyGems Bookshelf to point to RubyGems guides. Ruby pull request #369 by 謝致邦.
  • Fixed various test failures due to platform differences or poor tests. Patches by Yui Naruse and Koichi Sasada.
  • Fixed documentation for Kernel#require.

New in RubyGems 2.0.6 (Jul 25, 2013)

  • Bug fixes:
  • Fixed the `--no-install` and `-I` options to `gem list` and friends. Bug #593 by Blargel.
  • Fixed crash when installing gems with extensions under the `-V` flag. Bug #601 by Nick Hoffman.
  • Fixed race condition retrieving HTTP connections in Gem::Request on JRuby. Bug #597 by Hemant Kumar.
  • Fixed building extensions on ruby 1.9.3 under mingw. Bug #594 by jonforums, Bug #599 by Chris Riesbeck
  • Restored default of remote search to `gem search`.

New in RubyGems 2.0.5 (Jul 25, 2013)

  • Bug fixes:
  • Fixed building of extensions that run ruby in their makefiles. Bug #589 by Zachary Salzbank.

New in RubyGems 2.0.4 (Jul 10, 2013)

  • Bug fixes:
  • Fixed error caused by gem install not finding the right platform for your platform. Bug #576 by John Anderson
  • Fixed pushing gems with the default host. Bug #495 by Utkarsh Kukreti
  • Improved unhelpful error message from `gem owner --remove`. Bug #488 by Steve Klabnik
  • Fixed typo in `gem spec` help. Pull request #563 by oooooooo
  • Fixed creation of build_info with --install-dir. Bug #457 by Vít Ondruch.
  • RubyGems converts non-string dependency names to strings now. Bug #505 by Terence Lee
  • Outdated prerelease versions are now listed in `gem outdated`.
  • RubyGems now only calls fsync() on the specification when installing, not every file from the gem. This improves the performance of gem installation on some systems. Pull Request #556 by Grzesiek Kolodziejczyk
  • Removed surprise search term anchoring in `gem search` to restore 1.8-like search behavior while still defaulting to --remote. Pull request #562 by Ben Bleything
  • Fixed handling of DESTDIR when building extensions. Pull request #573 by Akinori MUSHA
  • Fixed documentation of `gem pristine` defaults (--all is not a default). Pull request #577 by Shannon Skipper
  • Fixed a windows extension-building test failure. Pull request #575 by Hiroshi Shirosaki
  • Fixed issue with `gem update` where it would attempt to use a Version instead of a Requirement to find the latest gem. Fixes #570 by Nick Cox.
  • RubyGems now ignores an empty but set RUBYGEMS_HOST environment variable. Based on pull request #558 by Robin Dupret.
  • Removed duplicate creation of gem subdirectories in Gem::DependencyInstaller. Pull Request #456 by Vít Ondruch
  • RubyGems now works with Ruby built with `--with-ruby-version=''`. Pull Request #455 by Vít Ondruch
  • Fixed race condition when two threads require the same gem. Ruby bug report #8374 by Joel VanderWerf
  • Cleaned up siteconf between extension build and extension install. Pull request #587 by Dominic Cleal
  • Fix deprecation warnings when converting gemspecs to yaml. Ruby commit r41148 by Yui Naruse

New in RubyGems 2.0.3 (Mar 22, 2013)

  • Bug fixes:
  • Reverted automatic upgrade to HTTPS as it breaks RubyGems APIs. Fixes #506 by André Arko
  • Use File.realpath to remove extra / while checking if files are installable. Issue #508 by Jacob Evans.
  • When installing RubyGems on JRuby, the standard library is no longer deleted. Fixes #504 by Juan Sanchez, #507 by Charles Oliver Nutter.
  • When building extconf.rb extensions use the intermediate destination directory. This addresses further issues with C extension building.
  • Use the absolute path to the generated siteconf in case the extension changes directories to run extconf.rb (like memcached). Fixes #498 by Chris Morris.
  • Fixed default gem key and cert locations. Pull request #511 by Samuel Cochran.

New in RubyGems 1.8.3 (May 20, 2011)

  • 4 bug fixes:
  • Fix independent testing of test_gem_package_tar_output. Ruby Bug #4686 by Shota Fukumori
  • Fix test failures for systems with separate ruby versions. Ruby Bug #3808 by Jeremy Evans
  • Fixed some bad calls left behind after rolling out some refactorings.
  • Syck has a parse error on (good) times output from Psych. (dazuma, et al)

New in RubyGems 1.5.0 (Feb 1, 2011)

  • Major Enhancements:
  • Finally fixed all known 1.9.x issues. Upgrading is now possible!
  • Merged huge 1.3.7/ruby-core changes to master.
  • Minor Enhancements:
  • Added UPGRADING.rdoc to help deal with 1.9 issues.
  • Gem::Format now gives better errors for corrupt gem files and includes paths
  • Pre-install hooks can now abort gem installation by returning false
  • Move shareable TestCase classes to lib/ to help plugin authors with tests.
  • Add post-build hooks that can cancel the gem install
  • Always require custom_require now that require_gem is gone
  • Added GemInstaller accessors for @options so plugins can reference them.
  • Optimized Gem.find_files. ~10% faster than 1.4.2. ~40% faster than ruby 1.9.
  • Gem::SilentUI now behaves like Gem::StreamUI for asking questions. Patch by Erik Hollensbe.
  • Bug Fixes:
  • `gem update` was implicitly doing --system.
  • 1.9.3: Fixed encoding errors causing gem installs to die during rdoc phase.
  • Add RubyForge URL to README. Closes #28825
  • 1.9.3: Use chdir {} when building extensions to prevent warnings. Fixes #4337
  • 1.9.2: Fix circular require warning.
  • Make requiring openssl even lazier at request of NaHi
  • `gem unpack` will now download the gem if it is not in the cache. Patch by Erik Hollensbe.
  • rubygems-update lists its development dependencies again

New in RubyGems 1.3.7 (Oct 8, 2010)

  • Extractlib/rubygems.rb: 1.3.7.
  • Extractlib/rubygems/server.rb: Use gem_dirs, not gem_dir.
  • Extractlib/rubygems.rb: 1.3.7.pre.1.
  • Extractlib/rubygems/commands/contents_command.rb: Make --prefix the
  • default as specified in --help. Bug #27211 by Mamoru Tasaka.
  • Extractlib/rubygems/commands/environment_command.rb: Hide gemcutter_key to
  • for security.
  • Extractlib/rubygems/commands/server_command.rb: Allow specification of
  • multiple gem dirs. Bug #27573 by Yuki Sonoda.
  • Extractlib/rubygems.rb: Require rubygems/custom_require if --disable-gem
  • was set. Bug #27700 by Roger Pack.
  • Extractlib, test: Add ability to install and fetch to report that the
  • reason they couldn't find a gem was because all available gems can't
  • be used on the current platform.
  • Extractlib/rubygems/specification.rb: Avoid deprecated API for YAML. Ruby
  • bug #3102 by Aaron Patterson.
  • Extractlib/rubygems/remote_fetcher.rb: Avoid deprecated API for URI. Ruby
  • bug #3103 by Aaron Patterson.
  • Extractlib/rubygems/platform.rb: Add platform support for IronRuby. Patch
  • #27951 by Will Green.
  • Extractlib/rubygems/commands/fetch_command.rb: Restore fetching of old
  • versions. Bug #27960 by Eric Hankins.
  • Extractlib/rubygems/command_manager.rb: Update documentation. Bug #28024
  • by Roger Pack.
  • Extractlib/rubygems/remote_fetcher.rb: Raise a better error when the host
  • is down. Bug #28092 by Eric Peterson.
  • ExtractHistory.txt: Add reminder to include --user-install change in the
  • 1.3.7 release notes. Bug #27896 by Matt Patterson.
  • Extractlib/rubygems/commands/query_command.rb: --version is only for use
  • with --installed. Bug #27857 by Greg Hazel.
  • Extractlib/rubygems/commands/query_command.rb: Regular output now lists
  • platforms. Bug #27856 by Greg Hazel.
  • Extractlib, test: Stop using Gem::RubyGemsVersion
  • Extractlib/rubygems/command_manager.rb: Now catches errors caused by command
  • loading. (Protect against broken plugins)
  • Extractlib/rubygems.rb: Introduce and use Gem.load_plugins, RubyGems now
  • protects against exceptions being raised by plugins.
  • Extractlib/rubygems/builder.rb: Now requires user_interaction. Ruby
  • Bug #1040 by Phillip Toland.
  • Extractlib/rubygems/installer.rb: Make argument order match for
  • generate_windows_script. Ruby patch #825 by okkez.
  • Extractlib/rubygems/package_task.rb: Depend on the package dir like the
  • other package tasks.
  • Extractlib/rubygems/remote_fetcher.rb: fetcher now retries on a read timeout.
  • Extractlib/rubygems/specification.rb: specifications loaded from file are now
  • evaluated with their filename to aid debugging.
  • Extractlib/rubygems/commands/unpack_command.rb: `gem unpack` now unpacks
  • remote gems.
  • Extractlib/rubygems/dependency.rb: Support #version_requirements= with a
  • warning. Bug #27868 by Wei Jen Lu.
  • Extractlib/rubygems/installer.rb: Fix `gem unpack`. Bug #27872 by Timothy
  • Jones.
  • Extractlib, test: Import changes from ruby trunk.

New in RubyGems 1.3.6 (Feb 22, 2010)

  • New features:
  • `gem` commands
  • Added `gem push` and `gem owner` for interacting with modern/Gemcutter sources
  • `gem dep` now supports --prerelease.
  • `gem fetch` now supports --prerelease.
  • `gem server` now supports --bind. Patch #27357 by Bruno Michel.
  • `gem rdoc` no longer overwrites built documentation. Use --overwrite force rebuilding. Patch #25982 by Akinori MUSHA.
  • Captial letters are now allowed in prerelease versions.
  • Bug fixes:
  • Development deps are no longer added to rubygems-update gem so older versions can update sucessfully.
  • Installer bugs:
  • Prerelease gems can now depend on non-prerelease gems.
  • Development dependencies are ignored unless explicitly needed. Bug #27608 by Roger Pack.
  • `gem` commands
  • `gem which` now fails if no paths were found. Adapted patch #27681 by Caio Chassot.
  • `gem server` no longer has invalid markup. Bug #27045 by Eric Young.
  • `gem list` and friends show both prerelease and regular gems when --prerelease --all is given
  • Gem::Format no longer crashes on empty files. Bug #27292 by Ian Ragsdale.
  • Gem::GemPathSearcher handles nil require_paths. Patch #27334 by Roger Pack.
  • Gem::RemoteFetcher no longer copies the file if it is where we want it. Patch #27409 by Jakub Šťastný.

New in RubyGems 1.3.5 (Jul 22, 2009)

  • Bug fixes:
  • Fix use of prerelease gems.
  • Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458.
  • Deprecation Notices:
  • Bulk index update is no longer supported (the code currently remains, but not the tests)
  • Gem::manage_gems was removed in 1.3.3.
  • Time::today was removed in 1.3.3.

New in RubyGems 1.3.4 (Jun 11, 2009)

  • Bug Fixes:
  • Fixed various warnings
  • Gem::ruby_version works correctly for 1.8 branch and trunk
  • Prerelease gems now show up in `gem list` and can be used
  • Fixed option name for `gem setup --format-executable`
  • RubyGems now matches Ruby > 1.9.1 gem paths
  • Gem::RemoteFetcher#download now works for explicit Windows paths across drives. Bug #25882 by Lars Christensen
  • Fix typo in Gem::Requirement#parse. Bug #26000 by Mike Gunderloy.
  • Deprecation Notices:
  • Bulk index update is no longer supported (the code currently remains, but not the tests)
  • Gem::manage_gems was removed in 1.3.3.
  • Time::today was removed in 1.3.3.

New in RubyGems 1.3.3 (May 5, 2009)

  • New Features:
  • `gem server` allows port names (from /etc/services) with --port.
  • `gem server` now has search that jumps to RDoc. Patch #22959 by Vladimir Dobriakov.
  • `gem spec` can retrieve single fields from a spec (like `gem spec rake authors`).
  • Gem::Specification#has_rdoc= is deprecated and ignored (defaults to true)
  • RDoc is now generated regardless of Gem::Specification#has_rdoc?
  • Bug Fixes:
  • `gem clean` now cleans up --user-install gems. Bug #25516 by Brett Eisenberg.
  • Gem.bin_path now escapes paths with spaces.
  • Rake extension builder uses explicit correctly loads rubygems when invoking rake.
  • Prerelease versions now match "~>" correctly. Patch #25759 by Yossef Mendelssohn.
  • Check bindir for executables, not root when validating. Bug reported by David Chelimsky.
  • Remove Time.today, no way to override it before RubyGems loads. Bug #25564 by Emanuele Vicentini
  • Raise Gem::Exception for #installation_path when not installed. Bug #25741 by Daniel Berger.
  • Don't raise in Gem::Specification#validate when homepage is nil. Bug #25677 by Mike Burrows.
  • Uninstall executables from the correct directory. Bug #25555 by Brett Eisenberg.
  • Raise Gem::LoadError if Kernel#gem fails due to previously-loaded gem. Bug reported by Alf Mikula.

New in RubyGems 1.3.2 (Apr 16, 2009)

  • Select New Features:
  • RubyGems now loads plugins from rubygems_plugin.rb in installed gems. This can be used to add commands (See Gem::CommandManager) or add install/uninstall hooks (See Gem::Installer and Gem::Uninstaller).
  • Gem::Version now understands prerelease versions using letters. (eg. '1.2.1.b') Thanks to Josh Susser, Alex Vollmer and Phil Hagelberg.
  • RubyGems now includes a Rake task for creating gems which replaces rake's Rake::GemPackageTask. See Gem::PackageTask.
  • Gem::find_files now returns paths in $LOAD_PATH.
  • Added Gem::promote_load_path for use with Gem::find_files
  • Added Gem::bin_path to make finding executables easier. Patch #24114 by James Tucker.
  • Various improvements to build arguments for installing gems.
  • `gem contents` added --all and --no-prefix.
  • Gem::Specification
  • #validate strips directories and errors on not-files.
  • #description no longer removes newlines.
  • #name must be a String.
  • FIXME and TODO are no longer allowed in various fields.
  • Added support for a license attribute. Feature #11041 (partial).
  • Removed Gem::Specification::list, too much process growth. Bug #23668 by Steve Purcell.
  • `gem generate_index`
  • Can now generate an RSS feed.
  • Modern indicies can now be updated incrementally.
  • Legacy indicies can be updated separately from modern.
  • Select Bugs Fixed:
  • Better gem activation error message. Patch #23082.
  • Kernel methods are now private. Patch #20801 by James M. Lawrence.
  • Fixed various usability issues with `gem check`.
  • `gem update` now rescues InstallError and continues. Bug #19268 by Gabriel Wilkins.
  • Allow 'https', 'file' as a valid schemes for --source. Patch #22485.
  • `gem install`
  • Now removes existing path before installing. Bug #22837.
  • Uses Gem::bin_path in executable stubs to work around Kernel#load bug in 1.9.
  • Correctly handle build args (after --) via the API. Bug #23210.
  • --user-install
  • `gem install --no-user-install` now works. Patch #23573 by Alf Mikula.
  • `gem uninstall` can now uninstall from ~/.gem. Bug #23760 by Roger Pack.
  • setup.rb
  • Clarify RubyGems RDoc installation location. Bug #22656 by Gian Marco Gherardi.
  • Allow setup to run from read-only location. Patch #21862 by Luis Herrera.
  • Fixed overwriting ruby executable when BASERUBY was not set. Bug #24958 by Michael Soulier.
  • Ensure we're in a RubyGems dir when installing.
  • Deal with extraneous quotation mark when autogenerating .bat file on MS Windows. Bug #22712.

New in RubyGems 1.3.0 (Sep 29, 2008)

  • RubyGems doesn't print LOCAL/REMOTE titles for `gem query` and friends if stdout is not a TTY, except with --both.
  • Added Gem.find_files, allows a gem to discover features provided by other gems.
  • Added pre/post (un)install hooks for packagers of RubyGems. (Not for gems themselves).
  • RubyGems now installs gems into ~/.gem if GEM_HOME is not writable. Use --no-user-install command-line switch to disable this behavior.
  • Fetching specs for update now uses If-Modified-Since requests.
  • RubyGems now updates the ri cache when the rdoc gem is installed and documentation is generated.
  • Gem::manage_gems now warns when called. It will be removed on or after March 2009.
  • RubyGems 1.3.0+ now updates when no previous rubygems-update is installed. Bug #20775 by Hemant Kumar.
  • RubyGems now uses the regexp we already have for `gem list --installed`. Bug #20876 by Nick Hoffman.
  • Platform is now forced to Gem::Platform::RUBY when nil or blank in the indexer. Fixes various uninstallable gems.
  • Handle EINVAL on seek. Based on patch in bug #20791 by Neil Wilson.
  • Fix HTTPS support. Patch #21072 by Alex Arnell.
  • RubyGems now loads all cache files even if latest has been loaded. Bug #20776 by Uwe Kubosch.
  • RubyGems checks for support of development dependencies for #to_ruby. Bug #20778 by Evan Weaver.
  • Now specifications from the future can be loaded.
  • Binary script uninstallation fixed. Bug #21234 by Neil Wilson.
  • Uninstallation with -i fixed. Bug #20812 by John Clayton.
  • Gem::Uninstaller#remove_all now calls Gem::Uninstaller#uninstall_gem so hooks get called. Bug #21242 by Neil Wilson.
  • Gem.ruby now properly escaped on windows. Fixes problem with extension compilation.
  • `gem lock --strict` works again. Patch #21814 by Sven Engelhardt.
  • Platform detection for Solaris was improved. Patch #21911 by Bob Remeika.