Rubygems-update 2.0.0 Released

RubyGems is a package management framework for Ruby.

This gem is an update for the RubyGems software. You must have an
installation of RubyGems before this update can be applied.

See Gem for information on RubyGems (or ri Gem)

To upgrade to the latest RubyGems, run:

$ gem update --system # you might need to be an administrator or root

See UPGRADING.rdoc for more details and alternative instructions.


If you don’t have RubyGems installed, you can still do it manually:

For more details and other options, see:

ruby setup.rb --help

Changes:

RubyGems 2.0 includes several new features and many breaking changes.
Some of
these changes will cause existing software to break. These changes are
a
result of improvements to the internals of RubyGems that make it more
maintainable and improve APIs for RubyGems users.

If you are using bundler be sure to install a 1.3.0.prerelease version
or
newer. Older versions of bundler will not work with RubyGems 2.0.

Changes since RubyGems 1.8.25 (including past pre-releases):

  • Breaking changes:

    • Deprecated Gem.unresolved_deps in favor of
      Gem::Specification.unresolved_deps
    • Merged Gem::Builder into Gem::Package. Use Gem::Package.build(spec)
      instead of Gem::Builder.new(spec).build
    • Merged Gem::Format into Gem::Package. Use Gem::Package.new instead
      of Gem::Format.from_file_by_path
    • Moved Gem::OldFormat to Gem::package::Old. Gem::Package will
      automatically detect old gems for you, so there is no need to refer
      to it.
    • Removed Gem::DocManager, replaced by Gem::RDoc and done_installing
      hook
    • Removed Gem::package::TarInput in favor of Gem::Package
    • Removed Gem::package::TarOutput in favor of Gem::Package
    • Removed Gem::RemoteFetcher#open_uri_or_path. (steveklabnik)
    • Removed Gem::SSL in favor of using OpenSSL directly
    • Removed Gem.loaded_path
    • Removed RSS generation from the gem indexer
    • Removed benchmark option from .gemrc
    • Removed broken YAML gemspec support in gem build
    • Removed support for Ruby 1.9.1
    • Removed many deprecated methods
  • Major enhancements:

    • Improved support for default gems shipping with ruby 2.0.0+
    • A gem can have arbitrary metadata through
      Gem::Specification#metadata
    • gem search now defaults to --remote and is anchored like gem list.
      Fixes
      #166
    • Added --document to replace --rdoc and --ri. Use --no-document to
      disable
      documentation, --document=rdoc to only generate rdoc.
    • Only ri-format documentation is generated by default.
    • gem server uses RDoc::Servlet from RDoc 4.0 to generate HTML
      documentation.
    • Add ability to install gems directly from a compatible gemdep
      file (Gemfile, Isolate, gem.deps.rb)
      gem install --file path
    • Add ability to load gem activation information from a gemdeps
      file (Gemfile, Isolate, gem.deps.rb).
      Set RUBYGEMS_GEMDEPS=path to have it loaded. Use - as the path
      to autodetect (current and parent directories are searched).
  • Minor enhancements:

    • Added gem check --doctor to clean up after failed uninstallation.
      Bug
      #419 by Erik H.
    • RubyGems no longer defaults to uninstalling gems if a dependency
      would be
      broken. Now you must manually say “yes”. Pull Request #406 by
      Shannon
      Skipper.
    • Gem::DependencyInstaller now passes build_args down to the
      installer.
      Pull Request #412 by Sam Rawlins.
    • Added a cmake builder. Pull request #265 by Allan Espinosa.
    • Removed rubyforge page from gem list output
    • Added --only-executables option to gem pristine. Fixes #326
    • Added -I flag for ‘gem query’ to exclude installed items
    • Added Gem.install(name, version=default) for interactive sessions
    • Added Gem::FilePermissionError#directory
    • Added Gem::rubygems_version which is like Gem::ruby_version
    • Added RUBYGEMS_HOST documentation to gem env
    • Added a post_installs hook that runs after Gem::DependencyInstaller
      finishes installing a set of gems
    • Added a usage method for Gem::Commands::OwnerCommand. (ffmike)
    • Added an optional type parameter to Gem::Specification#doc_dir.
    • Added announcements url and clarified how to file tickets
    • Added guidance for how to use rdoc and ri in setup command. (jjb)
    • Attempting to install multiple gems with --version is now an error.
      You
      can specify per-gem versions like rake:0.9.5
    • Clarified Gem::CommandManager example code to avoid multi load
      problems.
      (baroquebobcat)
    • Corrupt or bad cached specs are now re-downloaded. (cookrn)
    • Extension build arguments are saved from install and reused for
      pristine
    • If the OS allows it, documentation is built in a forked background
      process. (alexch)
    • Imported gem yank from the gemcutter gem. Fixes #177, #343
    • Packaged gems now contain and verify SHA1 checksums
    • Removed commas from gem update summary so you can paste it back to
      cleanup. (amatsuda)
    • RubyGems will now warn when building gems with prerelease
      dependencies.
      Fixes #255
    • The RUBYGEMS_HOST environment variable is used to determine
      appropriate
      API key for pushing or yanking gems
    • Uninstall is now performed in reverse topological order.
    • Users are told what to type when they try to uninstall a gem outside
      GEM_HOME
    • When building gems with non-world-readable files a warning is shown.
  • Bug fixes:

    • Gem.refresh now maintains the active gem list. Clearing the list
      would
      cause double-loads which would cause other bugs. Pull Request #427
      by
      Jeremy E.
    • RubyGems now refuses to read the gem push credentials file if it has
      insecure permissions. Pull Request #438 by Shannon Skipper
    • RubyGems now requires a local gem name to end in ‘.gem’. Issue #407
      by
      Santiago Pastorino.
    • Do not allow old-format gems to be installed with a security policy
      that
      verifies data.
    • Gem installation will fail if RubyGems cannot load the specification
      from
      the gem. Bug #419 by Erik H.
    • RubyGems tests now run in FIPS mode. Issue #365 by Vt Ondruch
    • Only update the spec cache when we have permission. Ruby Bug #7509
    • gem install now ignores directories and non .gem files that match
      the gem
      to install. Bug #407 by Santiago Pastorino.
    • Added PID to setup bin_file while installing RubyGems to protect
      against
      errors. Fixes #328 by ConradIrwin
    • Added missing require in Gem::Uninstaller when format_executable is
      set.
      (sakuro)
    • Exact gem command name matches are now chosen even if a longer
      command
      overlaps the exact name
    • Fixed Gem.loaded_path? with a Pathname instance. (mattetti)
    • Fixed Gem::Dependency.new mismatch with rubygems.org checks
    • Fixed SecurityError in Gem::Specification.load when $SAFE=1. (ged)
    • Fixed SystemStackError with “gem list -r -a” on 1.9 (cldwalker)
    • Fixed gem owners command so that exceptions don’t stop the rest of
      the
      command from completing
    • Fixed gem unpack uninstalled_gem default version picker.
    • Fixed defunct rubyforge urls in gem command line help
    • Fixed documentation for the various hooks collections
    • Fixed documentation generation on setup when the gem directory does
      not
      exist. Fixes #253
    • Fixed documentation to reflect where defaults overrides are loaded
      from.
      (ferrous26)
    • Fixed editing of a Makefile with 8-bit characters. Fixes #181
    • Fixed gem loading issue caused by dependencies not resolving.
    • Fixed independent testing of test_gem_package_tar_output. Ruby Bug
      #4686
      by Shota F.
    • Fixed typo in uninstall message. (sandal)
    • Gem::Requirement#<=> returns nil on non-requirement arg.
    • Gem::Requirement.satisfied_by? raises ArgumentError if given a
      non-version
      argument
    • Gem::Version#initialize no longer modifies its parameter. (miaout17)
    • Group-writable permissions are now allowed for gem repositories.
      (ctcherry)
    • Memoized values in Gem::Specification are now reset the version or
      platform changes. Fixes #78
    • More specific errors are raised for bad requirements. (arsduo)
    • Removed reference to ‘sources’ gem in documentation
    • Removed unused block arguments to avoid creating Proc objects.
      (k-tsj)
    • RubyGems now asks before overwriting executable wrappers. Ruby Bug
      #1800
    • The bindir is now created with mkdir_p during install. (voxik)
    • URI scheme matching is no longer case-sensitive. Fixes #322
    • ext/builder now checks $MAKE as well as $make (okkez)

Changes since RubyGems 2.0.0.rc.2:

  • Bug fixes:
    • Gem.gzip and Gem.gunzip now return strings with BINARY encoding.
      Issue
      #450 by Jeremy K.
    • Fixed placement of executables with --user-install. Ruby bug #7779
      by Jon
      Forums.
    • Fixed gem update with --user-install. Ruby bug #7779 by Jon
      Forums.
    • Fixed test_initialize_user_install for windows. Ruby bug #7885 by
      Luis
      Lavena.
    • Create extension destination directory before building extensions.
      Ruby
      Bug #7897 and patch by Kenta M…
    • Fixed verification of gems at LowSecurity due to missing signature.
      Thanks to Andr Arko.