From ed5d5c5829ccd91261b27438e2aa146f7aec755e Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 8 Dec 2009 07:19:09 +0000 Subject: * lib/rubygems: update to 1.3.5. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 +- doc/rubygems/ChangeLog | 5529 ++++++++++++++++++++ doc/rubygems/History.txt | 799 +++ doc/rubygems/LICENSE.txt | 53 + doc/rubygems/README | 40 + lib/rubygems.rb | 5 +- lib/rubygems/command.rb | 4 +- lib/rubygems/commands/setup_command.rb | 44 +- lib/rubygems/format.rb | 2 +- lib/rubygems/indexer.rb | 12 +- lib/rubygems/package_task.rb | 4 +- lib/rubygems/platform.rb | 2 +- lib/rubygems/security.rb | 6 +- lib/rubygems/source_index.rb | 46 +- lib/rubygems/source_info_cache.rb | 4 +- lib/rubygems/spec_fetcher.rb | 23 +- lib/rubygems/test_utilities.rb | 4 +- lib/rubygems/validator.rb | 2 +- lib/rubygems/version.rb | 2 +- test/rubygems/gem_package_tar_test_case.rb | 4 +- test/rubygems/insure_session.rb | 2 +- test/rubygems/simple_gem.rb | 30 +- test/rubygems/test_gem.rb | 10 +- .../test_gem_commands_dependency_command.rb | 4 + .../test_gem_commands_uninstall_command.rb | 20 + test/rubygems/test_gem_digest.rb | 0 test/rubygems/test_gem_doc_manager.rb | 2 +- test/rubygems/test_gem_indexer.rb | 89 +- test/rubygems/test_gem_package_tar_input.rb | 2 +- test/rubygems/test_gem_package_tar_writer.rb | 6 +- test/rubygems/test_gem_source_index.rb | 6 +- test/rubygems/test_gem_spec_fetcher.rb | 18 +- test/rubygems/test_gem_specification.rb | 2 +- test/rubygems/test_gem_version.rb | 4 +- 34 files changed, 6649 insertions(+), 135 deletions(-) create mode 100644 doc/rubygems/ChangeLog create mode 100644 doc/rubygems/History.txt create mode 100644 doc/rubygems/LICENSE.txt create mode 100644 doc/rubygems/README mode change 100755 => 100644 test/rubygems/test_gem_digest.rb diff --git a/ChangeLog b/ChangeLog index eed7666048..feecb713d7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,6 @@ -Tue Dec 8 16:16:47 2009 Nobuyoshi Nakada +Tue Dec 8 16:19:05 2009 Nobuyoshi Nakada + + * lib/rubygems: update to 1.3.5. * lib/rubygems/defaults.rb (Gem::default_dir): removed a clause doing nothing. diff --git a/doc/rubygems/ChangeLog b/doc/rubygems/ChangeLog new file mode 100644 index 0000000000..b5ef160dcf --- /dev/null +++ b/doc/rubygems/ChangeLog @@ -0,0 +1,5529 @@ +Tue Dec 8 16:19:05 2009 Nobuyoshi Nakada + + * lib/rubygems: update to 1.3.5. + +# -*- coding: utf-8 -*- + +2009-06-25 Eric Hodel + + * release_notes/: Merged into History.txt for Hoe. + * lib/rubygems/commands/setup_command.rb: Streamlined install text. + +2009-06-23 Eric Hodel + + * release_notes/rel_1_3_5.rdoc: RubyGems 1.3.5 release notes. + +2009-06-12 Ryan Davis + + * Rakefile: Switched to Hoe. + +2009-06-10 Phil Hagelberg + + * lib/rubygems/source_index.rb: Fix use of prerelease gems. + +2009-05-30 Eric Hodel + + * lib/rubygems/commands/which_command.rb: Only print out directory + information to a TTY. + * lib/rubygems/rubygems_version.rb: 1.3.4. + * doc/release_notes/rel_1_3_4.rdoc: RubyGems 1.3.4 release notes. + +2009-05-28 Eric Hodel + + * lib/rubygems/commands/setup_command.rb: Fix --format-executable + option name. + * lib/rubygems/requirement.rb: Fix typo in #parse. Bug #26000 by + Mike Gunderloy. + +2009-05-21 Eric Hodel + + * lib/rubygems.rb: Add 'dev' and svn revision for -1 RUBY_PATCHLEVEL + and RUBY_REVISION. + +2009-05-20 Eric Hodel + + * lib/rubygems/defaults.rb: Restore 1.9.1 path behavior. + * lib/rubygems/specification.rb: Fix undefined ivar warning. + * lib/rubygems/indexer.rb: Force loading of builder gem. + * test/gemutilities.rb: Remove gem_prelude code by hand to avoid 1.9 + warnings. + +2009-05-19 Luis Lavena + + * test/test_gem_specification.rb: skip symlinks tests on Windows. + * test/test_gem_commands_install_command.rb: skip chmod test on + Windows. + +2009-05-15 Eric Hodel + + * lib/rubygems*: Fix 1.9 warnings about circular require. + +2009-05-12 Daniel Berger + + * lib/rubygems/remote_fetcher.rb: Fixed the download method in the + remote_fetcher.rb file so that it handles local installs on MS + Windows when using explicit paths that aren't on the 'C:' drive. + Bug #25882 by Lars Christensen. + * lib/rubygems/commands/update_command.rb: Replaced deprecated + Gem::SourceIndex method 'search' with 'find_name' in the 'execute' + method. + +2009-05-07 Eric Hodel + + * lib/rubygems/commands/query_command.rb: Support prerelease version + listing (--prerelease), list locally installed prereleases. + * lib/rubygems/source_info_cache.rb: Gem::SourceInfoCache is + officially unsupported, maintaining its tests is hard. + * lib/rubygems/source_index.rb: Add #all_gems, fix #remove_spec, + #search to work with it. Prerelease gems can now be used. + +2009-05-04 Eric Hodel + + * lib/rubygems/rubygems_version.rb: 1.3.3. + * doc/release_notes/rel_1_3_3.rdoc: RubyGems 1.3.3 release notes. + * lib/rubygems/specification.rb: Default has_rdoc to true, ignore + its value. + * lib/rubygems/doc_manager.rb: Always generate RDoc regardless of + #has_rdoc? + * lib/rubygems.rb: Raise Gem::LoadError if Kernel#gem fails due to + previously-loaded gem. Bug reported by Alf Mikula. + +2009-05-02 Eric Hodel + + * lib/rubygems/commands/server_command.rb: Allow port names with + --port. + * lib/rubygems/requirement.rb: Match prerelease versions and ~> + correctly. Patch #25759 by Yossef Mendelssohn. + +2009-05-01 Eric Hodel + + * lib/rubygems/specification.rb: Check bindir for executables, not + root. 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 error in #validate + when homepage is nil. Bug #25677 by Mike Burrows. + * lib/rubygems/commands/cleanup_command.rb: Clean up --user-install + gems. Bug #25516 by Brett Eisenberg. + * lib/rubygems/uninstaller.rb: Uninstall executables from the correct + directory. Bug #25555 by Brett Eisenberg. + * lib/rubygems/server.rb: Add search that jumps to RDoc. Patch + #22959 by Vladimir Dobriakov. + +2009-05-01 James Tucker + + * lib/rubygems.rb: Gem.bin_path now escapes paths with spaces. + +2009-04-30 Daniel Berger + + * lib/rubygems/commands/install_command.rb: Replaced deprecated + Gem::SourceIndex method 'search' with 'find_name' when using + the -t option. Fixes bug # 25632 by Daniel Berger. + +2009-04-30 James Tucker + + * lib/rubygems/ext/rake_builder.rb: Use explicit ruby command loading + rubygems to invoke rake. + +2009-04-24 Eric Hodel + + * lib/rubygems/commands/specification_command.rb: Added requesting + single fields from a spec. + +2009-04-23 James Tucker + + * lib/rubygems/ext/configure_builder.rb: Support Gem::Command.build_args. + +2009-04-15 Eric Hodel + + * lib/rubygems/rubygems_version.rb: 1.3.2. + +2009-04-14 Eric Hodel + + * lib/rubygems/specification.rb: Complain when summary and + description are identical. + +2009-04-08 Eric Hodel + + * lib/rubygems/specification.rb: Strip directories, complain for + non-files in #validate. + +2009-04-07 Eric Hodel + + * lib/rubygems/specification.rb: Implement #initialize_copy. + * lib/rubygems/commands/contents_command.rb: Add --no-prefix and + --all. + +2009-04-06 Eric Hodel + + * lib/rubygems/defaults.rb: Don't allow gem to overwrite ruby on + install. Fixes bug #24958 by Michael Soulier. + * doc/release_notes/rel_1_3_2.rdoc: Preliminary 1.3.2 release notes. + * Rakefile: Trim off some stale code, switch to Manifest.txt, one + step closer to Hoe! + +2009-04-06 Daniel Berger + + * test/test_gem_ext_configure_builder.rb: Better handling for MS + Windows. + * test/gemutilities.rb: Added the make_command and vc_windows? helper + methods. + +2009-04-03 Eric Hodel + + * lib/: RDoc improvements. + +2009-04-02 Eric Hodel + + * lib/rubygems/commands/setup_command.rb: Fix --destdir. Patch + #24970 by Richard Brown. + +2009-04-02 Phil Hagelberg + + * lib/rubygems/version.rb: Documentation of prerelease + versions. See http://technomancy.us/123 for details. + +2009-03-31 Eric Hodel + + * lib/rubygems/spec_fetcher.rb: If the cached specs file won't load, + refetch. Bug #24961 by Dylan Stamat. + * lib/rubygems/defaults.rb: Add a sanity check to + Gem.default_exec_format. Workaround for bug #24958 by Michael + Soulier. + * lib/rubygems/commands/setup_command.rb: Fix confusion with option + names. Patch #24971 by Richard Brown. + * lib/rubygems/specification.rb: Make #validate complain about + not-files. + * lib/gauntlet_rubygems.rb: For verification of the validator. + +2009-03-27 Eric Hodel + + * lib/rubygems.rb: 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). + * setup.rb: Ensure we're in a RubyGems dir when installing. + +2009-03-26 Eric Hodel + + * lib/rubygems/package_task.rb: Import from Rake's + rake/gempackagetask.rb + * Rakefile: Switched to RDoc::Task from RDoc 2.4.2. + * lib/rubygems.rb: Gem.find_files now returns paths in $LOAD_PATH. + * lib/rubygems/commands/sources_command.rb: Allow sources to be added + behind proxies. Bug #24785 by Elia Schito. + +2009-03-25 Eric Hodel + + * lib/rubygems/commands/install_command.rb: Fix typo. Patch #24446 + by Luis Parravicini. + * lib/rubygems/version.rb: Handle non-String versions by calling + #to_s. Patch #24392 by Stephen Bannasch. + +2009-03-22 Daniel Berger + + * lib/rubygems/remote_fetcher.rb: Always escape URI's to deal with spaces + and such, regardless of platform. + * lib/rubygesm/validator.rb: Use the test-unit gem if installed. + Part of the fix for RF #24261 by Daniel Berger + * lib/rubygems/commands/install_command.rb: Explictly require + rubygems/uninstaller.rb if the user wants to bail because of failed + tests. + Part of the fix for RF #24261 by Daniel Berger + +2009-03-17 Eric Hodel + + * lib/rubygems/commands/query_command.rb: Make `gem unpack` work with + more than one gem name, fix warning about installation location. + +2009-03-16 James Tucker + + * lib/rubygems.rb: Deprecate ConfigMap[:RUBY_INSTALL_NAME] + * lib/rubygems/defaults.rb: Gem.default_exec_format to use + ConfigMap[:ruby_install_name]. + Fixes Bug #24457 + * util/gem_prelude.rb.template: Fix potential bug in + Gem.default_exec_format when ConfigMap[:BASERUBY] is not 'ruby'. + +2009-03-14 Luis Lavena + + * lib/rubygems/installer.rb: Cleanup quotes on Windows stub scripts. + Fixes Bug #24039. + * lib/rubygems/commands/setup_command.rb: ditto. + +2008-03-13 Eric Hodel + + * lib/rubygems/commands/uninstall_command.rb: Add --user-install to + allow uninstallation from ~/.gem. Bug #23760 by Roger Pack. + * lib/rubygems/uninstaller.rb: Automatically uninstall from + Gem.user_dir. + * lib/rubygems/commands/update_command.rb: Rescue InstallError + and continue. Bug #19268 by Gabriel Wilkins. + * lib/rubygems/doc_manager.rb: Remove some options from the args list + that RDoc no longer supports. + +2008-03-12 Eric Hodel + + * lib/rubygems/specification.rb: #description no longer removes + newlines. + * lib/rubygems/indexer.rb: Wrap description in a pre and force-wrap + lines to 78 characters for prettier display. + * lib/rubygems/commands/setup_command.rb: Clarify RubyGems RDoc + installation location. Bug #22656 by Gian Marco Gherardi. + +2008-03-09 Eric Hodel + + * lib/rubygems/commands/query_command.rb: Add platforms to gem list + -d. + * lib/rubygems/commands/setup_command.rb: Allow setup to run from + read-only location. Patch #21862 by Luis Herrera. + * lib/rubygems/package/tar_input.rb: Use real File methods. Bug + #23966 by Mike Furr. + * lib/rubygems.rb: Don't add PATCHLEVEL if it's -1. Patch #24048 by + Jeremy Kemper. + * lib/rubygems/package/tar_input.rb: Choose security policy + correctly. Bug #24001 by Mike Furr. + * lib/rubygems/remote_fetcher.rb: Handle local paths with spaces. + Bug #24169 by Ryan Davis. + * lib/rubygems/specification.rb: Removed Gem::Specification::list, + causes leaks. Bug #23668 by Steve Purcell. + +2008-03-07 Eric Hodel + + * lib/rubygems/installer.rb: Use Gem::bin_path in executable stubs to + work around Kernel#load bug. + * lib/rubygems/commands/install_command.rb: Copy user_install down to + Gem::DependencyInstaller. Patch #23573 by Alf Mikula. + * lib/rubygems/command.rb: Add info on gem server directly to `gem + help`. Patch #22271 by Hugh Sasse. + +2008-03-06 Eric Hodel + + * lib/rubygems/specification.rb: Don't allow FIXME in specs. + * lib/rubygems/commands/spec_command.rb: Add --ruby and --marshal + formats. + * lib/rubygems.rb: Add Gem::bin_path. Patch #24114 by James Tucker. + +2008-03-04 Eric Hodel + + * setup.rb: Moved guts to lib/rubygems/commands/setup_command.rb. + * lib/rubygems/indexer.rb: Added RSS feed generation on full index + update. + +2008-03-04 Phil Hagelberg + + * lib/*: Prerelease gems go into their own index now and are excluded + from other indices. InstallCommand only gets prereleases if explicitly + requested. Thanks to Alex Vollmer. + +2008-03-04 Eric Hodel + + * lib/*: Add lots of pretty pretty_print stuff! + +2008-02-25 Ryan Davis + + * lib/rubygems/commands/check_command.rb: Fix various usability + issues. + +2009-02-10 Daniel Berger + * lib/rubygems/specification: Refactored and fixed the installation_path + method. It was overwrought and it now no longer uses File::SEPARATOR + explicitly. + [RubyForge: bug #23879 by Daniel Berger] + +2009-02-10 Daniel Berger + * lib/rubygems/validator.rb: The Gem::Validator#verify_gem_file method + now explicitly rescues Errno::EINVAL as well as Errno::ENOENT because + MS Windows raises a different SystemCallError for empty paths. + +2009-01-21 Daniel Berger + * lib/rubygems/remote_fetcher.rb: Split out nil and file handling in + the download method. Modified file URI handling to work properly. + [RubyForge: bug #16495 by Paul Sadauskas] + +2009-01-19 Daniel Berger + * lib/rubygems/remote_fetcher.rb: Added uri scheme validation back + into the open_uri_or_path method, though it now accepts 'https' and + 'file' as well. + * test/test_gem_remote_fetcher.rb: Updated the test_fetch_size_bad_uri + to reflect the updated error message. + +2009-01-15 Daniel Berger + * lib/rubygems/remote_fetcher.rb: Removed the open_file_uri_path method + since the URI#path method already does the same thing, and changed + the file_uri? method so that it explicitly calls .to_s. + * lib/rubygems/local_remote_options.rb: Allow file urls. + +2009-01-15 Daniel Berger + * lib/rubygems/commands/generate_index_command.rb: Fixed a typo in + the description. + * test/test_gem_doc_manager.rb: The test_uninstall_doc_unwritable + test is now skipped on Windows. + * test/test_gem_install_update_options.rb: The + test_user_install_disabled_read_only test is now skipped on Windows. + * test/test_gem_installer.rb: The test_generate_bin_symlink_no_perms + and test_generate_bin_script_no_perms tests are now skipped on Windows. + +2009-01-14 Daniel Berger + * lib/rubygems/specification.rb: Added support for a license attribute. + [RubyForge: feature #11041 (partial) by Kevin Williams] + * lib/rubygems/commands/query_command.rb: Gem detail information now + includes license information. + * test/test_gem_specification.rb: Added tests for the license attribute. + +2009-01-05 Chad Woolley + + * move processing of build args out of gem binary so they are handled correctly via API usage. + * lib/rubygems/command.rb: Add class accessor for build_args. + * lib/rubygems/ext/rake_builder.rb: Use Gem::Command.build_args instead of ARGV. + * lib/rubygems/ext/ext_conf_builder.rb: Use Gem::Command.build_args instead of ARGV. + * lib/rubygems/gem_runner.rb: Move build arg processing from gem binary. + * lib/rubygems/commands/contents_command.rb: Use nonzero return code (required to make tests pass). + * bin/gem: Move build arg processing to gem_runner.rb. + [RubyForge: bug #23210] + + * lib/rubygems/config_file.rb: Fix --config-file option with no + equals and subsequent options to properly assign config file. + Previously config file was overwritten by subsequent option. + Fixes bug #16688. + +2009-1-4 Daniel Berger + * lib/rubygems/installer.rb: Remove existing path if it already + exists before installing. + [RubyForge: patch #22837 by Eric Wong] + * lib/rubygems.rb: Minor modification to the location_of_caller + method - deal with possible characters after line number + +2009-1-3 Daniel Berger + * lib/rubygems.rb: Better activation error message. + [RubyForge: patch #23082 by Tim Carey-Smith] + +2009-1-2 Daniel Berger + * lib/rubygems/ext/rake_builder.rb: Quote path if it contains spaces + [RubyForge: patch #23003 by Charlie Savage] + * lib/rubygems/local_remote_options.rb: Ignore duplicate sources + [RubyForge: bug #22277 by Elliot Temple] + * lib/rubygems/remote_fetcher.rb: Automatically normalize the URI + [RubyForge: bug #22151 by Alex Legler] + * lib/rubygems/specification.rb: Ensure that specification_version is + a Fixnum [RubyForge: bug #22598 by Tsutomu Kuroda] + * lib/rubygems/specification.rb: Bumped the CURRENT_SPECIFICATION_VERSION + and added an entry to the SPECIFICATION_VERSION_HISTORY + +2009-1-1 Daniel Berger + + * test/test_gem_dependency.rb: Removed a duplicate "def dep" that + was causing a warning. + * lib/rubygems/platform.rb: Added an empty? method in order to + better handle gem indexing when dealing with gems created + prior to 0.9.5. [Rubyforge: bug #22603 by Johnathan Conley] + * lib/rubygems.rb: Added an explicit 'require "etc"'. + [RubyForge: bug #22313 by Matthew Boedicker] + +2008-12-31 Daniel Berger + + * lib/rubygems/local_remote_options: Allow 'https' as a valid scheme + in addition to 'http' [RubyForge: patch #22485 by Duarte Henriques] + * setup.rb: Deal with extraneous quotation mark when autogenerating + .bat file on MS Windows [RubyForge: bug #22712 Takayuki Ishikawa] + * lib/rubygems/commands/unpack_command.rb: Fixed the --target option + [RubyForge: patch #22532 by Bryan Ash] + +2008-12-30 Daniel Berger + + * lib/rubygems/builder.rb: Don't allow .gem file to be added back + onto itself [RubyForge: bug #19136, patch #23346 by Daniel Berger] + * lib/rubygems/defaults.rb: The default_path now only returns the + default_dir if the Gem.user_home doesn't exist + [RubyForge: bug #23037 by Pierre PLR] + * lib/rubygems.rb: Handle the possibility that Etc.getpwuid might + return nil on platforms other than Windows + [RubyForge: bug #22764 by Dudley Flanders] + +2008-12-16 Eric Hodel + + * lib/rubygems/doc_manager.rb: Set title for generated documentation. + * lib/rubygems/dependency.rb: Make #=~ work with Gem::Specification. + +2008-12-15 Eric Hodel + + * lib/rubygems/installer.rb: Fix documentation for + Gem::Installer#write_spec. Issue by okkez. + +2008-12-12 Eric Hodel + + * lib/rubygems/local_remote_options.rb: Merge documentation fix by + okkez [ruby-dev:37271]. + * lib/rubygems/source_info_cache_entry.rb: Merge documentation fix + from [ruby-dev:37255]. + +2008-12-08 Eric Hodel + + * lib/rubygems.rb: Add Gem::promote_load_path + +2008-12-01 Ryan Davis + + * lib/rubygems/remote_fetcher.rb: made threadsafe. + +2008-11-25 Eric Hodel + + * lib/rubygems/commands/install_command.rb: Don't do any post-install + stuff if no gems were installed. Issue by Daniel Berger. + +2008-11-20 Eric Hodel + + * lib/rubygems/source_index.rb: Read the file outside the exception + block so we raise a sane error. + * lib/rubygems/indexer.rb: Allow the modern index to be updated + incrementally. Allow the legacy and modern indicies to be updated + separately. + +2008-11-17 Eric Hodel + + * lib/rubygems/indexer.rb: Added ability to only generate modern or + legacy indicies. + +2008-11-14 Eric Hodel + + * lib/rubygems/timer.rb: Deprecate and move methods to Gem and + Gem::StreamUI. + +2008-11-11 Phil Hagelberg + + * lib/rubygems/, test/: Make Version understand prerelease + versions using letters. (eg. '1.2.1.b') Thanks to Josh Susser and + Alex Vollmer. + +2008-11-03 Eric Hodel + + * lib/rubygems/specification.rb: Gem name must be a String. + +2008-10-31 Eric Hodel + + * lib/rubygems/defaults.rb: Update to support 1.9 libdir. + * util/gem_prelude.rb: Move to .template, automatically fold in + defaults. + +2008-10-29 Eric Hodel + + * lib/rubygems.rb: Handle nonexistent home directory. Bug #22229 by + Alexey Verkhovsky. + +2008-10-25 Eric Hodel + + * lib/rubygems.rb, lib/rubygems/custom_require.rb: Make kernel + methods private. Patch #20801 by James M. Lawrence. Expose + our kernel extensions to RDoc. Make Gem::location_of_caller behave on + Windows. Patch by Daniel Berger. + * doc/release_notes/rel_1_3_1.rdoc: Final release notes for 1.3.1. + * lib/rubygems/rubygems_version.rb: 1.3.1. + +2008-10-10 Eric Hodel + + * lib/rubygems/commands/unpack_command.rb: Silence PATH warning. + +2008-10-09 Eric Hodel + + * lib/rubygems.rb: Fix requires for inflate, deflate, etc. + * test/*: Convert to minitest/unit. + * lib/rubygems/validator.rb: Fix for MiniTest instead of test/unit + classic in 1.9. + +2008-10-03 Phil Hagelberg + + * lib/rubygems.rb: Make Gem.dir respect :gemhome value from config. + * lib/rubygems/config_file.rb: Expose :gemhome value. + +2008-09-26 Luis Lavena + + * lib/rubygems.rb: Disregard ownership of ~ under Windows while + creating ~/.gem. Fixes issues related to no uid support under + Windows. + +2008-09-24 Eric Hodel + + * doc/release_notes/rel_1_3_0.rdoc: Final release notes for 1.3.0. + * lib/rubygems/rubygems_version.rb: 1.3.0. + * lib/rubygems/builder.rb: Examine process status correctly. Patch + by Nobu. + * test/test_gem_ext_rake_builder.rb: Override Gem.ruby and + ENV['rake'] for 1.9 integration. Patch by Nobu. + +2008-09-16 Phil Hagelberg + + * lib/rubygems.rb: Use the path set in the config file if + applicable. + * lib/rubygems/config_file.rb: Expose the path. + +2008-09-16 Eric Hodel + + * lib/rubygems.rb: Only create ~/.gem by user owning ~. Bug #21561 + by Neil Wilson. + +2008-09-15 Eric Hodel + + * lib/rubygems/source_index.rb: Autoload SpecFetcher to improve load + time. Patch #21577 by Simon Chiang. + * lib/rubygems/commands/lock_command.rb: Modernize. Fix --strict. + Patch #21814 by Sven Engelhardt. + * lib/rubygems/platform.rb: Fix for solaris platform. Patch #21911 + by Bob Remeika. + +2008-09-10 Eric Hodel + + * lib/rubygems/commands/install_command.rb: Describe _version_ in `gem + help install`. + * lib/rubygems/commands/environment_command.rb: Describe environment + variables and gemrc in `gem help env`. + * lib/rubygems.rb: Warn when executing Gem::manage_gems. + * lib/rubygems/doc_manager.rb: Have RubyGems update the ri cache. + * lib/rubygems/source_index.rb: Ensure specs are read as UTF-8. + * lib/rubygems/specification.rb: Add magic comment to .gemspec files + so they are read in as UTF-8. + +2008-08-22 Luis Lavena + + * lib/rubygems.rb: Corrected usage of HOMEDRIVE and HOMEPATH on Windows. + Escape Gem.ruby if spaces in the path are present. Solves bug related to + extensions compile process. + * test/test_gem.rb: Added test to verify both conditions. + +2008-08-17 Eric Hodel + + * doc/release_notes/rel_1_3_0.rdoc: Initial release notes for 1.3.0. + * util/CL2notes: Release note creation helper script. + +2008-08-16 Eric Hodel + + * lib/rubygems/local_remote_options.rb: Added #both? to complement + #local? and #remote?. + * lib/rubygems/commands/query_command.rb: Print out LOCAL/REMOTE with + --both, even without a TTY. + * lib/rubygems.rb: Add Gem.find_files, allows a gem to discover + features provided by other gems. + +2008-08-14 Wilson Bilkovich + + * lib/rubygems/source_index.rb: Deprecate options to 'search' other than + Gem::Dependency instances and issue warning until November 2008. + * lib/rubygems/platform.rb: Remove deprecated constant warnings + and really deprecate them. + * Rakefile: If the SETUP_OPTIONS environment variable is set, pass its + contents as arguments to setup.rb + * test/test_gem_commands_uninstall_command.rb: Added + +2008-08-13 Wilson Bilkovich + + * lib/rubygems/uninstaller.rb: Fix binary script uninstallation. + Bug #21234 by Neil Wilson. + * test/test_gem_commands_uninstall_command.rb: Added + +2008-08-12 Eric Hodel + + * lib/rubygems/installer.rb: Try to create directory before diverting + to ~/.gems. + * lib/rubygems/uninstaller.rb: Fix uninstallation with -i. Bug + #20812 by John Clayton. Have #remove_all call #uninstall_gem so hooks + get called. Bug #21242 by Neil Wilson. + * lib/rubygems/commands/update_command.rb: Fix updating RubyGems when + no previous rubygems-update is installed. Bug #20775 by Hemant Kumar. + +2008-08-11 Eric Hodel + + * lib/rubygems/remote_fetcher.rb: Fix HTTPS support. Patch #21072 by + Alex Arnell. Fix Not Modified handling. Bug #21310 by Gordon + Thiesfeld. + +2008-07-11 Luis Lavena + + * setup.rb: Properly build --destdir folder structure using Pathname. + * test/mockgemui.rb: Fix warnings about instance variables in a module. + +2008-07-02 Phil Hagelberg + + * lib/rubygems/defaults.rb: Add Gem.user_dir to use paths like + ~/.gem/ruby/1.8/gems and the like instead of just ~/.gem. Update + remote fetcher and installer to use it. + +2008-07-01 Eric Hodel + + * lib/rubygems/installer.rb: Add #gem_home, #bin_dir for hooks. Use + DependencyInstaller's source_index so reinstallation via -i does not + fail. + * lib/rubygems/uninstaller.rb: Add #gem_home, #bin_dir for hooks. + * lib/rubygems/commands/query_command.rb: Don't print LOCAL/REMOTE + gems if stdout is not a TTY. + * lib/rubygems/commands/query_command.rb: Use the regexp we already + have for `gem list --installed`. Bug #20876 by Nick Hoffman. + * lib/rubygems/commands/which_command.rb: Clarify what `gem which` is + for. + +2008-06-30 Eric Hodel + + * test/test_ext_configure_builder.rb: Locale-free patch by Yusuke + Endoh [ruby-core:17444]. + * lib/rubygems.rb: Add pre/post (un)install hooks. + * lib/rubygems/installer.rb: Call pre/post install hooks as + appropriate. + * lib/rubygems/uninstaller.rb: Call pre/post uninstall hooks as + appropriate. Minor refactoring of #uninstall. + * lib/rubygems/package/tar_reader.rb: Some OSs raise EINVAL on seek. + Based on patch in bug #20791 by Neil Wilson. + * lib/rubygems/specification.rb: Correctly check for support of + development dependencies for #to_ruby. Bug #20778 by Evan Weaver. + * lib/rubygems/spec_fetcher.rb: Correctly load all cache file even if + latest has been loaded. Bug #20776 by Uwe Kubosch. + +2008-06-25 Eric Hodel + + * lib/rubygems/config_file.rb: Add Gem::ConfigFile constants for + packagers and implementors to override defaults. + * test/*: Fixes to run tests when under test/rubygems/. Patch by + Yusuke ENDOH [ruby-core:17353]. + +2008-06-24 Eric Hodel + + * lib/rubygems/remote_fetcher.rb: Cleanup to support + if-modified-since requests. pair: Ryan Davis + * lib/rubygems/indexer: Force platform to Gem::Platform::RUBY when + nil or blank. Fixes various uninstallable gems. + +2008-06-24 Phil Hagelberg + + * lib/rubygems/installer.rb: Fall back on ~/.gem if GEM_HOME is + not writable. + * lib/rubygems/install_update_options.rb: Allow --user-install or + --no-user-install command-line switch to explicitly force whether + or not ~/.gem should be used. + * lib/rubygems/remote_fetcher.rb: Use ~/.gem/cache if cache dir is + not writable. + * test/gemutilities.rb: Use MockGemUi for all tests. + +2008-06-21 Eric Hodel + + * lib/rubygems/specification.rb: Load specifications from the future. + Roll back specification version change. + * lib/rubygems/remote_fetcher.rb: Reset connection when an HTTP + server misbehaves. + * setup.rb: Fix --destdir for windows. + * doc/release_notes/rel_1_2_0.rdoc: Bugs in RubyGems were + unintentionally added, order bug fixes by importance. + * lib/rubygems/rubygems_version.rb: 1.2.0. + +2008-06-20 Eric Hodel + + * lib/rubygems/uninstaller.rb: Improve output when a gem to uninstall + isn't found. Bug #20746 reported by Chad Wooley. + * setup.rb: Fix rdoc installation with --destdir. Patch #20739 by + Matthew Kent. + * lib/rubygems/commands/install_command.rb: Don't reset GEM_PATH when + installing. Fixes Bug #20746 by Chad Wooley. + +2008-06-20 Luis Lavena + + * setup.rb: Only prepend install_destdir when especified. Fixes + installation issues related to Windows paths (/C:/...) + +2008-06-19 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Ensure that the entire + dependency chain is installed. Fixes bug reported by Chad Woolley. + +2008-06-18 Eric Hodel + + * lib/rubygems/commands/dependency_command.rb: Restore matching + everything when no name is specified, regexp matching. Fixes bug + #20716, bug #20717 by Chad Woolley. + +2008-06-18 Chad Woolley + + * lib/rubygems/config_file.rb: Fix --config-file option with no + equals and subsequent options to properly assign config file. + Previously config file was overwritten by subsequent option. + Fixes bug #16688. + +2008-06-17 Eric Hodel + + * lib/rubygems/version.rb: Gem::Version #hash and #eql? now operate + on the version string, terms of the version string, so "1" and "1.0" + no longer correspond to the same slot. Fixes indexer bug reported by + Chad Woolley. + * setup.rb: Fix --format-executable. Patch #20698 by Richard Brown. + * util/gem_prelude.rb: Prevent infinite recursion, check for Gem now. + Patch from ruby trunk by nobu. + * lib/*: Spelling cleanup. Patch from trunk by Evan Farrar. + * test/*: Fixes for win32 test failures reported by Luis Lavena. + * util/gem_prelude.rb: Only remove methods added by gem_prelude.rb. + +2008-06-16 Eric Hodel + + * lib/rubygems/indexer.rb: Fix quick_index generation. + * lib/rubygems/specification.rb: Correctly guard new spec features + for older RubyGems. + * lib/rubygems/config_file.rb: Add system-wide config file + (/etc/gemrc). Patch #14723 by Phil Hagelberg. Add windows code to + use appropriate directory. Code by Daniel Berger. + * doc/release_notes/rel_1_2_0.rdoc: Draft of 1.2.0 release notes. + +2008-06-15 Eric Hodel + + * lib/rubygems/server.rb: Store off if we are returning Marshal + format before running =~ again. Fixes bug reported by Chad Woolley. + * lib/rubygems/commands/stale_command.rb: `gem stale` lists gems by + last access time. Patch #20593 by Aaron Patterson. + * lib/rubygems/setup.rb: Add --vendor and --destdir to setup.rb for + packagers. Patch #20610 by Richard Brown. Don't look for stub + files to remove any more. + * lib/rubygems/specification.rb: Bump specification version and be + backwards compatible with type 2 specs. + * lib/rubygems/commands/query_command.rb: Add installed location to + details for installed gems. + +2008-06-09 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Only install all dependencies + when install_dir option is set. Don't include satisfied dependencies + when gathering dependencies. + * lib/rubygems/commands/query_command.rb: Display authors, rubyforge + and homepage urls with details. + * lib/rubygems/commands/environment_command.rb: Add executable + directory (from Rubinius). + * lib/rubygems/commands/install_command.rb: Don't set install_dir by + default. + * lib/rubygems/commands/update_command.rb: Don't set install_dir by + default. Use #find_missing for efficiency. + +2008-06-07 Eric Hodel + + * lib/rubygems/server.rb: Fully mirror Gem::Indexer indexes, set + correct content-type headers, always refresh the source index. + * lib/rubygems/source_index.rb: Add spec_dirs so that #refresh! will + always reload from the same locations. #refresh! on manually-built + SourceIndex now raises. Fixes #20509 by Chad Woolley. + +2008-06-06 Eric Hodel + + * lib/rubygems/installer.rb: Remove previous bin_script_path in case + it is a symlink. + * lib/rubygems/commands/pristine_command.rb: Force reinstallation of + the gem using the installer. Fixes bug #20387 by Erik Persson. + * lib/rubygems/doc_manager.rb: Ensure args to RDoc are all strings. + * lib/rubygems/source_index.rb: Use find_matching to discover updated + specs instead of fetch. + * lib/rubygems/commands/query_command.rb: Platform, not name in spec + tuples. + +2008-06-05 Eric Hodel + + * lib/rubygems/local_remote_options.rb: Ensure remote repository URLs + reference directories. Fixes bug #20134 by Neil Wilson. + * lib/rubygems/source_index.rb: Gracefully handle ^C or explicit exit + while loading .gemspec files from disk. Fixes bug #20523 by Joel + VanderWerf. + * lib/rubygems/specification.rb: Use File#expand_path in + installation_path. Fixes bug #19317 by Hemant Kumar. + * lib/rubygems/spec_fetcher.rb: Fix legacy test against URI. + * lib/rubygems/remote_fetcher.rb: Always raise FetchError from + RemoteFetcher. Fix FetchErrors without URIs. Refactor Net::HTTP + request code to use persistent connections for HEAD requests. Feature + Request #7973 by Christian Schachtzabel. + * lib/rubygems.rb: Don't load custom_require until after the OS and + implementation have had a chance to set paths. + +2008-06-04 Eric Hodel + + * lib/rubygems/commands/source_index.rb: Only fetch specs we need in + #outdated. + * lib/rubygems.rb: Fix typo in ::activate exception. + * lib/rubygems/dependency.rb: For #to_s, display dependency type when + nil. + * lib/rubygems/dependency_installer.rb: Reset #installed_gems for + every #install. Fixes bug #19444 by Glenn Rempe. + * lib/rubygems/installer.rb: Don't re-read the disk to check for new + gems, add them by hand on install. + +2008-06-03 Eric Hodel + + * lib/rubygems.rb: Add ::gzip, ::gunzip, ::deflate and ::inflate. + * lib/rubygems/server.rb: Add specs and latest_specs indicies. + * setup.rb: Don't require rdoc until needed. Patch #20414 by Brian + Candler. + * lib/uninstaller.rb: Correctly uninstall gems installed with a + legacy platform. Patch #19877 by Luis Lavena. + * lib/rubygems/commands/update_command.rb: Only fetch remote specs + when we know what we're looking for. + +2008-06-02 Eric Hodel + + * lib/rubygems/specification.rb: Remove double slash in + #installation_path. Fixes bug #19896 by Heiko Seebach. + * lib/rubygems/remote_fetcher.rb: Require StringIO. Fixes bug #19866 + by Caleb Land. + * lib/rubygems.rb: Require rubygems/defaults/#{RBX_ENGINE}.rb and + rubygem/defaults/operating_system.rb if they exist. (OS require comes + first and may be overridden by operating system.) + +2008-06-01 Eric Hodel + + * lib/rubygems/indexer.rb: Ensure identical names, versions and + platforms are identical for a smaller index. + * lib/rubygems/spec_fetcher.rb: Only write to cache when we own it. + * lib/rubygems.rb: Honor default_path if GEM_PATH environment + variable is not set. Patch #19502 by Donavan Pantke. + * lib/rubygems/installer.rb: Set file mode indicated by tar file. + Patch #19737 by Jason Roelofs. + +2008-06-01 John Barnette + + * lib/rubygems.rb: Add Gem.available?(gem, *specs) for easy availability + checks at runtime. + +2008-05-31 Eric Hodel + + * lib/rubygems/commands/dependency_command.rb: Delay fetching specs + until needed. Reverse dependencies can no longer be calculated for + remote sources. Add backwards compatibility. + * lib/rubygems/commands/fetch_command.rb: Add backwards + compatibility. + +2008-05-30 Eric Hodel + + * lib/rubygems/local_remote_options.rb: --sources option should not + add URIs to Gem.sources. + * lib/rubygems/spec_fetcher.rb: Add #warn_legacy to help handling + legacy sources. + * luby/rubygems/commands/query_command.rb: Add backwards + compatibility with legacy sources. + +2008-05-28 Eric Hodel + + * lib/rubygems/remote_fetcher.rb: Add #uri to + Gem::RemoteFetcher::FetchError. + * lib/rubygems/user_interaction.rb: Improve RDoc slightly. + * lib/rubygems/spec_fetcher.rb: Introduce backwards compatibility for + legacy (pre 1.2) repositories + * lib/rubygems/commands/sources_command.rb: Backwards compatibility + and restoration of --update. + * lib/rubygems/specification.rb: Ensure nil-typed dependencies become + runtime dependencies. + +2008-05-27 Eric Hodel + + * lib/rubygems/spec_fetcher.rb: Switch #fetch, #find_matching to be + compatible with Gem::SourceInfoCache#search_with_source. Add caching + for .gemspec files. + * lib/rubygems/dependency_installer.rb: Switch to SpecFetcher. + * lib/rubygems/source_index.rb: Switch #outdated to use SpecFetcher. + * lib/rubygems/commands/dependency_command.rb: Switch to SpecFetcher. + * lib/rubygems/commands/outdated_command.rb: Switch to SpecFetcher. + * lib/rubygems/commands/query_command.rb: Switch to SpecFetcher. + * lib/rubygems/commands/sources_command.rb: Switch to SpecFetcher. + * lib/rubygems/commands/update_command.rb: Switch to SpecFetcher. + * lib/rubygems/version.rb: Handle comparisons with non-Gem::Version + objects. + +2008-05-13 Eric Hodel + + * lib/rubygems/spec_fetcher.rb: Add caching of specs, latest_specs + files. + * test/gemutilities.rb: Ensure Gem.user_home doesn't point to ~. + +2008-05-09 Eric Hodel + + * lib/rubygems/indexer.rb: Add Marshal format index of spec names, + versions and platforms. WIP. + * lib/rubygems/spec_fetcher.rb: WIP for replacement of + Gem::SourceInfoCache and SourceInfoCacheEntry. + * lib/rubygems/dependency.rb: Add #=~. + +2008-05-07 John Barnette + + * lib/rubygems/specification.rb, et. al: Let gems have development + dependencies, which aren't installed (except when --development is + supplied) or activated. + +2008-05-02 Eric Hodel + + * lib/rubygems/indexer.rb: Refactored into simpler more imperative + code. + * lib/rubygems.rb: Leave rbconfig/datadir.rb for non-RubyGems use. + +2008-04-16 Eric Hodel + + * lib/rubygems/server.rb: Refresh the source index per request so new + gems will be found after server startup. + +2008-04-15 Eric Hodel + + * lib/rubygems/source_index.rb: Only print out "Bulk updating" when + verbose, fix #latest_specs documentation. + * lib/rubygems/dependency_installer.rb: Add :cache_dir option for + Tinderbox. + +2008-04-14 Eric Hodel + + * lib/rubygems/test_utilities.rb: Expose some internal testing + utilities that are of general use. + +2008-04-10 Eric Hodel + + * lib/rubygems.rb: Fix Gem.prefix so it reports nil when rubygems.rb + is in sitelibdir, libdir, or doesn't have 'lib' as a parent directory. + * doc/release_notes/rel_1_1_1.rdoc: RubyGems 1.1.1 release notes. + * lib/rubygems/rubygems_version.rb: 1.1.1. + +2008-04-07 Eric Hodel + + * lib/rubygems/server.rb: Fix fragment URIs. Patch by James Tucker. + * lib/rubygems/commands/update_command.rb: Pass + --no-format-executable to setup.rb. Patch by Stephen Bannasch. + +2008-04-06 Chad Woolley + + * lib/rubygems.rb: Add setter Gems.platforms=, to allow platforms + to be set/reset when invoking or testing RubyGems programatically. + Also force Gems.platforms to automatically reset to default of + [Gem::Platform::RUBY, Gem::Platform.local] if cleared. + * lib/rubygems/version_option.rb: Change add_platform_option + to initialize Gem.platforms to contain only Gem::Platform::RUBY + +2008-04-04 Eric Hodel + + * lib/rubygems/source_index.rb: Make Gem::SourceIndex#refresh! + more-correct. Reported by Paul Haddad. + * lib/rubygems.rb: Add Gem::refresh. Bug #19176 by Hongli Lai. + * lib/rubygems/dependency_installer.rb: Put downloaded gems into + install_dir's cache. Patch #19182 by Richard Brown. + +2008-04-03 Eric Hodel + + * lib/rubygems/source_info_cache.rb: Merge full cache file into + latest data. Don't write cache files when checking for them. Only + update full cache file when we've read it. Refresh all data when + loading all data. + * lib/rubygems/dependency_installer.rb: Fix --force to work without + network for dependent gems. Fix all-fetching test. + * lib/rubygems/commands/query_command.rb: Obey --all flag for gem + query. + * lib/rubygems/commands/environment_command.rb: Don't display + RubyGemsPackageVersion. + * lib/rubygems/indexer.rb: Fix typo. Patch by Tom Copeland. + * lib/rubygems/command_manager.rb: Display RubyGemsVersion with + --version. + * lib/rubygems/commands/pristine_command.rb: Rebuild extensions along + with everything else. Patch #19281 by Dr. Nic Williams. + +2008-04-01 Eric Hodel + + * lib/rubygems.rb: Fix prefix to point to directory above RubyGems, + so RubyGems will be installed into lib/. + * setup.rb: Work around apple's libdir-installed RubyGems, by + installing into sitelibdir. + * Rakefile: Add svnversion to RubyGems version number for `rake + install`. + +2008-03-31 Luis Lavena + + * test/: Allow tests to use a random (but controlled) port number + instead of a hardcoded one. This helps CI tools when running + parallels builds. + +2008-03-30 Luis Lavena + + * test/test_gem.rb: Leave APPLE_GEM_HOME tests only to *nixes. + * lib/rubygems/remote_fetcher.rb: Errno::ECONNABORTED raised on Windows + on closed Keep-Alive connections. + +2008-03-29 Eric Hodel + + * gemspecs/: Removed. + * examples/: Removed. + * doc/design/: Removed. + * doc/rdoc_templates/: Removed. + * Rakefile: Package doc/release_notes/. + * setup.rb: Use full path to release_notes, ensure RDoc can be + both removed and installed. + +2008-03-28 Eric Hodel + + * bin/gem, Rakefile: RubyGems now requires Ruby > 1.8.3. + * lib/rubygems.rb: Added Gem.ruby_version, Gem.read_binary, + Gem.binary_mode. + * lib/, test/: Read files in binary mode for windows and ruby 1.9. + * lib/rubygems/commands/update_command.rb: Only update once. + * lib/rubygems/commands/sources_command.rb: Ditto. + * lib/rubygems/source_index.rb: Fix #remove_extra, #find_missing so + legacy platform gems don't get updated repeatedly. + * doc/release_notes/rel_1_1_0.rdoc: RubyGems 1.1.0 release notes. + * lib/rubygems/rubygems_version.rb: 1.1.0. + +2008-03-28 Ryan Woodrum + + * lib/rubygems/commands/query_command.rb: Add --installed + subcommand to check if a gem and/or version is installed. + * test/test_gem_commands_query_command.rb: Add relevant tests. + * test/gemutilities.rb: Override exit() for query tests. + * test/mockgemui.rb: Add =() to manipulate output values (clear). + +2008-03-28 Chad Woolley + + * lib/rubygems/source_info_cache.rb: Add reset_cache_file. + +2008-03-27 Chad Woolley + + * lib/rubygems/user_interaction.rb: Raise Gem::SystemExitException + instead of exiting, kill unused terminate_interaction!. + * lib/rubygems/exceptions.rb: Add Gem::SystemExitException. + * lib/rubygems/commands/install_command.rb: Raise + Gem::SystemExitException instead of exiting. + * bin/gem: Rescue Gem::SystemExitException and exit with + specified exit_code. + * test/test_gem_commands_install_command.rb: Assert on + Gem::SystemExitException and exit_code in tests. + +2008-03-27 Eric Hodel + + * lib/rubygems/commands/sources_command.rb: Allow sources to be + removed without network. Fixes bug #18644 by Mikel Lindsaar. + +2008-03-27 Luis Lavena + + * lib/rubygems/commands/environment_command.rb: Use platform specific + PATH_SEPARATOR instead of hardcoded ':' + * test/test_gem_commands_unpack_command.rb: Ditto. + * test/test_gem_commands_environment_command.rb: Ditto. + * test/gemutilities.rb: Fix binary file reads being truncated on + Windows. + * test/test_gem_commands_install_command.rb: Switch to read_binary. + * test/test_gem_commands_update_command.rb: Ditto. + * test/test_gem_commands_server_command.rb: Consider full path when + evaluating location (instead of hardcoded or missing drive leter). + * test/test_gem_installer.rb: Ditto. + * test/test_gem_dependency_installer.rb: exclude no-wrapper tests for + Windows. + +2008-03-26 Luis Lavena + + * lib/rubygems.rb: Handle backslashes that came from GEM_HOME and + GEM_PATH on Windows. + +2008-03-25 Eric Hodel + + * lib/rubygems/source_index.rb: Add updating from latest index, + default to updating from latest index. Reduces common-case update + to under 3,000 gems at present. + * lib/rubygems/remote_fetcher: Fix error reporting from net/http. + * lib/rubygems.rb: Sort methods, remove last vestiges of autorequire, + RDoc cleanup. + +2008-03-23 Luis Lavena + + * setup.rb: generated Windows stubs will honors prefix using Gem.ruby + instead of hardcoded 'ruby.exe' + * lib/rubygems/installer.rb: generated Windows stubs scripts will now + work from differnt directories than Gem::bindir. Fixes bug #16259 by + Claus Folke Brobak + +2008-03-20 Eric Hodel + + * test/test_gem_source_info_cache.rb: Test with real objects now. + * lib/rubygems/source_index.rb: #latest_specs now has latest specs + for all platforms. + * lib/rubygems/source_info_cache.rb: Add latest cache data, only load + full cache data when needed. + +2008-03-20 Luis Lavena + + * test/gemutilities.rb: Change all the file processing mechanism to + enable binary mode by default (required for Windows file operations + dealing with non-printable characters). + +2008-03-19 Luis Lavena + + * lib/rubygems/package/tar_output.rb: Adapted code to use #wrap instead + of #new when dealing with Zlib::GzipWriter (fixes SEGV and warnings due + GzipWriter object not being closed explicitly). + +2008-03-12 Eric Hodel + + * lib/rubygems/indexer.rb: Add latest_index. + +2008-03-09 Eric Hodel + + * lib/rubygems/defaults.rb: Add special case for RUBY_ENGINE constant + when setting default gem dir. + * Rakefile: Add update_rubinius and diff_rubinius. + +2008-03-08 Lincoln Stoll + + * lib/rubygems/server.rb: Drop use of RDoc's TemplatePage in favor of + ERB. + +2008-03-04 Ryan Davis + + * lib/rubygems/remote_fetcher.rb: Moved #download from + DependencyInstaller. + * lib/rubygems/commands/fetch_command.rb: Updated to use #download. + * lib/rubygems/dependency_installer.rb: install now takes name or dep. + Renamed gather_specs_to_download to find_spec_by_name_and_version. + Modifed #initialize to not take gem name or version. + +2008-03-04 Eric Hodel + + * lib/rubygems/package*: Removed #open_from_io and friends, switched + to #open, no special handling for file names. + * lib/rubygems/package/tar_output.rb: Refactored ::open to use + instance methods. + * lib/rubygems/remote_fetcher.rb: Print out number of requests made + before connection reset. + +2008-02-29 Eric Hodel + + * lib/rubygems/package/tar_reader/entry.rb: Removed is_directory and + is_file? in favor of file? and directory?. + +2008-02-28 Eric Hodel + + * lib/rubygems/package.rb: Broke up Tar bits into separate files. + * lib/rubygems/package/tar_reader/entry.rb: Don't copy TarHeader data + into Entry, go through #header instead. Better tests for + TarReader::Entry. + +2008-02-27 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Automatically fall back to + local-only install on network error. Fixes bug #15759 by Chauk-Mean P. + * lib/rubygems/source_index.rb: Process spec dirs so that earlier + dirs override later dirs. Fixes bug #14816 by Kurt Stephens. + +2008-02-26 Eric Hodel + + * lib/rubygems/commands/update_command.rb: Only update gems that need + updates. Fixes bug #14780 by Mathieu Lajugie. Don't force + remote-only updates. Properly handle dependencies when updating. + Fixes bug #17488 by Hongli Lai. + * lib/rubygems/commands/environment_command.rb: Display path as a + usable path. + * lib/rubygems.rb: Don't add APPLE_GEM_HOME with ENV['GEM_HOME']. + +2008-02-25 Eric Hodel + + * lib/rubygems.rb: Expand sitelibdir when checking prefix. Fixes bug + #17983 by Hemant Kumar. + * setup.rb: Print release notes on installation. Tell people where + `gem` was installed. + * bin/update_rubygems: Added --help output to explain how to install + earlier versions of RubyGems. Added --version option workaround. + Fixes bug #16842 by Chad Woolley. + * lib/rubygems/install_command.rb: Give proper exit code on failure. + Fixes bug #17438 by Josh Nichols. + +2008-02-23 Eric Hodel + + * lib/rubygems/remote_fetcher.rb: Change hosts correctly when + redirecting. Handle EOFError from Net::HTTP. + * lib/rubygems/commands/specification_command.rb: Pull specifications + from gem files. + * lib/rubygems/uninstaller.rb: When :executable is set, don't ask the + user. Fixes bug #16812 by Matt Mower. Raise exception instead of + printing message when gem is not in GEM_HOME. + * lib/rubygems/uninstall_command.rb: Print message when gem is not in + GEM_HOME. + * lib/rubygems/commands/cleanup_command.rb: Clean up all old gems. + * lib/rubygems/commands/unpack_command.rb: Scan every gem path when + unpacking. Fixes bug #17602 by Ryan Davis. + +2008-02-20 Eric Hodel + + * lib/rubygems/install_update_options.rb: Add --bindir option to + specify destination to install executables into. Patch #17937 by + Donavan Pantke. + * lib/rubygems/specification.rb: Fix Time.today == Time.today. Bug + #17413 by Andrei Bocan. + * setup.rb: Properly check for deletablitily of user and system + caches. Bug #17869 by Alexey Verkhovsky. Fix --no-format-executable. + Fixes bug #16879 by Charles Nutter. + +2008-02-19 Eric Hodel + + * lib/rubygems/remote_fetcher.rb: Add persistent connection support. + Patch #18180 by Aaron Patterson. + * lib/rubygems/installer.rb: Fix #shebang to use the ruby install + name. Patch #16878 by Donavan Pantke. + * lib/rubygems/defaults.rb, lib/rubygems.rb: Enable defaults for + Gem.path and Gem.bindir. Patch #17886 by Donavan Pantke. + * test/test_gem_ext_configure_builder.rb: Make test_self_build_fail + more platform independent. Patch #17599 by Martin Krauskopf. + +2008-02-14 Eric Hodel + + * lib/rubygems/commands/fetch_command.rb: Fix a bug when fetching + from non-default sources. Report non-existent gems instead of + crashing. + +2008-01-09 Eric Hodel + + * lib/rubygems/commands/update_command.rb: Use portable and safe ENV + operation. Patch by usa in ruby SVN revision 14739. + * lib/rubygems/open-uri.rb: Fix tests. Patch by NARUSE Yui. + [ruby-dev:33336] + +2007-12-23 Eric Hodel + + * util/gem_prelude.rb: Remove methods from Gem, not QuickLoader, to + fix warnings. + +2007-12-22 Eric Hodel + + * lib/rubygems/commands/environment_command.rb: Put GEM PATHS in the + correct order. + * lib/rubygems/commands/uninstall_command.rb: Add --install-dir to + specify which local repository to uninstall from. Patch #15151 by + Donavan Pantke. + * lib/rubygems/uninstaller.rb: Only allow uninstallation of gems from + specified directory. Properly clean up executables on uninstall. + Patch #15151 by Donavan Pantke. + * lib/rubygems/install_update_options.rb: Add --no-env-shebang + option. Patch #16508 by Donavan Pantke. + * util/gem_prelude.rb: Use require to load rubygems.rb to make + $LOADED_FEATURES correct on RubyGems update. + +2007-12-21 Eric Hodel + + * util/gem_prelude.rb: Place bin before lib so bin stubs work. + +2007-12-20 Eric Hodel + + * Rakefile: Require Ruby > 1.8.2. Enable CERT_DIR. + * lib/rubygems.rb: Work with RbConfig and Config. Bug #16457 by + Christian Ramilo, John Barnette. + * lib/rubygems/commands/build_command.rb: Relax yaml? test to work + with Ruby 1.8.3. + * lib/rubygems/rubygems_version.rb: 1.0.1. + * doc/release_notes/rel_1_0_1.rdoc: RubyGems 1.0.1 release notes. + +2007-12-19 Eric Hodel + + * lib/rubygems/installer.rb: Revert change that only wrapped + executables with #!. + * lib/rubygems/specification.rb: Warn about a lot of things that + could be wrong with gemspecs on build, including missing #!. Use + 'x86-mswin32' for legacy 'mswin32' platform, fix CURRENT platform. + Paired with Luis Lavena. + * lib/rubygems/remote_installer.rb: Deleted. + * lib/rubygems.rb: Removed Kernel#require_gem. + * doc/release_notes/rel_1_0_0.rdoc: RubyGems 1.0 release notes. + * lib/rubygems/rubygems_version.rb: 1.0.0. + +2007-12-18 Luis Lavena + + * lib/rubygems/commands/mirror_command.rb: Work around URI::parse + processing file:// scheme and drive paths on Windows. + * test/test_gem_commands_mirror_command.rb: ditto. + +2007-12-17 Eric Hodel + + * lib/rubygems/installer.rb: Copy files into bindir if they don't + have a shebang. Bug reported by Luis Lavena. + * lib/rubygems/server.rb: Handle platforms in Gem::Server#quick. + Exactly match gem names. Bugs reported by Chad Woolley. + * lib/rubygems/platform.rb: Remove platform constants in favor of + Gem::Platform::CURRENT. Bug reported by Luis Lavena. + * lib/rubygems/dependency_installer.rb: Work around Dir::glob not + understanding File::ALT_SEPARATOR. Bug submitted by Luis Lavena. + +2007-12-16 Eric Hodel + + * lib/rubygems/remote_fetcher.rb: Be more verbose in error messages + from OpenURI. + * lib/rubygems/server.rb: Be more verbose in error/missing responses. + +2007-12-15 Eric Hodel + + * lib/rubygems/installer.rb: Output extension build results when + really verbose. From bug #15853 John Croisant. + * lib/rubygems/specification.rb: Fix backwards compatibility with + 0.9.4, don't allow the platform to be nil or an empty string. Bug + #16177 by Dan Manges. + * setup.rb: Re-exec setup.rb if rubygems is loaded and RUBYOPT is + set. Fixes bug #15974 by Joshua Sierles. + * lib/rubygems/update_command.rb: Tweak formatting of updated + message. Bug #15625 by Bil Kleb. + * lib/rubygems/remote_fetcher.rb: Add URI to exception message for + Gem::RemoteFetcher#fetch_size. Bug #14801 by Bil Kleb. + +2007-12-14 Eric Hodel + + * lib/rubygems/commands/query_command.rb: Don't display duplicate + version numbers. Bug #15828 by Tim Fletcher. + * setup.rb: Fix my stupidity with --help. Patch #16308 by Stephen + Bannasch. Fix --prefix= argument. Bug #16002 by Piglop. + +2007-12-13 Eric Hodel + + * lib/rubygems/commands/server_command.rb: Fix --no-daemon. Bug by + Chad Woolley. + * lib/rubygems/server.rb: Fix Marshal quick index. Bug by Chad + Woolley. + * lib/rubygems/installer.rb: Respect Gem::Specification#bindir. Bug + #16202 by Suraj Kurapati. + * lib/rubygems/commands/update_command.rb: Fix `gem update mysql`. + Bug #16244 by Stephen Bannasch. + +2007-12-12 Eric Hodel + + * lib/rubygems/installer.rb: Add --format-executable option to + install executables with ruby's program-suffix and prefix. Patch + #14688 by Jeremy Kemper. Also, installing in really-verbose mode + prints out written files. + * setup.rb: Add --format-executable option to install gem with ruby's + program-suffix and prefix. Add --help. Fixes bug #16056 by Chad + Woolley. + * lib/rubygems/uninstaller.rb: Fallback to original_platform_name + correctly. Patch #15960 by Nicola Piccinini's friend. + +2007-12-11 Eric Hodel + + * lib/rubygems/validator.rb: Correct test run failures when no tests + are provided. Patch #15701 by Jérémy Zurcher. + * lib/rubygems/commands/mirror_command.rb: Don't File.join a + URI::HTTP. Patch #16116 by Morgan Nelson. + * lib/rubygems/commands/unpack_command.rb: Add --target option to + `gem unpack`. Patch #16154 by Kevin Barnes. + +2007-12-10 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Revert to nil for the default + security policy to avoid requiring OpenSSL. + * lib/rubygems/defaults.rb: Consolidate defaults for easier editing. + Patch #15150 by Donavan Pantke. + +2007-11-27 Eric Hodel + + * lib/rubygems/source_index.rb: Remove dependency on forwadable. + Patch by Koichi Sasada. + * lib/rubygems/specification.rb: Reduce dependency on time.rb. Patch + by Koichi Sasada. + +2007-11-26 Rich Kilmer + + * lib/rubygems/version.rb: Fix bug 15948 with version bump + * test/test_gem_version.rb: Test for bug 15948 with version bump + * util/gem_prelude.rb: wrap init code with exception handler + and skip badly formed directory names + +2007-11-23 Rich Kilmer + + * lib/rubygems.rb: Centralize all CONFIG options into Hash + Gem::ConfigMap with keys as symbols, change all references + to CONFIG to ConfigMap + * lib/rubygems/require_paths_builder.rb: Added to support + building .require_paths file + * lib/rubygems/installer.rb: Add building of .require_paths if + needed + * lib/rubygems/platform.rb: Use new ConfigMap hash for arch + * lib/rubygems + * util/gem_prelude.rb: new gem prelude for Ruby 1.9 + * test/test_gem_installer.rb: change to use ConfigMap hash + * test/gemutilities.rb: change to use ConfigMap hash + +2007-11-21 Daniel Berger + + * lib/rubygems/platform.rb: Gem::Platform.new now returns + Gem::Platform.local if the arch matches Gem::Platform::CURRENT. + Bugs #15815 and #15782 submitted by Daniel Berger. + +2007-11-20 Eric Hodel + + * lib/rubygems/platform.rb: Handle bare 'mswin32' platform's CPU. + +2007-11-19 Eric Hodel + + * lib/rubygems/rubygems_version.rb: 0.9.5. + +2007-11-16 Eric Hodel + + * test/gemutilities: Add a legacy platform gem to the default test + gems list. + * lib/rubygems/specification.rb: Add Gem::Specification#original_name + for legacy purposes + * lib/rubygems/indexer.rb: Use #original_name to make the indexer + backwards compatible. + * lib/rubygems/master_index_builder.rb: Reduce memory consumption. + +2007-11-13 Eric Hodel + + * lib/rubygems/rubygems_version.rb: 0.9.4.7 beta. + * lib/rubygems.rb: Patch for RUBY_FRAMEWORK for OS X 10.5. Patch + submitted by Laurent Sansonetti. + * lib/rubygems.rb: cygwin, djgpp, mingw are Windows platforms. Fixes + bug #15537 by Roger Pack. + +2007-11-11 Eric Hodel + + * Rakefile: Tasks for maintaining ruby trunk export of RubyGems. + * lib/rubygems/specification.rb: Preserve original platform across + serialization. + * lib/rubygems/dependency_installer.rb: Retry with original platform + name on fetch error. + +2007-11-09 Eric Hodel + + * lib/rubygems/specification.rb: Set #original_platform only once. + * lib/rubygems/indexer.rb: Handle legacy platforms. + * lib/rubygems/platform.rb: Gem::Platform is a valid argument. Bug + #15511 submitted by Daniel Berger. + * lib/rubygems/custom_require.rb: Fix compatibility with 1.8.2. Bug + #14933 submitted by Aaron Patterson. + * lib/rubygems/command.rb: Now '-V' enables verbose. Bug #14951 + submitted by Sasa Ebach. + * lib/rubygems/commands/check_command.rb: Change use of '-v', '-V' to + match above. + * lib/rubygems/package.rb: #send! is gone again. + * lib/rubygems.rb: Don't add custom_require for 1.9. + * test/*: Make compatible with 1.9 import. + +2007-10-30 Eric Hodel + + * lib/rubygems/specification.rb: Don't re-use @platform to maintain + backwards compatibility. + * lib/rubygems/platform.rb: Handle nil and 'ruby' platforms in ::new. + +2007-10-20 Daniel Berger + + * lib/rubygems/uninstaller.rb: Changed '.cmd' to '.bat' in the + remove_executables method for MS Windows. Patch from Luis Lavena. + +2007-10-18 Eric Hodel + + * lib/rubygems/rubygems_version.rb: 0.9.4.6 beta. + +2007-10-19 Eric Hodel + + * lib/rubygems/commands/update_command.rb: Don't install with + dependencies when updating. This is a hack. + +2007-10-19 Daniel Berger + + * setup.rb: gem.cmd stub is now gem.cmd, and the stub generation was + changed - now better for NT. Patch #14725 (Luis Lavena). + * lib/rubygems/installer.rb: Same as for setup.rb. + +2007-10-18 Daniel Berger + + * lib/rubygems/platform.rb: Modified the Platform.local method for MS + Windows for versions built with VC++ 6. Patch #14727 (Luis Lavena). + * test/test_gem_specification.rb: Added version independent tests for + MS Windows. Patch #14727 (Luis Lavena). + +2007-10-18 Eric Hodel + + * lib/rubygems/remote_fetcher.rb: Add platform to User-Agent. + * lib/rubygems/commands/install_command.rb: Fix typo. Debian bug + #443135 submitted by Reuben Thomas. + * lib/rubygems/dependency_installer.rb: Don't install dropped + dependencies. Fixes bug #14724 submitted by Luis Lavena. + +2007-10-17 Eric Hodel + + * lib/rubygems/commands/update_command.rb: Unset RUBYOPT when running + setup.rb + * setup.rb: Re-exec without RUBYOPT if it is set. Fixes bug #14683 + submitted by Lyle Johnson. + +2007-10-16 Daniel Berger + + * lib/rubygems/indexer/abstract_index_builder.rb: The compress method + now does a binary read to make MS Windows happy. + +2007-10-16 Eric Hodel + + * setup.rb: Installs bin stubs that warn when you try to use the old + commands. Simple mswin deprecation stubs by Luis Lavena. + +2007-10-12 Eric Hodel + + * setup.rb: Remove source caches on install. + * doc/release_notes/rel_0_9_5.rdoc: Draft added. + * lib/rubygems/rubygems_version.rb: 0.9.4.5 beta. + +2007-10-10 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Fix small bug found by Alan C. + Francis. + +2007-10-09 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Use install_dir so custom gem + repos can be used. + * lib/rubygems/specification.rb: Always set required attributes, even + if they match the default. + +2007-10-08 Ryan Davis + + * lib/rubygems.rb: Fixed require order so custom_require is + last. Added HACK tag to remind Jim to release rake. + * test/test_gem_source_index.rb: Fixed latest_specs' tests so + failures were much more readable. + * lib/rubygems/source_index.rb: Fixed latest_specs to deal with + platforms appropriately. Returns array again. + +2007-10-08 Eric Hodel + + * lib/rubygems/config_file.rb: Boost bulk_threshold to 1000, Marshal + format is smaller than yaml format quick index. + * lib/rubygems/installer.rb: Make #shebang correctly rewrite env + shebangs. + * lib/rubygems/specification.rb: Mark Time.today for removal, too much + depends upon it now. + +2007-10-07 Eric Hodel + + * lib/rubygems/specification.rb: Sped up ::_load. + * lib/rubygems/source_index.rb: Sped up #search. + * lib/rubygems/version.rb: Replace #to_ints with #ints, and cache + result. + * lib/rubygems/source_info_cache.rb: Only flush cache when it changes. + +2007-10-05 Eric Hodel + + * lib/rubygems/user_interaction.rb: Allow customization of completion + message for progress reporters. + * lib/rubygems/command.rb: Add --quiet option. + * lib/rubygems/commands/generate_index_command.rb: Add description. + +2007-10-04 Eric Hodel + + * lib/rubygems/uninstaller.rb: Also check and uninstall old platform + name to ensure legacy platform gems are uninstalled. + * lib/rubygems/doc_manager.rb: Remove existing rdoc and ri directory + so regenerating docs succeeds even if previously interrupted. + +2007-10-02 Eric Hodel + + * lib/rubygems/source_index.rb: Make #outdated search only for gems + matching the current platform. + * lib/rubygems/commands/dependency_command.rb: Add --platform. + * lib/rubygems/commands/outdated_command.rb: Ditto. + * lib/rubygems/commands/specification_command.rb: Ditto. + * lib/rubygems/commands/update_command.rb: Ditto. + +2007-10-02 Wilson Bilkovich + + * lib/rubygems/specification.rb: Custom Marshal format to reduce index + size. + * lib/rubygems/requirement.rb: Ditto + * lib/rubygems/version.rb: Ditto + +2007-10-01 Eric Hodel + + * lib/rubygems/platform.rb: Handle mswin32 on VC6. Partial patch and + assistance by Luis Lavena. Handle cpu-os-version style platforms for + command-line arguments. + +2007-09-30 Eric Hodel + + * lib/rubygems/specification.rb: Gem::Specification is now + forward-compatible while loading. + +2007-09-29 Eric Hodel + + * lib/rubygems/source_info_cache_entry.rb: Correctly handle URIs. + * lib/rubygems/remote_fetcher.rb: ditto. + * lib/rubygems/remote_options.rb: Add --update-sources option. Patch + #14246 submitted by Alan Francis. + * lib/rubygems/config_file.rb: Add update_sources setting to control + automatic refreshing of sources (patch #14246). Fix bug where things + would be overwritten in ~/.gemrc when they shouldn't. + +2007-09-28 Eric Hodel + + * lib/rubygems/rubygems.rb: Gem.ruby now returns the full path. Added + Gem.prefix to make self updating work right. + * setup.rb, pre-install.rb, post-install.rb: Replace with a small, + simple setup script that works. + * lib/rubygems/commands/update_command.rb: Pass rdoc, ri and prefix + flags down to setup.rb when self updating. + +2007-09-26 Eric Hodel + + * lib/rubygems/version_option.rb: Always include RUBY platform, + allow RUBY platform as an option. + * lib/rubygems/specification.rb: Gems with non-ruby platform sort + last (first in preference for installation). + * lib/rubygems/platform.rb: Allow matching of legacy platforms. + * lib/rubygems/source_index.rb: Add only_platform option to #search. + +2007-09-24 Wilson Bilkovich + * lib/rubygems/indexer.rb: Generate a Marshal index in parallel to YAML + * lib/rubygems/source_index.rb: Fetch a Marshal index if it exists, to + avoid the memory cost of parsing a huge YAML file + * lib/rubygems/commands/mirror_command.rb: Check for Marshal first + * lib/rubygems/indexer/abstract_index_builder.rb: Index refactoring + * lib/rubygems/indexer/marshal_index_builder.rb: Build Marshal index + * lib/rubygems/indexer/master_index_builder.rb: Simplify YAML generation + * lib/rubygems/indexer/quick_index_builder.rb: Build Marshal quickindex + * lib/rubygems/server.rb: Serve up Marshal index as well as YAML + * lib/rubygems/source_info_cache_entry.rb: Expect a Marshal index + +2007-09-23 Eric Hodel + + * lib/rubygems/commands/fetch_command.rb: `gem fetch` downloads a gem + to the current directory. Feature request #10752 by Bret Pettichord. + * lib/rubygems/commands/local_remote_options.rb, etc.: Fix spelling of + 'threshold'. + * lib/rubygems/installer.rb: Revert feature request #8818, it + interferes with `ruby -S` and multiple versions of ruby (1.8 and 1.9). + * lib/rubygems/dependency_installer.rb: Fix a bug where the wrong + platform gem would be installed. + * lib/rubygems/version_option.rb: Add --platform. + * lib/rubygems/install_update_options.rb: Verify --security-policy. + * lib/rubygems/local_remote_options.rb: Verify --source, --http-proxy. + +2007-09-22 Eric Hodel + + * lib/rubygems/open-uri.rb: Don't document our OpenURI. + * lib/rubygems/commands/generate_index_command.rb: Fix Indexer class + change. + * lib/rubygems/commands/mirror_command.rb: Fix for 1.9. + * lib/rubygems/commands/pristine_command.rb: Have `gem pristine` + give a better report of what it accomplished. + * lib/rubygems/command.rb: Add optional description field. + * lib/rubygems/installer.rb: Hack around broken Pathname#absolute? on + windows. Patch #14139 by Jim Hughes. + +2007-09-20 Eric Hodel + + * misc files: Tests pass on 1.9. + * test/gemutilities.rb: Added Object#send! stub for 1.8. + * test/test_open_uri.rb: Require gem_open_uri.rb to avoid warnings. + * lib/rubygems/commands/sources_command.rb: Clarify `gem sources -c` + and what `gem sources` does. Patch by Hugh Sasse. + +2007-09-19 Eric Hodel + + * lib/rubygems/platform.rb: Make Gem::Platform a class. + * lib/rubygems/specification.rb: Gem::Specification#validate returns + true, non-Gem::Platform platforms are no longer allowed. + * test/gemutilities.rb: 1.9 compatiblity fixes. + * lib/rubygems/dependency_installer.rb: Work around a bug in URI.parse + which misinterprets "C:/". Patch #13537 submitted by Daniel Berger. + * lib/rubygems/format.rb: Ensure file handles are closed. Patch + #13533 submitted by Daniel Berger. + * test/test_gem_installer.rb: Win32 path fix. Patch #13528 submitted + by Daniel Berger. + * test/gemutilities.rb: Make the platform be a win32 platform on + win32. Fixes confusion in generate_bin_symlink tests. Patch #13529 + submitted by Daniel Berger. + * test/test_gem_specification.rb: Sequel to above. Patch + #13535 submitted by Daniel Berger. + * lib/rubygems/source_index.rb: Make the updating cache message more + clear. Patch #12778 submitted by Bil Kleb. + * lib/rubygems/server.rb: Allow gem's rdoc-style.css to be used. + Patch #13589 by Stephen Bannasch. + * lib/rubygems/indexer.rb: Fail on missing builder gem only when + trying to use the indexer. Fixes bug #13939 by Bryan Stearns. + * lib/rubygems/indexer/indexer.rb: Move Indexer up one level in + nesting. + * lib/rubygems/indexer/compressor.rb: Only used in + Gem::Indexer::AbstractIndexBuilder subclasses, merged there. + * lib/rubygems/command_aids.rb: Merged Gem::CommandAids into + Gem::Command since that's the only place it gets used. + * misc other files: mswin fixes. Paired with Daniel Berger. + +2007-08-24 Eric Hodel + + * lib/rubygems/specification.rb: Fix #full_name for versionless + platforms. + * lib/rubygems/command_manager.rb: We're only looking for NameError. + * lib/rubygems/command.rb: 1.9 fix. + * lib/rubygems/format.rb: ditto. + * lib/rubygems/installer.rb: ditto. + +2007-08-24 Eric Hodel + + * lib/rubygems/rubygems_version.rb: 0.9.4.4 + +2007-08-23 Eric Hodel + + * lib/rubygems/platform.rb: Add HPUX, AIX and NetBSD. Thanks to + Daniel Berger, Yutaka KANEMOTO and Andre Nathan respectively. + * lib/rubygems/installer.rb: Move all option setting to #initialize to + make `gem pristine` work again. + * lib/rubygems/commands/environment_command.rb: Include platforms. + * lib/rubygems/dependency_installer.rb: Support local non-root + installation. + +2007-08-22 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Don't reinstall dependencies + existing in the install dir. Don't install dependencies for older + versions of the gem we're installing. #installed_gems now contains + loaded gemspecs. Always prefer local gems. Handle globs correctly. + All deps are now installed into the install_dir. + * lib/rubygems/commands/install_command.rb: Switch to + Gem::DependencyInstaller. Warn when -y is given, it will be removed. + Try our best to install everything the user asked. + * lib/rubygems.rb: Gem.bindir now handles Pathname correctly. + * lib/rubygems/remote_fetcher.rb: Don't downcase anymore. + +2007-08-21 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Add installation from local + gems. Install gems in the correct order. Handle -E, -f, + --ignore-dependencies, -i, -r, -l, -b, -P, -w, -v options for `gem + install` + * test/gemutilities.rb: Work around OS X /private/tmp. + * lib/rubygems/platform.rb: Switch to using arch instead of target_* + for JRuby compatibility. Thanks to Nick Sieger. + +2007-08-20 Eric Hodel + + * lib/rubygems/dependency_installer.rb: Add working but unfinished + Gem::DependencyInstaller. + * lib/rubygems/source_info_cache.rb: Add #search_with_source. + * lib/rubygems/dependency_list.rb: Move #fill_dependencies to + Gem::DependencyInstaller + * lib/rubygems/platform.rb: Split from specification.rb. Add methods + to recognize platforms from Config::CONFIG. + * lib/rubygems.rb: Add Gem::platforms. + * lib/rubygems/specification.rb: Disallow String platforms. + +2007-08-18 Eric Hodel + + * lib/rubygems/source_info_cache.rb: Search by Gem::Dependenency. + * lib/rubygems/source_index: Search by Gem::Dependenency. + * lib/rubygems/version.rb: Version can be String or Integer. + Gem::Requirement::default is now >= 0. Gem::Requirement can be built + from a Gem::Dependency. + * lib/rubygems/dependency_list.rb: Uses TSort now. Add + Gem::DependencyList#fill_dependencies. + * lib/rubygems/server.rb: Support quick index. + +2007-08-17 Eric Hodel + + * lib/rubygems/dependency_list.rb: For diamond dependencies with + different versions on the bottom of the diamond, trim all but the + latest dependency. This will prevent gems like hoe from being + installed multiple times. + +2007-08-15 Eric Hodel + + * lib/rubygems/installer.rb: Support building mkrf extensions. Fixes + bug #11313. Patch by Jeremy Hinegardner. + * lib/rubygems/installer.rb: Ensure bin files are executable. Fixes + bug #8985 submitted by Ara Howard. + * lib/rubygems/installer.rb: Insert installing gem home dir into bin + wrapper. Patch #8818 by Ara Howard. + +2007-08-13 Eric Hodel + + * lib/rubygems/commands/uninstall_command.rb: Gems with version of 0 + can now be uninstalled. + +2007-08-11 Eric Hodel + + * lib/rubygems/config_file.rb: Command-line args override ~/.gemrc + now. Gem.sources is pulled from ~/.gemrc now. Gem::ConfigFile can + write itself out now. + * lib/rubygems/commands/sources_command.rb: Now writes out + Gem.configuration on changes. No longer checks source cache on + --list. + +2007-08-09 Eric Hodel + + * lib/rubygems/source_info_cache.rb: Make Gem::SourceInfoCache#search + only search gems in Gem.sources. + * lib/rubygems.rb: Make Gem::configuration a real Gem::ConfigFile + object. + * lib/rubygems/commands/query_command.rb: Fix `gem query --details`. + Add `gem query --no-versions`. + * lib/rubygems/local_remote_options.rb: Make `gem mumble --source URL` + only use that source. + * lib/rubygems/config_file.rb: Fix Gem::ConfigFile#[]= to match + Gem::ConfigFile#[]. + +2007-08-08 Eric Hodel + + * lib/rubygems/commands/specification_command.rb: Match only exact gem + names. Fixes bug #9681. Patch by Michael DeCandia. + * lib/rubygems/commands/unpack_command.rb: Match only exact gem names. + Fixes bug #9681. Patch by Michael DeCandia. + * lib/rubygems/commands/contents_command.rb: Match only exact gem + names. Fixes bug #9681. Patch by Michael DeCandia + * lib/rubygems/remote_fetcher.rb: Perform a GET request if the HEAD + request doesn't have Content-Length. Fixes bug #9771. Patch by Ben + Bleything. + * lib/rubygems.rb: Clear Gem::searcher when we Gem::clear_paths. + Fixes bug #12886. Submitted by Peter Williams. + * lib/rubygems.rb: Add #default_sources and rework #sources to use it. + * post-install.rb: No longer runs install_sources. + * pkgs/sources: Updated to something what a 0.0.2 would look like, if + we ever make one. + +2007-08-02 Eric Hodel + + * lib/rubygems/gem_commands.rb: Removed and broken up into individual + files. + * lib/rubygems/command_manager.rb: Lazily loads gem commands. Now to + use CommandManager just "require 'rubygems/command_manager'" and + everything will be there. + +2007-08-01 Eric Hodel + + * lib/*, test/*: Pushed down dependencies as far as reasonable. + Removed Gem::manage_gems. Now only 14 files are loaded with "require + 'rubygems'". Added tests for `gem build` and `gem cert`. + * lib/rubygems/extensions.rb: Added common place for all extensions. + +2007-07-26 Eric Hodel + + * test/test_gem_ext_configure_builder.rb: Linux has different behavior + for `sh ./configure` when configure is missing. Fix adapted from + Patch #10019 by Donavan Pantke. + * lib/rubygems/commands/pristine_command.rb: Compare fully-qualified + paths. Fixes bug #7976 by Lyle Johnson. + * lib/rubygems/config_file.rb: Add ConfigFile#[]=, so --proxy + command-line option works. Fixes #8152 by Justin Sabelkko. + * lib/rubygems/post-install.rb: Make sure we use the + latest-and-greatest RubyGems when running post-install.rb. Fixes Bug + #8411 by Duy Nguyen. + * lib/rubygems/remote_fetcher.rb: An empty HTTP_PROXY means no proxy. + Fixes Bug #9042 by Michael Brodhead. + * lib/rubygems/version.rb: Disallow newlines in version string. Strip + spaces from version string. Fixes Bug #9499 by Bryce Kerley. + * lib/rubygems/commands/sources_command.rb: Fix spelling error. Fixes + Bug #11064 by Chris Eskow. + +2007-07-25 Eric Hodel + + * lib/rubygems/indexer.rb: Create the index in /tmp, then move it into + place when we're done. This will prevent spurious bulk index updates + from occurring while the quick index is missing. Remove the option to + not build the quick index. + * lib/rubygems/commands/generate_index_command.rb: --no-quick is gone. + * lib/rubygems/user_interaction.rb: If stdin is not a tty, it is + unlikely that gem is going to get a response when asking a question. + Patch #10660 by Paul Brannan. + * lib/rubygems/validator.rb: Output test failures when using install + -t. Patch #10659 by Paul Brannan. + * lib/rubygems/custom_require.rb (Kernel#require): Only rescue a + LoadError that matches the file we are requiring. Patch #10723 by + Tyler Rick. + * lib/rubygems/remote_fetcher.rb: Support HTTP basic authentication. + Patch #8121 by Max Dunn. + * lib/rubygems/commands/install_command.rb: Don't raise an error when + a gem has no tests. Patch #11824 by Katsuyuki MIYAMUKO. + +2007-07-23 Eric Hodel + + * lib/commands/contents_command.rb: Add --lib-only option, remove + useless --list option. Feature request #9498 by Martin DeMello. + * lib/rubygems/specification.rb: Restrict to only files in + #require_paths. Add #required_rubygems_version. Feature request + #7780 by Eric Hodel. + * lib/rubygems/commands/dependency_command.rb: Display dependencies for + remote gems. Feature request #12133 by Eric Hodel. -r for reverse + dependencies is now -R. + * lib/rubygems/commands/specification_command.rb: Display + specifications for remote gems. Feature request #12133 by Eric Hodel. + * lib/rubygems/installer.rb (Gem::Installer#install): Check + required_rubygems_version. + * lib/rubygems/user_interaction.rb + (Gem::UserInteraction#choose_from_list): Check result for EOF. Fixes + bug #8018. Patch by Jos Backus. + * post-install.rb: Install using absolute path. Fixes bug #10675. + Patch by Jeremy Burks. + * lib/rubygems/commands/environment_command.rb: Add RUBY VERSION to + environment output. + * lib/rubygems/command.rb: Don't worry about duplicated command-line + options, OptionParser takes care of them for us. + +2007-07-22 Eric Hodel + + * lib/rubygems/specification.rb (Gem::Specification#files): Make it + faster + * lib/rubygems/command.rb: Better documentation. -v flag now lets you + get to "really verbose" mode which makes the verbose progress meter + work. Add command groups to separate types of commands easily. + * lib/rubygems/commands/which_command.rb, bin/gemwhich: Move `gemwhich` + under `gem`. + * lib/rubygems/commands/mirror_command.rb, bin/gem_mirror: Move + `gem_mirror` under `gem`. + * lib/rubygems/commands/lock_command.rb, bin/gemlock: Move `gemlock` + under `gem`. + * lib/rubygems/commands/server_command.rb, bin/gem_server: Move + `gem_server` under `gem`. + * lib/rubygems/doc_manager.rb (Gem::DocManager#initialize): Only raise + when operating on the filesystem. + * lib/rubygems/server.rb: Remove option processing, now in + Gem::Commands::ServerCommand. + * lib/rubygems/commands/generate_index.rb, bin/index_gem_repository.rb: + Move `index_gem_repository.rb` to `gem generate_index`. + * lib/rubygems/indexer (Gem::Indexer): Extract from + index_gem_repository.rb and merge RubyForge changes. + * lib/rubygems/command_manager.rb (Gem::CommandManager#run): Print + backtrace when --debug is set too. + * lib/rubygems/command_manager.rb (Gem::CommandManager#load_and_instantiate): + Don't infinitely loop in retry. + * bin/gemri: Removed. Everybody should have ri integration now. + * lib/rubygems/config_file.rb: Allow settings to be examined. Pull + settings from .gemrc. + * lib/rubygems/commands/environment_command.rb: Add ruby executable + and configuration settings to `gem env`. + * lib/rubygems/indexer/indexer.rb (Gem::Indexer::Indexer#build_index): + Now uses UserInteraction. + * various: Use UserInteraction for output. + * lib/gemconfigure.rb: Removed. Same as multiple gem commands. + * lib/rubygems/commands/contents_command.rb: Removed extra --verbose + option. + * lib/rubygems/gem_commands.rb (Gem::LocalRemoteOptions): Moved -B, + --source, -p from Gem::Commands::common_options. + +2007-07-22 Chad Fowler + + * lib/rubygems/gem_commands.rb: Added another example to the gem + example output (Gile Bowkett) + * test/test_documentation_generation.rb, lib/rubygems/doc_manager.rb: + Added a test for documentation generation and fixed a bug when doc + location is not writable. + +2007-06-16 Eric Hodel + + * lib/rubygems/gem_path_searcher.rb (Gem::GemPathSearcher): Moved out + of lib/rubygems/custom_require.rb and added tests. + +2007-06-02 Jim Weirich + + * lib/rubygems/source_info_cache.rb (Gem::try_file): Fix for issue + where a non-existing source cache file causes the gem command to + not find a gem. This fixes it by marshalling out an empty + hash. (Thanks to Nick Sieger for this fix). + +2007-06-01 Jim Weirich + + * lib/rubygems.rb + (Gem::OperationNotSupportedError::latest_partials): Changed from + match data style to $1 style regexp (on the recommendation of + better performance). + +2007-05-30 Jim Weirich + + * lib/rubygems/source_index.rb (Gem::SourceIndex::update): + Modified to get the bulk_threshhold from the configuration. + (Gem::SourceIndex::convert_specs): Ryan removed the "reduce_specs" + method because it is not needed any more and is creating memory + overhead. + + * lib/rubygems/config_file.rb (Gem::ConfigFile): Added + bulk_threshhold field to ConfigFile. + (Gem::ConfigFile::initialize): Initialize bulk threshhold to 500. + + * lib/rubygems/command.rb + (Gem::Command::specific_extra_args_hash): Added + -B (--bulk-threshhold) option to allow user specified bulk + download threshhold. + +2007-05-23 Jim Weirich + + * lib/rubygems/commands/sources_command.rb + (Gem::Commands::SourcesCommand::initialize): Added a --clear-all + option to the sources subcommand. Clear-all will remove the cache + files. + + * lib/rubygems/source_info_cache.rb (Gem): Moved system_cache_file + and user_cache_file to class methods so that we can get the file + names without creating a SourceInfoCache instance. + +2007-05-23 Eric Hodel + + * lib/rubygems/source_info_cache.rb: Teach SIC to repair itself + when it encounters a bad cache file. + +2007-05-14 Chad Fowler + * lib/rubygems/command_manager.rb: Re-added registration for + gem cleanup command which I accidentally removed during refactoring. + +2007-05-10 Jim Weirich + + * lib/rubygems/remote_installer.rb: Uncommented the require + 'sources' line. + + * lib/rubygems/source_info_cache.rb: Uncommented the require + 'sources' line. + + * lib/rubygems/rubygems_version.rb (Gem): Bumped to version 0.9.3 + in preparation for release. + + * lib/rubygems/package.rb (Gem::TarInput::zipped_stream): + Zipped_stream now always uses the in memory string IO buffer. + There were just too many problems with ZLib (on windows) + otherwise. + +2007-03-26 Jim Weirich + + * (Index): new digest technique. + + * lib/rubygems/validator.rb (Gem::Validator::verify_gem): Removed + really old MD5 and replaced with gem based digests. + + * experimental/deployment.rb (Gem::Deployment::Manager::initialize): + New digest technique. + + * experimental/test_deployment.rb (TestDeployment::test_deployed_file): + New digest technique. + +2007-03-26 Chad Fowler + + * Extracted the big ball of mud that was gem_commands.rb into + separate files. + +2007-03-17 Chad Fowler + + * Various ruby 1.8.6 fixes for failing tests. + + * Updated setup.rb to 3.4.1 + + * Renamed cmd_manager to command_manager to keep names consistent + + * lib/installer.rb: Rework path checking to use Pathname (ara howard bug #8811) + +2007-03-02 Eric Hodel + + * lib/rubygems.rb: Add bin directory before library directory, + otherwise gems like rake don't work. + +2007-03-01 Eric Hodel + + * lib/rubygems/open-uri.rb: Fix all the infinite loop errors. + + * lib/rubygems.rb: Add dirs from activate after -I and ENV['RUBYLIB'] + dirs. Otherwise gems won't allow -I to work when #gem is called. + +2007-02-11 Chad Fowler + + * test/gemutilities.rb: Fix to make Windows tests pass. (Anatol Pomozov) + +2007-02-05 Jim Weirich + + * lib/rubygems/rubygems_version.rb (Gem): Bumped to version 0.9.2 + and made a release. + +2007-02-04 Chad Fowler + + * Fixed failing tests (changed from assert_equal to assert_match to + deal with ARGV inconsistencies in test vs. production). + +2007-02-03 Jim Weirich + + * Bumped version to 0.9.1.1. + + * lib/rubygems/gem_open_uri.rb: Added the patched open-uri back + into the gems software. Evidently, the 1.8 version of open-uri + does not handle authenticating proxies with username and password. + + * lib/rubygems/source_info_cache.rb (Gem::cache_data): Added + rescue block to capture bad file loads. The original rescue was + only around the marshal load (bug was probably introduced when the + file data was preloaded into a string). + (Gem::set_cache_data): Added set_cache_data to be used during + testing to avoid reload the cache file over and over. + + * lib/rubygems/gem_commands.rb: Added require for command class so + that this file can be loaded independently. + + * lib/rubygems/source_index.rb (Gem::SourceIndex::outdated): Minor + cleanup. + + * test/gemutilities.rb + (RubyGemTestCase::util_setup_source_info_cache): Minor cleanup + + * test/test_gem_source_info_cache.rb + (TestGemSourceInfoCache::test_write_cache_user): Switched to using + set_cache_data here and several other places to avoid rereading + the cache data over and over again. + +2007-02-02 Chad Fowler + + * lib/rubygems/gem_commands.rb: + Fixed gem unpack (broken since 0.9.1) + +2007-01-20 Eric Hodel + + * lib/rubygems/source_info_cache.rb (Gem::SourceInfoCache#cache_data): + Read the source_cache in binary mode for mswin. + +2007-01-16 Eric Hodel + + * lib/rubygems/rubygems_version.rb (Gem): Released 0.9.1. + +2007-01-15 Eric Hodel + + * lib/rubygems/installer.rb (Gem::Installer#extract_files): Only allow + installation to absolute directories. (Call File::expand_path first). + More informative message for attempting to install with bad path. + * post-install.rb: Install sources first, since its rather important. + +2007-01-14 Eric Hodel + + * lib/rubygems/source_info_cache.rb: require 'fileutils', as its + needed. + +2007-01-12 Eric Hodel + + * lib/rubygems/installer.rb (Gem::Installer#extract_files): Don't + allow gems to place files outside the installation directory. Fixes + bug 7751 by Gavin Sinclair. + +2007-01-08 Jim Weirich + + * lib/rubygems/specification.rb + (Gem::Specification::test_suite_file): Added rescue clause for + default_executable. + (Gem::Specification::add_bindir): Added rescue clause for + add_bindir. + + * test/test_specification.rb + (TestSpecification::test_pathologically_bad_non_array_stuff_doesnt_goof_up_files): + Added a sanity check on hash for some pathologically bad case. + (TestSpecification::test_pathologically_bad_exectuables_doesnt_goof_up_hash): + Added sanity check for pathologically bad executables field. + +2007-01-08 Eric Hodel + + * lib/rubygems/gem_commands.rb (Gem::PristineCommand#execute): Better + messaging. + * lib/rubygems.rb, lib/rubygems/custom_require.rb: Correctly include + documentation for methods added to Kernel. + +2007-01-07 Eric Hodel + + * Rakefile: Include GPL.txt. Fixes bug #7572 by David Lee. + +2007-01-06 Jim Weirich + + * lib/rubygems/rubygems_version.rb (Gem): Bumped to version + 0.9.0.9. + + * lib/rubygems/specification.rb + (Gem::Specification::test_suite_file): Rewrote default_executable + to be a bit more explicit. + (Gem::Specification::add_bindir): Rewrote the 'files' accessor to + handle pathologically bad input. + (Gem::Specification::copy_of): Added as_array private method. + + * Rakefile (package_version): Added '*.out' to clobber list. + Removed the broken-1.0.0.gem file from the clobber list. + + * test/test_specification.rb + (TestSpecification::test_default_executable): + Seriously beefed up tests for certain specification issues. + + * test/gemenvironment.rb (TestEnvironment::create): Added the 'f' + flag to deleting 'gemhome'. + +2006-12-30 Eric Hodel + + * post-install.rb, lib/rubygems/server.rb: RubyGems now installs RDoc + and ri for itself. + +2006-12-28 Eric Hodel + + * lib/rubygems/installer.rb (Gem::Installer#build_extensions): + Extension build failures now raise Gem::Installer::ExtensionBuildErrors. + +2006-12-26 Eric Hodel + + * lib/rubygems/package.rb (Gem::Package::TarInput#initialize): Bad + packages now raise FormatError instead of a generic RuntimeError. + * lib/rubygems/installer.rb (Gem::Installer#install): Raise an + InstallError when we have a bad gem file. + +2006-12-25 Jim Weirich + + * lib/rubygems/custom_require.rb (Gem::GemPathSearcher::find): + Removed SUFFIX_PATTERN. Evidently this was miss during an earlier + attempt to remove it. + (Gem::GemPathSearcher::matching_file): Changed reference to + SUFFIX_PATTERN into a call to Gem.suffix_pattern. + + * Removed tab characters from numerous source files. + + * lib/rubygems/installer.rb (Gem::Uninstaller::uninstall): Removed + stray tab characters. + + * lib/rubygems.rb (Kernel::require_gem): Added file and line + number information to require_gem worning (makes it easier to + track down those offending lines of code). + (Kernel::location_of_caller): Added helper function to determine + file and line number of caller. + +2006-12-25 Eric Hodel + + * lib/rubygems/installer.rb (Gem::Installer#app_script_text): + Simpler, more readable bin script. + * lib/rubygems/gem_commands.rb (Gem::PristineCommand#execute): + Regenerate bin scripts. This will clean up require_gem in scripts. + +2006-12-24 Eric Hodel + + * lib/rubygems/remote_fetcher.rb (Gem::RemoteFetcher#fetch_path): + Rescue various errors and return a more-friendly error. + +2006-12-23 Eric Hodel + + * lib/rubygems/command.rb lib/rubygems/gem_commands.rb: Make help + output fit in 80 columns. + * lib/rubygems/rubygems_version.rb: Bump version to 0.9.0.8, beta + time! (Oops, didn't go into beta.) + +2006-12-20 Eric Hodel + + * lib/rubygems/remote_fetcher.rb (Gem::RemoteFetcher#fetch_size): Give + a sensible error on bad URIs. + * lib/rubygems/gem_commands.rb (Gem::SourceCommand): Allow management + of sources in source_cache. Fixes bug #1128. + * lib/rubygems.rb (Kernel#require_gem): Add deprecation warning in + favor of gem. + +2006-12-19 Eric Hodel + + * lib/rubygems/installer.rb (Gem::ExtBuilder): Refactored for + uniformity. + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller#specs_n_sources_matching): Don't display gems + that can't be installed. + * lib/rubygems.rb, pre-install.rb: Fix installation errors on 1.9. + Fixes bug #4536 by Ryan Davis. + * lib/rubygems/source_index.rb, lib/rubygems/gem_commands.rb, + lib/rubygems-custom_require.rb: Use File.join with glob strings. + Fixes bug #1096 submitted by Chad Fowler. + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller#install_dependencies): Make --force actually + force. Fixes bug #7365 by Robert James. + +2006-12-18 Eric Hodel + + * lib/rubygems/gem_commands (Gem::OutdatedCommand): Add a way to see + which gems are out-of-date. + + * setup.rb: Ignore errors for .config and InstalledFiles when + the source path is read-only/NFS. Fixes bugs #1395 and #1374. Patch + by Ryan Davis. + + * bin/gem_server: Pull code out into lib/rubygems/server.rb for + reusability. Closes Feature Request #2220 by Chris Morris. + +2006-12-16 Chad Fowler + + * test/: Added functional test for extension gems proving that + non-compiling extensions don't result in success message. + + * lib/rubygems/specification.rb: Raise exception if loaded spec is + nil. Closes bug #7299. + + * test/gemenvironment.rb: Clean out gemhome every time to avoid dirty + directory failing tests. + + * lib/rubygems/installer.rb: Change uninstall to require a full gem + name (not a partial match). Fixes bug #6007 and related unreported + issues. + +2006-12-15 Eric Hodel + + * lib/rubygems/installer.rb (Gem::Uninstaller): Correctly uninstall + executables if GEM_HOME is set. Patch #2264 by Sylvain Joyeux. + + * lib/rubygems.rb (Gem::loaded_specs): Expose list of currently loaded + gems. + + * lib/rubygems/gem_commands (Gem::UninstallCommand): Allow multiple + gems to be uninstalled at once. + +2006-12-14 Eric Hodel + + * post-install.rb: Don't attempt to read unreadable files. Fixes + bug #2851. + +2006-12-13 Eric Hodel + + * pre-install.rb.rb, post-install.rb: Don't call manage_gems because + we don't have sources installed yet. Bump version requirement to + 1.8.2 since rubygems/open-uri.rb was removed. Should fix bug #6206. + + * lib/rubygems/installer.rb (Gem::Installer#build_extensions): Capture + stderr into results when building extensions. + + * lib/rubygems/gem_commands.rb (Gem::ContentsCommand): Allow version + to be passed to gem contents. Not backwards compatible, -v now -V and + vice versa. Select newest gem for contents. Fixes bugs #2723, #7225. + Patches by Sava Chankov, Tom Pollard. + + * lib/rubygems/gem_commands.rb (Gem::InstallCommand#execute): Allow + install errors to result in non-zero exit code. Fixes bug #2773. + +2006-12-03 Eric Hodel + + * lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#install): + Add :cache_dir option to override the default. + + * lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#download_gem): + Check cache to see if the gem has been cached before downloading. + +2006-12-02 Jim Weirich + + * lib/rubygems.rb (Gem::OperationNotSupportedError::suffixes, + Gem::OperationNotSupportedError::suffix_pattern): Removed + duplicate copies of the SUFFIX_PATTERN by providing a global + method Gem.suffixes and Gem.suffix_pattern. + + * lib/rubygems/remote_fetcher.rb (Gem::open_uri_or_path): Reworked + the connection options for the open-uri call. Since we are not + using the rubygems supplied open_uri, we can use some new options + available that make proxy handling much easier. + (Gem::file_uri): Renamed is_file_uri to file_uri?. + + * lib/rubygems/loadpath_manager.rb (Gem::LoadPathManager::self): + Added .jar to list of suffixes. + + * test/functional.rb (FunctionalTest::test_env_remotesources): + Changed test to uses Gem.sources (the sources method on + remote_fetcher was removed). + + * test/test_remote_fetcher.rb (TestRemoteFetcher): Renamed some of + the test constants and instance variables so that they were more + consistent and explained the tests a wee bit better. + (TestRemoteFetcher::test_no_proxy): Added assert_data_from_server + and assert_data_from_proxy to make it clear what the test was + doing and give better error messages on errors. + (TestRemoteFetcher::assert_data_from_server): Added + assert_data_from_server. + (TestRemoteFetcher::assert_data_from_proxy): Added + assert_data_from_proxy. + +2006-11-30 Chad Fowler + + * lib/rubygems/open-uri.rb: Removed the duplicated library. + +2006-11-30 Eric Hodel + + * lib/rubygems/specification (Gem::Specification#eql?): Allow gemspecs + to be used intelligently with Array#- and Array#uniq. + + * lib/rubygems/installer.rb: Return extension-building results in + Exception on build failure. + + * lib/rubygems/remote_installer.rb: Ensure gems with similar names + cannot be matched for install. (Broken when searching was removed + from RemoteInstaller.) + +2006-11-29 Eric Hodel + + * post-install.rb: Now requires rbconfig. + + * lib/rubygems/specification.rb, lib/rubygems/version.rb: Fixed many + ivar warnings due to YAML specs. + + * lib/rubygems/validator.rb, lib/rubygems/validator.rb + (Gem::Validator#unit_test Gem::RemoteInstaller::): Ensure the + current directory is restored. + + * lib/rubygems/remote_fetcher.rb, lib/rubygems/remote_installer.rb, + lib/rubygems/installer.rb: Raise more-friendly and less-deadly errors. + + * lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#install): + Create version requirement correctly. + + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller#find_gem_to_install): Allow RemoteInstaller to + work with SilentUI. + + * lib/rubygems/remote_fetcher.rb (RemoteFetcher#open_uri_or_path): + Don't double-require open-uri. + +2006-11-27 Eric Hodel + + * lib/rubygems/specification.rb + (Gem::Specification#default_executable): Fixed bug where @executables + could be nil when loaded from index. + +2006-11-21 Eric Hodel + + * lib/rubygems/source_index.rb (Gem::SourceIndex#latest_specs): Grab + the latest versions of everything in the index. Written by Ryan + Davis. + +2006-11-20 Rich Kilmer + + * lib/rubygems/cmd_manager.rb: Added PristineCommand + + * lib/rubygems/gem_commands.rb: Added PristineCommand to restore + gems to pristine condition in the event of files begin deleted + based on the cached .gem file + +2006-11-19 Eric Hodel + + * lib/rubygems/*_fetcher.rb: Removed code specific to remote source + index updating. + + * lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#search): + Moved to Gem::SourceInfoCache#search + + * lib/rubygems/source_info_cache.rb: Taught to update itself + + * lib/rubygems/source_info_cache_entry.rb: Taught to update itself + + * lib/rubygems/source_index.rb: Taught to update itself from a uri. + +2006-11-18 Chad Fowler + + * lib/rubygems/installer.rb: Applied Kevin Clark's patch to make + RubyGems recognize mkrf files. + +2006-11-17 Eric Hodel + + * test/test_remote_fetcher.rb: Don't allow files in Dir.pwd to make + tests fail. Spotted by Chad Fowler. + + * lib/rubygems/remote_installer.rb (Gem::RemoteFetcher, + Gem::CacheFetcher): Break out of remote_installer.rb into separate + files. + + * lib/rubygems/remote_installer.rb (Gem::SourceInfoCache, + Gem::SourceInfoCacheEntry): Allow requiring just the source cache + without the remote fetcher. + +2006-11-16 Eric Hodel + + * test/test_local_cache.rb: Moved to better name + + * test/test_gem_source_info_cache.rb: Renamed test methods to match + implementations. Sorted test names. + + * lib/rubygems/remote_installer (Gem::SourceInfoCache): cache_data no + longer resets dirty flag. Sped up source cache loading. Exposed + cache file name in use. + +2006-11-15 Eric Hodel + + * test/, lib/: Made files -w clean. + + * test/: Made tests run independently. + + * Rakefile: Tests now run with warnings on. + +2006-11-14 Eric Hodel + + * lib/rubygems/user_interaction.rb (Gem::StreamUI#progress_reporter): + Fix for Gem.configuration.verbose = nil, false + + * lib/rubygems.rb (Gem::configuration): Fix RakeFileUtils pollution. + +2006-10-05 Jim Weirich + + * lib/rubygems/installer.rb (Gem::Installer::shebang): Updated to + optionally call env_shebang if the command line option is set. + (Gem::Installer::shebang_env): Added this method. + +2006-09-25 Jim Weirich + + * lib/rubygems/rubygems_version.rb (Gem): Bumped to version + 0.9.0.6. + + * lib/rubygems/security.rb (Gem::Security::Exception): Added + permissions for cert files and directories. + (Gem::Security::Policy::verify_gem): File.exists? => File.exist? + (Gem::Security::self.verify_trust_dir): Beefed up code to create + trust directory structure. + (Gem::Security::self): Apply permissions when creating trust + files. + + * lib/rubygems/package.rb (TarInput::initialize): File.exists? => + File.exist? + +2006-09-24 Jim Weirich + + * lib/rubygems.rb + (Gem::OperationNotSupportedError::configuration): Added + method_missing to configuration hash to allow nicer reference + syntax. + +2006-09-22 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::RemoteSourceFetcher::initialize): Proxy patch fixup to + escape user/password from Anatol Pomozov. + (Gem::RemoteSourceFetcher::connect_to): Proxy patch fixup to + escape user/password from Anatol Pomozov. + + * test/test_remote_fetcher.rb (TestRemoteFetcher::setup): Proxy + patch fixup to escape user/password from Anatol Pomozov. + (TestRemoteFetcher::test_no_proxy): Proxy patch fixup to escape + user/password from Anatol Pomozov. + + * test/io_capture.rb (Gem::IoCapture): Created new IoCapture + module to handle capturing output of code under test. + + * test/test_installer.rb + (TestInstaller::test_generate_bin_symlinks_win32): Removed ugly + $TESTING hack and substituted new io capture module. + (TestInstaller::test_install_with_message): Removed one-off stdout + capture and replaced with new IO Capture module. + +2006-09-19 Jim Weirich + + * lib/rubygems/rubygems_version.rb (Gem): Bumped to version + 0.9.0.3. + + * test/test_version_comparison.rb (TestRequirementEquality): Added + more tests for Dependency equality testing and one additions check + for requirement vs non-requirement equality. + + * lib/rubygems/version.rb (Gem::Dependency::==) Fixed '=' bug in + '==' code. + +2006-09-18 Chad Fowler + + * lib/rubygems/remote_installer.rb + Only show the last 3 gem versions on a multiplatform remote + install list. + +2006-09-18 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller::install): Added Hugh Sasse's patch for + skipping gems on install. + + * lib/rubygems/rubygems_version.rb (Gem): Bumped to 0.9.0.2. + + * lib/rubygems/version.rb (Gem::Dependency::hash): Added hash code + --http-proxy, the ENV var http_proxy and with no proxy. + +2006-08-26 Jim Weirich + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller::download_gem): Fixed download_gems so that + it properly passes the proxy option to the fetcher class. (based + on patch by Andy Shen). + +2006-08-12 Jim Weirich + + * bin/index_gem_repository.rb (Indexer::sanitize): Added a + sanitize step to the gem index generation in the hope of avoiding + problems with non-ASCII names in the yaml data. + +2006-06-14 Jim Weirich + + * Rakefile (announce): Added 1.9 hack for ENV['CERT_DIR']. Remove + this in the future if 1.9 behavior changes. + +2006-06-13 Jim Weirich + + * Rakefile: ENV['CERT_DIR'] is now '' rather than nil. + + * lib/rubygems/specification.rb (Gem::Specification::initialize): + Eric added some 1.9 compatibility code (funcall vs send). + + * lib/rubygems/package.rb (TarOutput::self): Eric added some 1.9 + compatibility code (funcall vs send). + + * experimental/deployment.rb (Gem::Deployment): Moved the + deployment code out of the live code base into the experimental + directory. The code wasn't used and the tests were not all + passing. + +2006-06-11 Jim Weirich + + * bin/gemri: Added gemri to bin directory. + + * lib/rubygems/custom_require.rb (Gem::GemPathSearcher::find): + Added .rbw to suffix pattern in custom_require. + +2006-06-07 Jim Weirich + + * lib/rubygems.rb: Added copyright notices to all Ruby files. + +2006-04-07 Jim Weirich + + * lib/rubygems/gem_commands.rb (Gem::RDocCommand::execute): Added + RI option to the rdoc subcommand. + +2006-04-05 Jim Weirich + + * test/test_parse_commands.rb + (TestParseCommands::test_parsing_update_options): Fixed unit tests + to assert that the install dir is expanded. + + * lib/rubygems/doc_manager.rb (Gem::DocManager::generate_ri): + Break out from generate_rdoc to support installing all RI docs + first. + + * lib/rubygems/gem_commands.rb + (Gem::InstallUpdateOptions::add_install_update_options): Expanded + repository directory to absolute path. + (Gem::InstallCommand::execute): Make sure that *all* of the RI + documents are generated before generating any RDocs (due to a bug + in the RDoc library). + + * lib/rubygems/installer.rb (Gem::ExtExtConfBuilder::self): Fixed + typo in ExtExtConfBuilder that prevented C based gems to install. + (Gem::ExtExtConfBuilder::self): Installed patch to prevent the + overriding of target_prefix in native extensions (thanks to Aaron + Patterson for the patch). + +2006-04-04 Jim Weirich + + * lib/rubygems/rubygems_version.rb (Gem): Bumped to version + 0.8.11.10. + + * lib/rubygems/incremental_fetcher.rb + (Gem::IncrementalFetcher::update_cache): Now falls back to bulk + updates if the number of gems if over 50. + + * lib/rubygems/remote_installer.rb + (Gem::RemoteSourceFetcher::source_index): Added "bulk" to the + update message to differentiate it from the incremental message. + + * lib/rubygems/specification.rb + (Gem::Specification::Specification): Modified to add dashes to + gemspecs generated under Ruby 1.8.3. This makes it easier to run + RubyGems on a 1.8.2 system. + +2006-04-01 Jim Weirich + + * lib/rubygems/doc_manager.rb (Gem::DocManager::run_rdoc): Changed + exception handler to print error message if document generation + fails, but then to continue with the rest of the installation. + Permission errors still terminate the install because if one + install fails because of permission problems, chances are that all + will fail. + (Gem::DocManager::install_ri): Removed wrapping of exceptions with + DocumentError. Most exceptions now don't propagate out of + run_rdoc. + (Gem::DocManager::install_rdoc): Removed wrapping of exceptions + with DocumentError. Most exceptions now don't propagate out of + run_rdoc. + +2006-02-23 Jim Weirich + + * bin/index_gem_repository.rb (MasterIndexBuilder::cleanup): Fixed + bug where we were trying to read the index file (to compress it) + before it was closed, often leading to a truncated index file. + +Tue Jan 24 16:26:13 2006 Chad Fowler + * lib/rubygems/config_file.rb + Luca Pireddu reported a fatal error when permissions on + .gemrc were too restrictive. Fixed. + +Tue Dec 6 14:51:13 2005 Jim Weirich + + * lib/rubygems/source_index.rb + (Gem::SourceIndex::load_specification): Added an untaint call to + make the code run in SAFE=1 mode under 1.8.3. + (Gem::SourceIndex::load_gems_in): Untaint here too. + + * lib/rubygems/installer.rb (Gem::Installer::install): Untaint + here too. + (Gem::Installer::extract_files): Untaint here too. + + * lib/rubygems/custom_require.rb + (Gem::GemPathSearcher::matching_file): Untaint here too. + + * test/gemenvironment.rb: Added $SAFE=1 to the test environment to + make sure we can run in $SAFE mode. + +2005-12-03 Jim Weirich + + * lib/rubygems/rubygems_version.rb (Gem): Bumped version to + 0.8.11.6' + + * lib/rubygems/user_interaction.rb + (Gem::StreamUI::SimpleProgressReporter::done): Added several new + progress reporters. + + * lib/rubygems/command.rb + (Gem::Command::specific_extra_args_hash): Added --verbose + processing. + + * lib/rubygems/config_file.rb (Gem::ConfigFile::handle_arguments): + Added --traceback as alias for --backtrace (I always get them + confused). + (Gem::ConfigFile::initialize): Added a verbose option. + +2005-11-28 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::SourceInfoCacheEntry::replace_source_index): Fixed the + SourceIndexCacheEntry so that it will manufacture an empty source + index if given a nil value for the +si+ value. + +2005-11-08 Chad Fowler + * lib/rubygems.rb: Ara Howard's fix to allow 0.0.0 to be a valid gem + version. + +2005-11-08 Chad Fowler + * lib/rubygems/gem_commands.rb: Fixed bug in gem unpack. It was + sorting incorrectly, resulting in the wrong version being unpacked in + some edge cases. Thanks to Jakob Skjerning for the detailed bug report. + +2005-11-03 Chad Fowler + * lib/rubygems/installer.rb: Fixed bug that would cause the executables + from the wrong gem to be uninstalled if the names matched the same + regex. Thanks Eric Hodel. + +2005-11-01 Jim Weirich + * lib/rubygems/gem_commands.rb (Gem::UpdateCommand::initialize): + Upgrade => Update change. + (Gem::UpdateCommand::execute): Upgrade => Update change. + (Gem::UpdateCommand::execute): Upgrade => Update change. + +2005-11-01 Chad Fowler + * lib/rubygems/gem_commands.rb: Allow gem unpack to accept a gem file + path instead of gem name: gem unpack mygem-1.0.0.gem. + +2005-10-31 Chad Fowler + * lib/rubygems/installer.rb: Tilman Sauerbeck's patch to support + extensions built with Rake! + +2005-09-13 Jim Weirich + + * lib/rubygems/package.rb (TarInput::initialize): Removed + requirement for SSL when signatures are found in a gem. Only + require SSL if the security policy requires checking the + signatures. + + * lib/rubygems/custom_require.rb (Kernel::require): Disabled + autorequire during custom require. + +2005-09-07 Jim Weirich + + * lib/rubygems/gem_openssl.rb (Gem::ensure_ssl_available): Added a + test in gem_openssl to make sure the ruby portion of ssl is also + loaded. + +2005-08-31 Jim Weirich + + * Rakefile (install): Changed the rake install task to use setup.rb. + +2005-07-08 Chad Fowler + + * lib/rubygems/remote_installer.rb: Applied Daniel Roux's patch + to make RubyGems work with authenticating proxies. + +2005-07-08 Jim Weirich + + * Preparing for release 0.8.11. + +2005-06-12 Jim Weirich + + * lib/rubygems/installer.rb + (Gem::Installer::installation_satisfies_dependency): Refactored + dependency check into ensure_dependency! and + installation_satisfies_dependency?. + +2005-06-12 Chad Fowler + * lib/rubygems.rb,lib/rubygems/installer.rb: Applied Mark Hubbart's + * lib/rubygems/remote_installer.rb: Applied David Glasser's install- + * Applied Paul Duncan's incredibly complete gem signing patch. + Thanks, Paul! + * lib/rubygems/installer.rb: Fixed bug in installer that caused + dependency installation not to work. + +2005-06-06 Chad Fowler + * lib/rubygems/specification.rb: Fixed Erik hatcher's reported bug + of gem directories having "-" at the end of their names (e.g. + "BlueCloth-1.0.0-". + +2005-06-01 Jim Weirich + + * scripts/specdoc.rb (_resolve_links): Updated to generate hieraki + format so it can be included in the docs.rubygems.org site. + + * test/test_specification.rb (TestSpecification::test_to_ruby): + Fixed test on date that hard-coded a specific date. + +2005-05-29 Jim Weirich + + * Changes from the Seattle Code fest: (1) Package list command + (e.g. gem inspect GEM). (2) .gemrc settings now allow cvsrc like + options to set defaults per subcommand. (3) The autorequire spec + attribute will now accept a list. (4) Binwrappers vs symlinks + (more info to follow). (5) Substituted Time for Date in specs, + increasing performance dramatically in an important area. + +2005-05-04 Jim Weirich + + * lib/rubygems.rb (Gem::Exception::find_home): Changed rescue + clause from Exception to StandardError. Exception doesn't seem to + catch everything ... I'm not sure I understand why. + +2005-04-29 Chad Fowler + * lib/rubygems/specifiation.rb: Marcel Molina's patch to discover + which attributes in the spec are Array attributes. + +2005-04-27 Chad Fowler + * lib/rubygems/gem_commands.rb: -y is now a synonym for + --include-dependencies + +2005-04-21 Chad Fowler + * lib/rubygems/installer.rb: Added non-require_gem dependency check + for installation. + +2005-04-03 Chad Fowler + + * pre-install.rb: Added version check to RubyGems installation. + +2005-03-25 Jim Weirich + + * lib/rubygems/rubygems_version.rb (Gem): Created release for + 0.8.10. + + * lib/rubygems/gem_commands.rb + (Gem::UpdateCommand::do_rubygems_update): Update --system now runs + the ruby command directly rather than trying to load the + update-rubygems command. There were too many things to go wrong + with the old way. + +2005-03-24 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller::find_dependencies_not_installed): Fixed to + reload source index before attempting to detect dependencies. + +2005-03-23 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller::find_dependencies_not_installed): Switched + to using SourceIndex#find_name to detect missing dependencies, + avoiding a gem activation during an install. + + * lib/rubygems/installer.rb (Gem::Installer::install): Removed + activate call from install step. If we need to do something about + dependencies at this time, then we need a better way to do them. + + * lib/rubygems.rb: Removed the require for rubygems/timer. + +2005-03-16 Jim Weirich + + * test/gemenvironment.rb (TestEnvironment::create): Added require + on gem/builder. + + * lib/rubygems/source_index.rb (Gem::SourceIndex::initialize): + Allowing default argument to new to be an empty hash. + (Gem::SourceIndex::from_installed_gems): Refactored into a class + method that invokes a instance method. + (Gem::SourceIndex::refresh): Refresh now does a complete reload + from disk. This should be more accurate that the earlier version. + + * lib/rubygems/installer.rb (Gem::Uninstaller::uninstall): removed + unneeded refresh!. + + * lib/rubygems.rb (Gem::Exception::source_index): Removed + automatic refresh from Gem.source_index ... it wasn't reliable + when removing installed gems. + (Gem::Exception::activate): Added detection of previously loaded + gems. + +2005-03-15 Chad Fowler + + * bin/gem_server: (htonl) rdoc opens in existing browser window. + +2005-03-14 Jim Weirich + + * Released 0.8.8 + +2005-03-14 Jim Weirich + + * Released 0.8.7 + +2005-03-13 Gavin Sinclair + + * lib/rubygems/installer.rb (Gem::Installer#shebang): Refactored and + stripped result to avoid ^M issues. + +2005-03-11 Jim Weirich + + * lib/rubygems/gem_commands.rb (Gem::DependencyCommand): Added a + new command "gem dependency" to show the dependencies of an + installed gem. + + * lib/rubygems/cmd_manager.rb (Gem::CommandManager::initialize): + Added DependencyCommand to the command manager registrar. + + * lib/rubygems/version.rb (Gem::Requirement): Unnested Requirement + from the Version class. There was no benefit to having it nested. + Gem::Version::Requirement is set to point to the new class so to + be compatible with old gems. + + * lib/rubygems/installer.rb (Gem::Uninstaller::ask_if_ok): Changed + uninstaller confirm message to read 'Continue with uninstall'. + Its clearer that way. + + * lib/rubygems.rb (Gem::Exception::required_location): Switch to + use SourceIndex#find_name rather than search. Made sure a nil + value is returned with a path is not found. + + * lib/rubygems/source_index.rb (Gem::SourceIndex::search): Changed + parameter name to gem_pattern to emphasize using Regex in search. + (Gem::SourceIndex::find_name): Added find_name to handle the + common case of searching for an exact match on the short name. + + * lib/rubygems.rb (Gem::Exception::activate): Make sure that + activate more closely adheres to honoring the auto_require=>false + request. + (Gem::Exception::report_activate_error): Out of line error + reporting for activate. + + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller::find_dependencies_not_installed): Found + another location that was using require_gem with auto_require. + Fixed to use :auto_require=>false. + + * lib/rubygems/gem_commands.rb + (Gem::InstallUpdateOptions::add_install_update_options): Added + --ignore-dependencies option. Still needs to be wired to logic. + + * lib/rubygems/installer.rb (Gem::Installer::install): Added call + to require_gem_with_options. + + * lib/rubygems.rb (Kernel::require_gem_with_options): Added to + allow easier specification of the autorequire flag for + Gem.activate. + +2005-03-10 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::RemoteSourceFetcher::normalize_uri): Normialize a URI to + start with http:// if it does not already. + + * test/test_deployment.rb (TestDeployment::xtest_deploy_sources): + Disabled this test. It is part of the new deployment software and + is not working yet. + +2005-03-09 Jim Weirich + + * lib/gemconfigure.rb (Gem::self): Added to aid dynamic + versioning. + + * lib/rubygems/command.rb (Gem::Command::command_manager): Moved + command_manager to base class. + + * lib/rubygems/gem_commands.rb (Gem::CleanupCommand::execute): + Both implicit and explicit gems now work with cleanup. + +2005-03-08 Jim Weirich + + * lib/rubygems/installer.rb (Gem::Uninstaller::ok_to_remove): + Fixed source index to be loaded from the installed gems when doing + an "OK TO REMOVE" dependency check. + +2005-03-06 Rich Kilmer + * lib/rubygems/deployment.rb: beginning of a deployment capability + + * test/test_deployment.rb: first tests of new deployment system + +2005-03-04 Chad Fowler + * lib/rubygems/gem_commands.rb: Small bugfix for the case when you + pass in a gem name (or more) to cleanup for the cleanup command. + +2005-03-04 Jim Weirich + + * lib/rubygems/installer.rb (Gem::Uninstaller::ok_to_remove): + Reworked logic in uninstall to be intelligent about dependencies. + We only complain about dependencies if removing a gem will cause a + dependency error. The uninstaller now checks for :ignore, :all + and :executables options. + + * lib/rubygems/cmd_manager.rb (Gem::CommandManager::initialize): + Registered Cleanup command. + + * lib/rubygems/gem_commands.rb (Gem::CleanupCommand): Added + Cleanup command to gem. + (Gem::UninstallCommand::initialize): Added --all, --ignore and + --executables options to uninstall. This helps to avoid excessive + YESes all the time. + +2005-02-28 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::LocalSourceInfoCache::write_cache): Open cache file in + binary mode. + +2005-02-28 Chad Fowler + * lib/rubygems/config_file.rb: don't warn about not being able to + find config file. + * lib/rubygems/doc_manager.rb: (for DHH) don't install rdoc docs for + * lib/rubygems/gem_commands.rb: Print which gems are updated on 'gem + update'. If --system is used, report that the rubygems system + software has been updated. + * lib/rubygems/installer.rb: Cleaned up the uninstall has_dependents + logic and output. It was misleading and buggy before. + +2005-02-27 Jim Weirich + + * lib/rubygems/config_file.rb + (Gem::ConfigFile::default_config_file_name): Fixed bug in finding + home directory for the .gemrc file. + +2005-02-27 Chad Fowler + + * Released 0.8.6 + + * Fixed a small bug with shebang construction + +2005-02-26 Jim Weirich + + * Released 0.8.5 + + * lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc): + Removed warning about generating rdocs on gems w/o an rdoc flag. + + * lib/rubygems/gem_commands.rb + (Gem::UpdateCommand::do_rubygems_update): Added --system option to + update to specifically update the version of rubygems. + (Gem::UpdateCommand::which_to_update): Fixed some refactoring bugs + in the which_to_update method. + + * lib/rubygems/remote_installer.rb + (Gem::LocalSourceInfoCache::read_cache): switched to Marshal + rather than Yaml for local cache. + + * bin/gem: Added requirement for Ruby >= 1.8.0. + +2005-02-10 Chad Fowler + * bin/gem_server: Added Martin Ankerl's wonderful new gem_server + template + +2005-01-27 Chad Fowler + * lib/rubygems/gem_commands.rb: Fixed + `gem update` so it accepts a list of gems to update and _only_ + updates those. + * lib/rubygems/installer.rb: Fixed a bug in the new shebang code. + * lib/rubygems/remote_installer.rb: Attempt to fix Curt Hibbs' + reported Proxy bug without actually having a proxy to test with. + +2005-01-22 Chad Fowler + * lib/rubygems/custom_require.rb: Lyle Johnson's fix for Bug #1379 + +2005-01-20 Chad Fowler + * lib/rubygems/validator.rb: Applied Austin Ziegler/Kasper Schiess's + patch to fix unit test running bug. + +2005-01-14 Chad Fowler + * lib/rubygems/installer.rb: attempt at fixing Ryan Davis's + reported Shebang bug. STILL NOT WORKING, because it doesn't work + with ^M characters. + * lib/rubygems/config_file.rb: small but ugly error fixed if no + config file exists. + * lib/rubygems/remote_installer.rb: Fixed bug http://rubyforge.org/tracker/index.php?func=detail&aid=1331&group_id=126&atid=575. + +2005-01-01 Chad Fowler + * Released 0.8.4 + +2004-12-31 Jim Weirich + + * Rakefile: Switch to standard Rake test tasks. + + * lib/rubygems/remote_installer.rb + (Gem::RemoteSourceFetcher::read_data): Added a retry to try a + lower case gem name if the open failed. This fixes a problem + where case differences are preventing some gems from installing. + +2004-12-29 Jim Weirich + + * lib/rubygems/gem_commands.rb (Gem::InstallCommand::execute): + Changed the RemoteInstaller to take an options hash rather than + individual options. This will leave the interface more resilient + to changes as more options are added + (e.g. --install_dependencies). + + * lib/rubygems/specification.rb (Gem::Specification): Marked array + attributes explicitly. This allows for explicit conversion to + arrays when assigned. + + * test/test_specification.rb + (TestSimpleSpecification::test_array_attributes): Added test for + array_attributes forcing values to arrays. + +2004-12-28 Jim Weirich + + * lib/rubygems.rb (Gem::Exception::ensure_gem_subdirectories): + Fixed the Ryan Davis patch to work correctly when directories are + not writable. + +2004-12-18 Chad Fowler + * lib/rubygems/version.rb: Erik Veenstra's sort patch. + * lib/rubygems.rb: Ryan Davis's installation bug fix. + +2004-12-14 Gavin Sinclair + + * test/test_loadmanager.rb: invalidated it as a unit test; it's + incompatible with custom_require.rb. + +2004-12-12 Gavin Sinclair + + * lib/rubygems/custom_require.rb: simple bug fix. + +2004-12-12 Gavin Sinclair + + * lib/rubygems/custom_require.rb: new file to replace + loadpath_manager.rb and speed up the custom require functionality. + + * lib/rubygems/timer.rb: new file; simple benchmarking tool that's + useful at the moment but needn't stay in RubyGems permanently. + + * lib/rubygems/source_index.rb: include Enumerable and implement #size + and #length. + + * lib/rubygems/specification.rb: removed lazy initialisation of + attributes to reduce #copy_of invocations; folded + Specification.copy_of into Specification#copy_of. + + * lib/rubygems.rb: require 'rubygems/custom_require' instead of + 'rubygems/loadpath_manager'; removed out of date documentation; added + "require 'rubygems/timer'" to temporarily assist with benchmarks. + +2004-12-07 Jim Weirich + + * Released 0.8.3 + +2004-12-06 Jim Weirich + + * test/test_specification.rb + (TestLegacyYamlSpecification::test_load): Fixed test to avoid the + __FILE__ stuff. Running tests from rakefile guarantees that the + file paths start from the right location. + + * pkgs/sources/sources.gemspec: Made Gem.sources_spec idempotent. + + * lib/rubygems/specification.rb (Gem::Specification::initialize): + Added @@gather to Gem::Specification to facilitate proper loads. + (Gem::Specification::Specification): Added Specification.load. + + * lib/rubygems/source_index.rb (Gem::SourceIndex): Fixed comments + 'long name' => 'full name'. + + * lib/rubygems/gem_commands.rb (Gem::BuildCommand::load_gemspecs): + Changed to use Gem.Specification.load. + + * Rakefile: Added sources-*.gem to clobber list. + (egrep): Upgraded the DBG finder to include breakpoint. + + * post-install.rb (install_sources): Using block version of chdir. + + * lib/rubygems/remote_installer.rb + (Gem::LocalSourceInfoCache::read_cache): Fixed initialization of + cache. + + * lib/rubygems.rb: Updated version to 0.8.2. + +2004-12-04 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::LocalSourceInfoCache::writable_file): Now just returns the + selected cache file (which was selected based on writability). + (Gem::LocalSourceInfoCache::try_file): Added try_file to determine + if a file is a candidate for a cache file. + (Gem::LocalSourceInfoCache::select_cache_file): Added failure if + there are not valid cache file candidates. + + * lib/rubygems.rb (Gem::Exception): Renamed @@cache to + @@source_index. + (Gem::Exception::source_index): Renamed Gem.cache to + Gem.source_index (but left cache as an alias). + +2004-12-03 Jim Weirich + + * lib/rubygems/remote_installer.rb (Gem::LocalSourceInfoCache): + Added a local cache manager object to implement the read/write + policies on the system and user cache files. + (Gem::LocalSourceInfoCache::update): Added update and flush to the + caching fetcher so that it knows when it needs to update the local + cache files. + (Gem::RemoteInstaller::initialize): Switched to using a cached + fetcher in the remote installer. All the caching logic was + removed from the installer. User writable cache files are now + supported. + (Gem::RemoteInstaller::write_gem_to_file): write_gem_to_file now + will create the path if needed. + +2004-12-02 Jim Weirich + + * lib/rubygems/package.rb (TarInput::zipped_stream): To workaround + a problem with earlier than 1.2.1, we read the zipped data into a + string, and then return an IO object on that string. + (TarInput::each): Refactored getting a stream to the zipped data + into zipped_stream. + +2004-12-01 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::RemoteSourceFetcher::convert_spec): We now proprocess the + yaml string data to reduce it in size. This was done to + workaround a problem with large YAML files (although it is just a + temporary fix because our yaml data keeps growing and growing). + + * Rakefile: Added more targets to the clobber target. + + * test/test_remote_fetcher.rb + (TestRemoteFetcher::test_explicit_proxy): Added tests for proxy + support. + + * lib/rubygems/remote_installer.rb + (Gem::RemoteSourceFetcher::connect_to): Refactored to add proxy + support. + +2004-11-28 Chad Fowler + * lib/rubygems/loadpath_manager.rb: Added Mauricio's patch to work + around string contains null byte issue. + +2004-11-27 Jim Weirich + + * lib/rubygems/remote_installer.rb + (Gem::RemoteSourceFetcher::get_size): Switched from open-uri with + early abort to an HTTP.head call to get the size of the yaml file + on the server. + +2004-11-26 Jim Weirich + + * test/test_specification.rb + (TestDefaultSpecification::test_defaults): Added test for some + basic defaults in a gem spec. + + * test/test_remote_installer.rb (MockFetcher::source_info): Made + the fake test data more realistic. + (TestRemoteInstaller::test_source_info): Improved tests. + +2004-11-26 Jim Weirich + + * test/test_remote_installer.rb (MockFetcher): Added MockFetcher + to make testing the remote installer easier. Currently there are + two remote installer test classes. Eventually TestRemoteInstaller + will succeed RemoteInstallerTest, which is very incomplete. + + * test/test_package.rb (TC_TarReader::TC_TarInput): Made the unit + test ignore the setgid bit. The setgid bit doesn't work on my + laptop for some reason. This may be a problem with my laptop + rather than with this code. Should investigate further. + + * lib/rubygems/remote_installer.rb (Gem::RemoteSourceFetcher): + Added a Fetcher object to the remote installer to handle all the + details of getting the remote information. This allows testing + the logic of the remote installer without actually doing remote + calls. + (Gem::RemoteInstaller::sources): Renamed get_caches to + source_info. The problem is that cache is too generic and there + are actually several things that we will cache in the system. + + * lib/rubygems/cache.rb (Gem::Cache::self): Changed interface to + from_installed_gems slightly. + (Gem::Cache::self): Reordered rescue clauses so that the syntax + exception might actually be handled. + + * lib/rubygems.rb (Gem::Exception::ensure_gem_subdirectories): + Dumped the check_gem_subdirectories method to use the almost + identical ensure_gem_subdirectories method. + (Gem::Exception::ensure_gem_subdirectories): Only attempt to + create the gem subdirectories if we can actually write them. + + * bin/gem_server: Added date of last file modification to header + of /yaml. This is in preparation for using a head command with + date/time stamping in fetching the source cache. + +2004-11-25 Ryan Davis + * lib/rubygems.rb: Added GEM_SKIP functionality, which will tell + loadpath_manager not to load specific libs from gems. For + testing/ development purposes. Created by Ryan Davis. + +2004-11-24 Chad Fowler + * lib/rubygems/specification.rb: Allow multiple authors per gem. + * lib/rubygems/gem_commands.rb: command line error message if you + run 'gem install' with no args. + * lib/rubygems/loadpath_manager.rb: Fixed @specs bug as reported by + Lothar Schulz on ruby-talk. + +2004-11-07 Chad Fowler + * lib/rubygems.rb,lib/rubygems/installer.rb,lib/rubygems/cache.rb + lib/rubygems/remote_installer.rb,lib/rubygems/gem_commands.rb: + Fixes to make non-root installation work properly. Still need to + fix uninstallation. + * lib/rubygems/gem_commands.rb: Allow multiple gems/gem names on the + command line for install. + +2004-10-31 Chad Fowler + * lib/rubygems/version.rb,test/test_version_comparison.rb: Patrick May's + * post-install.rb: Patrick May's fix for rubygems lib not being found + during install. + +2004-10-29 Chad Fowler + * packages/,pkgs,install.rb: renamed "packages" to "pkgs" to avoid + * remote_installer.rb: Added user-agent reporting for remote + operations + * setup.rb,install.rb,bin/update_rubygems: removed install.rb and + added setup.rb and post-install.rb. Changed update_rubygems so that + params passed to it can be passed on to setup.rb + +2004-10-25 Jim Weirich + + * lib/rubygems/installer.rb + (Gem::Uninstaller::remove_executables): Corrected spelling of + "addtion". + +2004-10-24 Jim Weirich + + * lib/rubygems/version.rb (Gem::Version::Requirement::self): Now + properly handles arrays of version constraints. + + * lib/rubygems/loadpath_manager.rb + (Gem::LoadPathManager::Gem::Specification): Added comments + describing the fast Spec class purpose. Added to_s to + Gem::Specification (both fast and slow versions). + (Gem::LoadPathManager.paths): Returns (cached) list of gem paths. + (Gem::LoadPathManager::self): Refactored to use glob_over in + search_loadpaths and search_gempaths. + + * lib/rubygems/installer.rb: Added some requires. + + * lib/rubygems/cache.rb (Gem::Cache::refresh): Fixed refresh! to + call load_specification on the Cache class, not on itself. + + * lib/rubygems.rb (Gem::Exception::activate): added comments to + activate. Also made sure that partial name matches in the gem + cache search were avoided. + (Gem::Exception::clear_paths): Added code to clear the gem cache + when reseting the gem paths. + (Gem::Exception::require): Added a function to take a gem name and + a library file name (in that gem) and return a path to the library + in the gem. David HH was interested in this in order to speed up + some require statements under ModRuby. Eventually I hope we won't + need these special tricks. + (Gem::Exception::latest_partials): Fixed bug that assumed exactly + three digits in a version number. + + * Rakefile (egrep): Added two tasks to find all the FIXME/TODO + markers in the source code comments and to find the DBG print + lines. + +2004-10-23 Jim Weirich + + * test/test_specification.rb + (TestSimpleSpecification::test_add_bindir_to_list_of_files): + Verify that an executable doesn't need the bindir if bindir is + set. + (TestSimpleSpecification::test_no_bindir_in_list_of_files): Added + test the verify that exectuable can be written without a default + binder. + + * lib/rubygems/installer.rb + (Gem::Installer::generate_bin_scripts): Added check so that the + bindir is access only when there are actually executables to + install. Checking for an installable bindir was giving permission + errors when installing test gems. + +2004-10-21 Chad Fowler + * lib/rubygems/installer.rb: Show extension build errors during install + in addition to logging them to gem_make.out + +2004-10-02 Chad Fowler + + * lib/rubygems/validator.rb,lib/rubygems/gem_commands.rb: Added + --test option for "gem check" that runs unit tests on already- + installed gems. + +2004-09-30 Rich Kilmer + + * lib/rubygems/specification.rb - externalized the loaded_from runtime + var on specification + * lib/rubygems/cache.rb - optimized cache refresh! method and refactored + processing of files when building cache. + * lib/rubygems/loadpath_manager.rb - fixed bug in loadpath manager in + finding native extensions that have ext on os x, win32 and solaris + +2004-09-20 Chad Fowler + * lib/rubygems/gem_commands.rb: If file match during local install is + a directory, don't try to treat it erroneously as a gem (bug reported + by Rich). + * lib/rubygems.rb: Fixed small bug in #latest_load_paths + + (NOTE: It looks like 0.8.0/0.8.1 was released in this timeframe) + +2004-09-14 Chad Fowler + * lib/rubygems.rb: Fixed bug in require_gem (thanks Jamis Buck!) + that would require a gem based on an inexact search of its name + in the local cache. This caused copland-webrick to be loaded + when a request was made for "copland". + +2004-09-12 Chad Fowler + * lib/rubygems/specification.rb, test/test_specification.rb: Removed + library_stubs attribute. + +2004-09-12 Gavin Sinclair + + * scripts/specdoc.rb: Check that all attributes are documented; and + improved formatting. + * scripts/specdoc.yaml: test_suite_file -> test_files; finished + documentation. + * scripts/specdoc.data: misc changes. + +2004-09-11 Chad Fowler + + * test/test_parse_commands.rb: Fix failing unit tests due to Rich's fix from + + * lib/rubygems/specification.rb: Add bindir to executable path on file list + +2004-09-11 Rich Kilmer + + * lib/rubygems/gem_commands.rb - got rid of stub options + + * lib/rubygems/install.rb - changed output of messages so the UI would format + better + + * bin/gem_server - exit! from ^c + +2004-09-09 Chad Fowler + * lib/rubygems/loadpath_manager.rb: Small bug when gem specs have ruby + version requirements. + * lib/rubygems/specification.rb, lib/rubygems/gem_commands.rb: Fixed failing + functional test. + +2004-09-08 Chad Fowler + * install.rb: added stub removal to the install process + +2004-09-06 Chad Fowler + * test/test_package.rb: Fixed failing unit test as per Mauricio's email to + the rubygems list. + * Fixed minor issues with Windows cmd file generation. + +2004-09-06 Rich Kilmer + * lib/rubygems/remote_installer.rb - enabled caching of source caches + based on the size of the yaml.Z/yaml file. + +2004-08-29 Chad Fowler + * /lib/rubygems/gem_command.rb: small big fix for local gem installs + on Windows. + +2004-08-28 Rich Kilmer + + * /lib/rubygems/installer.rb, /lib/rubygems/doc_manager.rb, + /lib/rubygems/cmd_manager.rb - Added an exception: FilePermissionError + which checks to ensure write access to the install/uninstall/rdoc + destination directories and raises a nice error instead of the standard + one. + +2004-08-28 Rich Kilmer + + * /lib/rubygems/installer.rb - commented out stub addition and removal + +2004-08-28 Rich Kilmer + + * /lib/rubygems.rb, /lib/rubygems/loadpath_manager.rb - + this adds all the loadpath_manager stuff with the 'ultimate require hack' to + rubygems.rb. Also, require_gem methods body has been extracted into a method + Gem.activate that differs in the calling signature in that the second param is + a boolean that determines whether to autorequire or not. + +2004-08-27 Rich Kilmer + + * lib/rubygems/user_interaction - added ask_yes_no as a method + which returns true/false and formats/processes the [yn] stuff. + it also has an optional second parameter of true/false for the + default value. + + * lib/rubygems/installer.rb, lib/rubygems/remote_installer.rb, + lib/rubygems/command_manager.rb - changed all places where ask + was used with [Yn] to ask_yes_no + +2004-08-24 Gavin Sinclair + + * lib/rubygems/installer.rb: Library stubs are now installed as per + 'library_stubs' gemspec attribute. A stub is (still) also installed + for the 'autorequire' attribute. All library stub handling + refactored into two new classes: LibraryStubs and LibraryStub. + + * test/test_parse_commands.rb: as per 2004-08-17 below, the 'update' + command takes --rdoc as its default now. + +2004-08-22 Rich Kilmer + * lib/rubygems/installer.rb: fixed stub generation...i added the version + stuff that only app stubs should have...sorry! + +2004-08-17 Gavin Sinclair + + * lib/rubygems/gem_commands.rb: --rdoc is default on 'update' command, + consistent with 'install'. 'default_str' methods changed to reflect + --rdoc being default now. + +2004-08-21 Chad Fowler + * lib/rubygems/gem_commands.rb: Proper checking for gems in local + directory on local install. rescue Gem::LoadError to avoid ugly + backtrace. + * lib/rubygems/installer.rb: created Gem::LoadError to hold extra + metadata. Setting up for proper dependency installation on local + installs. + +2004-08-20 Chad Fowler + + * lib/rubygems/specification.rb: Fixed small bug in the previous spec + change commit. + + * lib/rubygems/cache.rb: Prevent catastrophic failure if a gemspec is + corrupted. + + * lib/rubygems/installer.rb: Fixed (in not a great way) a bug that would + cause a zero-length spec file to be written to the gem specifications + directory. + +2004-08-19 Chad Fowler + + * lib/rubygems/specification.rb: #files auto-includes any #extensions, + #extra_rdoc_files, #test_files, etc. that weren't explicitly added + to the file list. + +2004-08-18 Chad Fowler + + * lib/rubygems/specification.rb: One more bug with #test_files. + Default value of [] wasn't set, resulting in an attempt to call + #empty? on nil. + + * lib/rubygems/gem_commands.rb: Unit tests appear to be working now. + Still more testing to do. + + * lib/rubygems/remote_installer.rb, lib/rubygems/installer.rb: Fixed + minor bugs in default selections for questions asked during + installation and uninstallation + +2004-08-17 Gavin Sinclair + + * lib/rubygems/specification.rb: + - #test_suite_file and #test_files now work on older gems. + - Added Specification.from_yaml for loading YAML gemspecs + - #to_ruby doesn't emit 'specification_version' + + * lib/rubygems/gem_commands.rb: Updated test-on-install code to use + Specification#test_files instead of #unit_test_suite. + + * lib/rubygems/old_format.rb: Use Specification.from_yaml + * lib/rubygems/package.rb: Ditto + +2004-08-17 Gavin Sinclair + + * lib/rubygems/command.rb: --debug option to turn on $DEBUG + * lib/rubygems/config_file.rb: ditto + +2004-08-11 Rich Kilmer + * lib/rubygems/installer.rb: The application stub now defaults to + the latest version of the library, and optionally allows an initial + parameter conforming to _VERSION_ to be passed to select a prior + version of the library (this initial parameter, if present, is shifted + off of ARGV). This change was re-added...I erased it somehow :( + +2004-08-11 Gavin Sinclair + + * lib/rubygems/gem_commands.rb: + - 'gem spec X' displays spec for _latest_ version of X. Added + '--all' option if you want to see all versions. + - RDocCommand code cleanup and slight change: document _all_ + versions of the gem by default, not just the first. + + * lib/rubygems/doc_manager.rb: removed 'kilmer' default template + option and obsolete error message. + +2004-08-12 Chad Fowler + * Added "gem rdoc" command for generating docs for already-installed + gems + +2004-08-11 Rich Kilmer + * bin/generate_yaml_index: updated to work with new gem format (and use the Gem::Format + class to read). Will deploy after testing on RubyForge. + * lib/rubygems/gem_commands.rb: generate rdoc by default on installs (I think this is + just good practice. + * lib/rubygems/remote_install.rb: raise an exception if dependent gems cannot be found + on remote_install + +2004-08-11 Chad Fowler + * lib/rubygems/gem_commands.rb: query is now case insensitive (as it used to be) + * lib/rubygems/installer.rb: gem_make.out wasn't being written when an extension failed to compile. + +2004-08-11 Rich Kilmer + + * removed String.to_requirement...we should not modify + base classes in Ruby! modified to get rid of said to_requirement + with Gem::Version::Requirement.create(obj) + + * specification.rb - fixed constructor bug of version requirement... + it now defaults to Requirement.default + +2004-08-11 Chad Fowler + + * One more specification.rb bug fixed. + +2004-08-11 Gavin Sinclair + + * lib/rubygems/specification.rb: + - Added convenience class methods: attribute_names, + attribute_defaults, default_value, required_attributes, and + required_attribute?. + + - IMPORTANT: attribute readers now use lazy initialization, just + like some of them did before the 2004-08-01 change. This was done + to fix the breakage when loading older gemspecs. + + - IMPORTANT: replaced instance variable access with attribute reader + method calls in many cases. This is in line with the above change. + + - Good documentation for the "attribute" method. + + - Renamed _copy -> _copy_of. + + * lib/rubygems/cache.rb: + - Some fairly shallow changes. Exception handling needs improvement. + + * lib/rubygems/version.rb: + - (Version.create) new method (for convenience) + - (Version::Requirement.create) new method (for convenience) + - (Version::Requirement.default) new method (for consistency) + + * test/test_specification.rb: test attribute_names instead of + attributes. Other "class convenience" methods remain to be tested + at this stage. Also added test classes for legacy gemspecs. + + * test/data/legacy/keyedlist-0.4.0.ruby: added. + * test/data/legacy/keyedlist-0.4.0.yaml: added. + +2004-08-06 Gavin Sinclair + + * lib/rubygems/specification.rb: + - Added convenience class methods: attribute_names, + attribute_defaults, default_value, required_attributes, and + required_attribute?. + + - IMPORTANT: attribute readers now use lazy initialization, just + like some of them did before the 2004-08-01 change. This was done + to fix the breakage when loading older gemspecs. + + - Good documentation for the "attribute" method. + + - Renamed _copy -> _copy_of. + + * test/test_specification.rb: test attribute_names instead of + attributes. Other "class convenience" methods remain to be tested + at this stage. + +2004-08-01 Gavin Sinclair + + * lib/rubygems/specification.rb: + - (Re)defined class methods: attribute, attributes, + required_attribute, read_only, overwrite_accessor. @@attributes + contains a list of attribute names and default values. This + allows higher-level specification of gemspec attributes, and the + handling of them in a DRY fashion. + + - to_yaml_properties now includes all properties, to ensure + correct deserialization of a Gem::Specification object. + + - #to_ruby and #to_yaml_properties rewritten to use @@attributes + + - Introduced 'specification_version' attribute and three constants: + NONEXISTENT_SPECIFICATION_VERSION, CURRENT_SPECIFICATION_VERSION, and + SPECIFICATION_VERSION_HISTORY. This allows us to track changes to + the spec format. + + - Refactored several "helper" methods, using the new class method + 'attribute_alias_singular', which provides a "singular" alias for + a "plural" attribute (e.g. require_path and require_paths). + + - All gemspec attributes now defined in a uniform fashion, which + implies that they all have valid instance variables on + initialization. Previously, some attributes were lazily + initialized. + + - Introduced attribute 'library_stubs', to allow the specification + of several stub files. (That feature not implemented, though.) + + - Introduced attribute 'test_files' and deprecated 'test_suite_file'. + + - Provided #warn_deprecated stub of a method, but don't know what to + do with it. + + - Deprecated #has_test_suite? in favour of (new) #has_unit_tests? + + - Used overwrite_accessor to provide special behaviour for the + setting of some attributes. + + - The 'date' attribute is now a Date object. We don't need high + resolution, and Time objects, being system-dependent, are not nice + to deal with. + + - Various code style changes. + + - Summary: uniform treatment of gemspec attributes; reduced code by + refactoring; 'test_suite_file' deprecated for 'test_files'; + 'library_stubs' introduced; spec versioning introduced. + + * lib/rubygems/version.rb: (Dependency) added #to_s, #==, and an + alias (requirements_list -> requirement_list). + + * test/test_specification.rb: several new tests: _singular_attributes, + _deprecated_attributes, _defaults, _to_{yaml,ruby}_and_back, + _directly_setting_dependencies_doesnt_work, and more. Plus a new + class to give Specification a more thorough workout (TestSpecificationComplex). + + * scripts/runtest.rb: require 'pp' so it's always available in unit + tests. + +2004-07-30 Rich Kilmer + + * lib/rubygems/installer.rb The application stub now defaults + to the latest version of the library, and optionally allows + an initial parameter conforming to _VERSION_ to be passed + to select a prior version of the library (this initial + parameter, if present, is shifted off of ARGV). + + * lib/rubygems/version.rb correct? is now a class method on + Version enabling Gem::Version.correct?(...) + + * lib/rubygems/install.rb make it so uninstalling a gem will + not remove executables if another version of that gem is + installed and needs those executables + +2004-07-26 Jim Weirich + + * lib/rubygems.rb (Gem::Exception::latest_load_paths): Added + latest_load_paths and refactored all_load_paths to use common + code. + +2004-07-25 Rich Kilmer + * fixed bug in using --source in command.rb (removed short -s version) + + * changed spec to use the RUBY_PLATFORM for Platform::CURRENT + + * added ability to choose from list of available gems on remote install + if (1) some of the gems are binary and (2) there are move than one. + If the gems are all source gems, the latest is selected. + +2004-07-25 Jim Weirich + + * lib/rubygems.rb (Gem::Exception::all_load_paths): Added + all_load_paths utility function. + + * bin/update_rubygems: Added a command to update the gem + installation based on a update gem. + + * Rakefile: Pulled package file list out into a constant so it can + be reused between the package command and the gem package command. + Added a gem package target to support rubygems updates. + +2004-07-22 Gavin Sinclair + + * lib/rubygems/version.rb: + * (Requirement#initialize) initialize @version to avoid warning + * (Dependency#initialize) initialize @version_requirement to avoid + warning + +2004-07-19 Chad Fowler + * install.rb: Shebang line should point to the ruby version used during + installation. + +2004-07-19 Assaph Mehr + * lib/rubygems/command.rb, packages/sources/lib/sources.rb: Added + command-line-configurable sources. + +2004-07-18 Chad Fowler + * lib/rubygems/validator.rb: Fixed a bug that would cause "managed" + files to appear to be unmanaged due to differences in how the paths + were formatted. + +2004-07-17 Gavin Sinclair + + * lib/rubygems/gem_commands.rb (InstallCommand#execute): removed clear + bug (name -> gem.name). + +2004-07-14 Rich Kilmer + * added old_format.rb which is used in the (hack) in format.rb + to detect the older version of a gem, and if present, switches + to that class instead. + * fixed the ARGV passing in bin/gem to ingore args past -- which + are used for passing params to source gems (extconf.rb) + +2004-07-13 Chad Fowler + * lib/rubygems/installer.rb, lib/rubygems/package.rb, + lib/rubygems/format.rb, test/test_package.rb: Added Mauricio + Fernandez's patch to replace old gem format with tar.gz format. + Fixed some failing unit tests that resulted. Still a couple left. + * lib/rubygems.rb: Fixed a bug introduced by the previous patch. + +2004-07-13 Gavin Sinclair + + * lib/rubygems.rb: (#require_gem) added the ability to do + "require_gem 'rake/packagetask'", for instance, which is a + shortcut for "require_gem 'rake'; require 'rake/packagetask'". + +2004-07-13 Gavin Sinclair + + * lib/rubygems/gem_commands.rb: refactored --version option + in all cases to the new VersionOption module. + +2004-07-13 Gavin Sinclair + + * lib/rubygems/cmd_manager.rb: added 'unpack' command. + + * lib/rubygems/gem_commands.rb (UnpackCommand): added. + + * lib/rubygems/installer.rb (Installer#unpack): added. + +2004-07-09 Jim Weirich + + * lib/rubygems/user_interaction.rb (Gem::StreamUI::ask and + Gem::StreamUI::choose_from_list): Added flush before each gets. + +2004-07-05 Gavin Sinclair + + * lib/rubygems/command.rb (Gem::Command#defaults_str): added. + + * lib/rubygems/command.rb (Gem::Command#create_option_parser): + Defaults for the options are included in the parser output. + + * lib/rubygems/gem_commands.rb: all commands which have options + and defaults now have #defaults_str implemented. + +2004-07-05 Jim Weirich + + * lib/rubygems/command.rb (Gem::Command#create_option_parser): + Make the argument and option sections optional. They are only + printed if there are options or arguments defined. + +2004-07-05 Gavin Sinclair + + * lib/rubygems/gem_commands.rb: + - scrubbed up the 'help' command a bit, removing its options + - added information to 'help commands' + +2004-07-04 Gavin Sinclair + + * lib/rubygems/gem_commands.rb: + - modified generic help and examples + - improved 'list' and 'search' help, and fixed bug in 'search' + + * lib/rubygems/cmd_manager.rb: + - explicit support for top-level commands --help and --version + - no more support for --examples and --commands + +2004-07-04 Gavin Sinclair + + * lib/rubygems/gem_commands.rb: + - added 'list' and 'search' commands ('list' is no longer an alias + for 'query') + - modified return value from all 'arguments' methods (see command.rb) + + * lib/rubygems/cmd_manager.rb: added 'search' command. + + * lib/rubygems/command.rb: + (Command#create_option_parser): enhanced the option parser for 'help' + display + (Command#remove_option): added (to support 'list' and 'search') + + * Rakefile: added 'gem' target. Runs "local" (not installed) command + and libraries. + +2004-07-04 Gavin Sinclair + + * Rakefile: added 'install' target. + + * lib/rubygems/cmd_manager.rb: code formatting. + + * lib/rubygems/gem_commands.rb: + - refactored common install and update options into new module + InstallUpdateOptions + . consolidated option pairs (e.g. --test & --no-test ==> --[no-]test) + . --gen-rdoc is now --rdoc + - (UninstallCommand) corrected typo + - (InstallCommand) corrected output with local install + + * test/test_parse_commands.rb: :%s/--gen-rdoc/--rdoc/g + +2004-07-03 Jim Weirich + + * lib/rubygems/gem_commands.rb (Gem::InstallCommand::initialize): + Added --no-gen-rdoc and --no-test to allow the user to override + .gemrc default options. + + * lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc): + Concatenate the local rdoc options to the end of the spec's rdoc + options. + (Gem::DocManager::configured_args): Added configured_args as a + place to store local rdoc options. + + * lib/rubygems/gem_runner.rb (Gem::GemRunner::do_configuration): + Configuration handled in do_configuration now. + (Gem::GemRunner::do_configuration): Set the local rdoc + configuration from the config file. + + * lib/rubygems/command.rb (Gem::Command::handles): Added a + handles? method to Command so that we can detect which extra + arguments can be used with a command. + (Gem::Command::add_extra_args): New method to add the config + file's extra arguments to the front of the argument list. + (Gem::Command::extra_args): Added extra_args to Command class to + hold the extra args discovered in the config file. + + * Rakefile: Added TEST=filename option to all the test targets. + + * test/functional.rb (FunctionalTest::test_gemrc): Added + functional test for gemrc. + + * scripts/gemdoc.data: Added an example to the specification command. + + * lib/rubygems.rb (Gem::Exception::manage_gems): Added gem_runner + and config_file to manage_gems. + (Gem::Exception::use_paths): use_paths now accepts (and ignores) + nil parameters. + + * bin/gem: Make Gem::GemRunner the top level object. It now + creates and calls the CommandManager /after/ the arguments are + processed. + + * Rakefile: Added test/data/gemhome to clobber list. + +2004-07-01 Jim Weirich + + * test/test_specification.rb + (TestSpecification::test_rdoc_files_included): Test for rdoc files + included in file list. Test for redundent file removal. + + * lib/rubygems/specification.rb (Gem::Specification::validate): + Added gem version to validation requirement. Added normalize to + remove redundent files in lists. + + * lib/rubygems/gem_commands.rb (Gem::InfoCommand::usage): Added + usage and arguments methods for InfoCommand. + (Gem::SpecificationCommand::usage): Fixed several usage comments. + +2004-06-30 Jim Weirich + + * lib/rubygems/gem_commands.rb (Gem::InstallCommand::usage): + Upcased the comment on the usage statement (and corresponding + option). This makes the variable part of the command + (e.g. GEMNAME) stand out from the static parts. + + * lib/rubygems/cmd_manager.rb (Gem::CommandManager::process_args): + Downcased commands before searching (allows upper case or mixed + case for commands on command line). + + * install.rb (install_rb): Fixed bug where the installer falsely + triggered the old repository upgrade when the directory part of + the file contained the matching "-digits." pattern. Now the + pattern must be in the file's base name. + +2004-06-26 Gavin Sinclair + + * scripts/specdoc.rb: added (to generate gem specificiation document) + * scripts/specdoc.data: added (supports specdoc.rb) + * scripts/specdoc.yaml: added (supports specdoc.rb) + +2004-06-27 Jim Weirich + + * scripts/gemdoc.data Removed extraneous marker. + + * lib/rubygems/specification.rb + (Gem::Specification::satisfies_requirement): HA! Caught another + version_requirement vs version_requirements error. (I really + regret the decision to change that name.) + + * lib/rubygems/installer.rb (Gem::Uninstaller::has_dependents): + Changed call to alert to alert_warning. + + * lib/rubygems/gem_commands.rb (Gem::UninstallCommand::execute): + Again, remove local error handling to allow the error to perculate + up the chain to the top level. + + * lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc): + Removed one level of exception handling. Only catching RDocErrors + at the outermost level. And instead of reporting the error and + swallowing it, I convert it to a Gem::DocumentError (with the same + error message). This is for better error handling. + + * lib/rubygems/command.rb (Gem::Command::handle_options): Removed + exception handling from handle_options. This allows errors to be + handled at the top level. Makes for a more consistent error + interface. + + * lib/rubygems/doc_manager.rb (Gem::DocumentError): Added + DocumentError to wrap RDocErrors (which derive from Exception + ... yuck). + + * lib/rubygems/cmd_manager.rb (Gem::RemoteError): RemoteError and + LocalInstallationError are now Gem::Exceptions (rather than + StandardErrors). + + * lib/rubygems.rb (Gem::Exception): Changed base of Gem::Exception + to RuntimeError (was ::Exception). Apps using gem as a library + would have to catch Gem::Exceptions explicitly (yuck), or catch + Exceptions generically. Catching Exceptions will catch + EVERYTHING, including things like SystemExit. By makeing + Gem::Exception a RuntimeError, apps can catch RuntimeError or even + StandardError. + +2004-06-26 Jim Weirich + + * test/functional.rb (FunctionalTest::test_all_command_helps): + Added functional test to show all commands have usage messaegs. + + * lib/rubygems/gem_commands.rb (Gem::HelpCommand::execute): Added + version option to help (gem help version). + (Gem): Cleaned up the help text. Dropped unneeded verbage. + + * lib/rubygems/cmd_manager.rb + (Gem::CommandManager::find_command_possibilities): Added + find_command_possibilities to help the Help command look for + commands. + + * lib/rubygems/installer.rb (Gem::Uninstaller::uninstall): Fixed + null pointer bug where a list was destroyed in a method. + + * lib/rubygems/gem_commands.rb (Gem::BuildCommand::load_gemspecs): + yaml gemspec files are now accepted by the build command. + + * lib/rubygems/command.rb (Gem::Command::parser): Created an + on-demand option parser for all commands. + (Gem::Command::handle_options): Command line option hash is now + and instance variable with a reader. + + * Rakefile: Linked package version to the value in the rubygems.rb + file. The gem env command now shows both gem version (e.g. 0.6) + and the package version (e.g. 0.6.1). + +2004-06-25 Jim Weirich + + * lib/rubygems/gem_commands.rb (Gem::InfoCommand): Dropped the + version command (its available via gem env). Added a gem info + command to extract the yaml from a gemfile. + (Gem::LocalRemoteOptions): Refactored the local/remote options + (adding and testing) into a mixin module. + + * test/test_version_comparison.rb + (TestDependencies::test_normalization): Added some tests for the + normalization issues mentions below. + + * lib/rubygems/version.rb (Gem::Dependency::normalize): Old gems + have requirements and dependencies incoded in the Yaml spec in an + out of date format. When loaded, they have incorrect instance + variables for modern objects. I added a normalize call to handle + transforming out dated objects in to modern objects. (Remember + this next time we change the data structure of something in the + spec file.) + (Gem::Version::Requirement::parse): Requirements are comparable + now, just so that we can test them with asserts. + + * lib/rubygems/remote_installer.rb + (Gem::RemoteInstaller::find_dependencies_not_installed): Fixed + recursive call to require_gem to properly pass dependency + information. + + * lib/rubygems/installer.rb (Gem::Uninstaller::has_dependents): + Fixed reference to version_requirement (needs to be plural). + + * lib/rubygems/command.rb (Gem::Command::invoke): Command now + handles it own help messages. Commands no longer have to return + true/false to trigger help messages. + + * lib/rubygems/cmd_manager.rb (Gem::CommandManager::process_args): + Moved help handling into the help command. + + * lib/rubygems/gem_commands.rb (Gem::HelpCommand): Renamed the + base command to HelpCommand and made it handle a lot of the help + options. Still need work on individual command helps. + + * test/functional.rb (FunctionalTest::test_env_version): Added a + bunch of new functional tests for the environment command. + + * lib/rubygems/gem_commands.rb (Gem::InstallCommand::execute): + Made multiple gem names an error for now. Should look at later. + + * lib/rubygems/cmd_manager.rb (Gem::ListCommand): Added list as an + alias to query. + (Gem::UpdateCommand::initialize): Corrected spelling of install + (intall) in several places. + + * bin/gem_server: Added Gem.manage_gems to the gem_server to fix + missing requirements. + + * lib/rubygems/cmd_manager.rb (Gem::InstallCommand::initialize): + Added missing --both option to install. + + * test/test_command.rb + (TestCommand::test_invode_with_bad_options): Catch the termination + request. + + * test/mockgemui.rb (MockGemUi::terminate_interaction): Make the + mock UI throw an exception when a termination is requested. This + makes sure that we don't miss accidental terminations. + + * lib/rubygems/cmd_manager.rb (Gem::CommandManager::find_command): + Added find_command to handle best matching command names. + + * test/functional.rb (FunctionalTest::test_build): Updated + functional tests to use the new command structure. + + * lib/rubygems/version.rb (Gem::Version::Requirement): Changed the + pessimistic version comparison operator to "~>". I like to think + of it as "approximately greater than". (It was ">*"). + + * bin/gem: Moved gem2 into the standard gem script location. It + is now stable enough to use as the standard command. + + * lib/rubygems/cmd_manager.rb (Gem::CommandManager::run): Added + run method to trap errors while running commands. Makes for + prettier output. + (Gem::CommandManager): Move *all* commands to their own classes. + Simplified CommandManager. Lowered the coupling between + CommandManager and the Commands (the commands don't even need to + know about the manager anymore). CommandManager maybe created + with "new" for testing (the script will continue to use + "instance"). + (Gem::RubyGemsInfoCommand): New command. + (Gem::VersionCommand): New command. + +2004-06-24 Jim Weirich + + * lib/rubygems/user_interaction.rb (Gem::UserInteraction): + Significantly rewrote the whole user interaction scheme. We are + now using an UI object that responds to the standard list of UI + commands (e.g. say, alert, ask). The UserInteraction module + defines all the interaction methods to be forwarded to the default + UI objects. The "ui" method returns that default object (and you + can use self.ui=(new_ui) to change it). Also the use_ui(new_ui) { + } command is convienent for switching the UI object for a short + period of time. + +2004-06-18 Rich Kilmer + * broke test_cmd_manager.rb into test_parse_commands and + test_process_commands to test the parsing of command line options + and the funtionality, respectively. + +2004-06-18 Rich Kilmer + * added new unit test file: test/test_cmd_manager.rb to test the + command manager classes. this is just the first few tests which + will be expanded to a full test suite. + +2004-06-17 Chad FOwler + + * lib/rubygems/installer.rb: Fixed bug in windows batch file generation + which was causing file not found errors. + * lib/rubygems/installer.rb: Uninstall now removes scripts and batch + * lib/rubygems/specification.rb: Fixed install bug. Thanks to Mark + Sparshatt for the fix (via the rubyforge bug tracker). + +2004-06-17 Jim Weirich + + * lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc): + Changed rdoc generation to do a chdir into the base source + directory and then to use a relative path for all the source + files. This makes the generated RDOC html look better and may fix + the windows drive/rdoc bug as a side effect. + +2004-06-17 Rich Kilmer + * Added ability to capture the UserInteraction with: + c = Gem::UserInteraction.capture + and then you can override specific methods like 'say': + c.on_say {|statement| puts "you said: #{statement}"} + +2004-06-15 Rich Kilmer + * Added refactored command handling in rubygems/cmd_manager.rb and a + (temporary) bin/gem2 command file to test things out. Once we feel + comfortable, we can replace gem with gem2. + +2004-06-10 Rich Kilmer + * Isolated all user interaction to pass through module methods on a new + Gem::UserInteraction module. Those methods will be the method of abstracting + the interaction of RubyGems for use in a GUI-based solution. + +2004-06-10 Rich Kilmer + * require 'rubygems' now minimally requires only the files needed + for runtime access to gems...not management of gems. To manage + gems you now additionally need to execute Gem::manage_gems prior + to using the builder/installer/etc. This makes gemspecs not + backward compatible unless they add that line to the gemspec + after the require 'rubygems' line. + +2004-06-10 Gavin Sinclair + * bin/gem: --upgrade-all was broken, probably as a result of the + search changes listed below. + +2004-06-09 Chad Fowler + * lib/rubygems/remote_install.rb: delegate search functionality to + Cache class, bringing remote and local search and list together into + one piece of code. + * bin/gem, lib/rubygems/validator.rb: move all STDIO work to bin/gem. + Validator.alien now returns a hash of ErrorData objects. + * bin/gem, lib/rubygems/installer.rb: move most of the STDIO stuff to + bin/gem, communicating via exceptions in this case. + +2004-06-08 Rich Kilmer + * Fixed the drive problem on win32 (hopefully) so multiple drives + should now work. Its still a hack until rdoc is fixed. + +2004-06-08 Chad Fowler + * Fixed bug caused by method change on Version::Requirement + +2004-06-08 Rich Kilmer + * fixed bug in doc_manager.rb whereby the extra_rdoc_files should + be appended to the list of directories prior to prepending the + full path. + +2004-06-08 Gavin Sinclair + * bin/gem_server: List installed gems in [name,version] order. + +2004-06-08 Gavin Sinclair + * lib/rubygems/installer.rb: don't warn about not being able to + install a library stub if a library stub is already installed. + Still warn if it's not a library stub that's there already. + +2004-06-08 Gavin Sinclair + * bin/gem: renamed --upgrade-dist to --upgrade--all and fixed bug. + * lib/rubygems/installer.rb: fixed bug with Ruby version assertion. + +2004-06-07 Chad Fowler + * lib/rubygems/remote_installer.rb, lib/rubygems/version.rb: Fixed old + dependency on #version method for Gem::Version::Requirement + * bin/gem: new --upgrade-dist option allows one to upgrade every + installed gem + * lib/rubygems/specification.rb,lib/rubygems/installer.rb: new + #required_ruby_version attribute added to gem specification for specifying a + dependency on which version of ruby the gem needs. Format it accepts is + the same as the Gem::Version::Requirement format. + +2004-06-06 Chad Fowler + * bin/gem: install_stub is once again the default due to requests. + +2004-06-04 Chad Fowler + * lib/rubygems/specification.rb, lib/rubygems/doc_manager.rb: + Allow arbitrary files to be added for rdoc to run over them (as per + Jim's request). + +2004-06-04 Chad Fowler + * bin/gem: Reformatted --search and --list output such that + multiple versions of a gem are compressed into a single entry + (with version numbers in parentheses) + +2004-05-31 Jim Weirich + + * lib/rubygems/version.rb (Gem::Dependency): Dependency attribute + renamed to version_requirements (made plural). + (Gem::Version::bump): Added bump to implement pessimistic + operator. + (Gem::Version::Requirement): Added pessimistic operator to list of + operators. Operators now implemented using lambda. + + * lib/rubygems.rb (Kernel::require_gem): require_gem now takes an + array of requirement strings. + + * lib/rubygems/version.rb (Gem::Version::Requirement::initialize): + Simplified initialization by making parse a bit smarter. + (Gem::Version::Requirement::satisfied_by): Simplified by using + all? + (Gem::Version::Requirement::satisfy): Added explicit one + requirement satisfy test. + (Gem::Version::Requirement::parse): parse now returns a two + element string array (operator and version string). We don't + bother converting to an integer array during parsing. + +2004-05-31 18:38 chadfowler + + * gemspec now supports #rdoc_options, to which you can append + strings that will be passed to rdoc as additional options. + +2004-05-08 21:57 chadfowler + + * Using Gem::RubyGemsVersion to match the release number. If we + need to use this as an internal version format specifier in the + future, we can use the Gem::Version semantics. + +2004-05-30 14:33 gsinclair + + * bin/gem: Split --help into --help (basic), --help-options (what + --help used to be), and --help-examples. + +2004-04-30 15:57 chadfowler + + * bin/gem: --install-stub is no longer the default ;) + +2004-04-30 15:51 chadfowler + + * lib/rubygems/installer.rb: Rich Kilmer (who kicks butt) figured + out how to fix the library stub stuff. + +2004-04-29 19:12 chadfowler + + * lib/rubygems/doc_manager.rb: Dick Davies fixed a bug in the doc + generator. + +2004-04-29 13:41 gsinclair + + * lib/rubygems/installer.rb: Added skeleton code and comments to + uninstall stub apps and libs + +2004-04-29 12:20 gsinclair + + * install.rb: Don't install library stub for 'sources' + +2004-04-29 12:20 gsinclair + + * lib/rubygems/installer.rb: Improvements to library stub + installation: * don't overwrite existing file (emit warning) * + nice warning if there's a permission problem * observe + --[no-]install-stub flag (rather, observe the argument to + #install) + +2004-04-29 12:16 gsinclair + + * bin/gem: --install-stub is now the default + +2004-04-26 20:20 chadfowler + + * test/test_remote_installer.rb: Cleaning up after Gavin and his + test-breaking self. ;) + +2004-04-26 12:06 gsinclair + + * bin/gem, lib/rubygems/installer.rb, + lib/rubygems/remote_installer.rb: Installing a gem now causes a + library stub to be installed as well, allowing you to require + 'package' without knowing it's a gem. + +2004-04-25 23:18 chadfowler + + * lib/rubygems/: installer.rb, specification.rb: Prompt user if + trying to uninstall a gem that other gems *may* depend on. + +2004-04-25 09:27 chadfowler + + * test/test_remote_installer.rb: Changed expected test results to + match new (old) gem naming scheme--"ruby" doesn't appear as a + platform in the gem name. + +2004-04-25 05:50 gsinclair + + * bin/gem: Changed @directory -> @install_dir for clarity + +2004-04-25 05:47 gsinclair + + * bin/gem: Improved display of gems, platform-wise + +2004-04-25 05:46 gsinclair + + * lib/rubygems/specification.rb: Added documentation + +2004-04-25 04:17 jimweirich + + * test/functional.rb: Fixed functional test to properly name a Ruby + platform gem. + +2004-04-25 04:17 jimweirich + + * packages/sources/.cvsignore, test/data/one/.cvsignore: Ignore the + proper gem name. + +2004-04-25 04:17 jimweirich + + * lib/rubygems/specification.rb: Undefined several attributes that + were redefined to avoid warnings. + +2004-04-25 04:17 jimweirich + + * lib/rubygems.rb: Need to initialize @gem_home and @gem_path with + ||= to avoid warning. + +2004-04-25 03:40 gsinclair + + * lib/rubygems.rb, test/test_gempaths.rb: RUBY_GEMS -> GEM_PATH + (environment variable) + +2004-04-25 03:33 gsinclair + + * lib/rubygems/specification.rb: Pretty-print the specification + +2004-04-25 03:18 gsinclair + + * lib/rubygems/specification.rb: Handle platform in a (hopefully) + consistent manner + +2004-04-25 03:16 gsinclair + + * install.rb: Use return value from Builder#build to locate gem + file + +2004-04-25 03:09 gsinclair + + * lib/rubygems/builder.rb: Return file name from #build + +2004-04-25 02:32 gsinclair + + * lib/rubygems/specification.rb: Platform goes at the *end* of the + full name now. + +2004-04-22 06:19 chadfowler + + * test/test_remote_installer.rb: Fixed test to reflect fewer cache + sources :( + +2004-04-21 17:19 rich + + * lib/rubygems/remote_installer.rb: added support to download the + yaml index as a .Z (zlib compressed) file if it exists, then move + on to the plain yaml file if it does not + +2004-04-20 20:23 chadfowler + + * examples/application/an-app.gemspec, lib/rubygems/format.rb, + packages/sources/lib/sources.rb: Committed Dick Davies' patch to + fix broken tests. + +2004-04-18 01:51 gsinclair + + * bin/gem, lib/rubygems/doc_manager.rb: RDoc generation observes + 'rdoc' config file value + +2004-04-17 12:15 gsinclair + + * bin/gem: Improved 'build' error output + +2004-04-17 12:12 gsinclair + + * lib/: rubygems.rb, rubygems/remote_installer.rb, + rubygems/specification.rb, rubygems/validator.rb: All + gems-related exceptions now extend Gem::Exception + +2004-04-17 12:11 gsinclair + + * lib/rubygems/specification.rb: Improved handling of summary and + decription strings - convert to single line + +2004-04-17 01:09 gsinclair + + * bin/gem: Prevent remote install attempt if local install was + successful + +2004-04-17 00:49 gsinclair + + * lib/rubygems/builder.rb: Better formatted the output code + +2004-04-16 21:31 gsinclair + + * lib/rubygems/remote_installer.rb: Stoopid coding error (thanks + Kent Sibilev) + +2004-04-16 00:00 rich + + * lib/rubygems/installer.rb: added code to optionally use nmake + instead of make on win32 systems + +2004-04-15 20:12 gsinclair + + * bin/gem, lib/rubygems/remote_installer.rb: Clarified proxy + handling and interface: --[no-]http-proxy [URL] + +2004-04-13 00:16 jimweirich + + * bin/gem, test/bogussources.rb, test/functional.rb: Oops, missed + an instance of GEM_PATH in the gem binary. + +2004-04-12 21:28 jimweirich + + * lib/rubygems/cache.rb: Oops. Missed a GEM_PATH. + +2004-04-12 21:11 jimweirich + + * test/test_remote_installer.rb: removed setting of environment + variable for now. + +2004-04-12 21:09 jimweirich + + * Rakefile, lib/rubygems.rb, lib/rubygems/cache.rb, + lib/rubygems/installer.rb, packages/sources/.cvsignore, + scripts/runtest.rb, test/.cvsignore, test/bogussources.rb, + test/test_format.rb, test/test_gempaths.rb, + test/test_remote_installer.rb, test/test_validator.rb: Added + test/temp to the clobber list. Broke out tests into inline to + avoid test dependencies on rubygem. + +2004-04-12 07:52 chadfowler + + * lib/: rubygems.rb, rubygems/installer.rb, + rubygems/remote_installer.rb: Cleaning up output strings wrt + formating of "gem (version)". + +2004-04-12 07:41 chadfowler + + * lib/rubygems/installer.rb: Gavin Sinclair's uninstall bug. + +2004-04-11 15:26 jimweirich + + * test/data/one/: .cvsignore, one-ruby-0.0.1.gem: removed + one-ruby*.gem from source control. This gem is automatically + generated in testing. + +2004-04-11 10:50 chadfowler + + * bin/gem: Gavin Sinclair's test code enhancements + +2004-04-11 07:50 chadfowler + + * bin/gem, lib/rubygems/installer.rb, + lib/rubygems/remote_installer.rb, lib/rubygems/specification.rb, + test/insure_session.rb, test/test_remote_installer.rb, + test/data/one/one-ruby-0.0.1.gem: Gavin Sinclair patches to make + installer return types less ambiguous. + +2004-04-09 10:29 chadfowler + + * lib/rubygems/installer.rb, test/data/one/one-ruby-0.0.1.gem: gem + -u input validation patch by Ville Aine + +2004-04-07 07:49 chadfowler + + * bin/gem, lib/rubygems/cache.rb, test/data/one/one-ruby-0.0.1.gem: + Finally have passing tests. + +2004-04-07 07:24 chadfowler + + * lib/rubygems/remote_installer.rb, + test/data/one/one-ruby-0.0.1.gem: Allow default option to work on + remote dependency prompt. + +2004-04-07 07:05 chadfowler + + * lib/rubygems/remote_installer.rb, test/test_remote_installer.rb, + test/data/one/one-ruby-0.0.1.gem: Applied George Marrows' patch + to remote_install + +2004-04-07 06:23 chadfowler + + * bin/gem, test/data/one/one-ruby-0.0.1.gem: No longer "seeing" + double on remote searches + +2004-04-05 07:39 chadfowler + + * Rakefile, test/test_remote_installer.rb, + test/data/one/one-ruby-0.0.1.gem: remote_installer tests aren't + completely hosed anymore. + +2004-04-05 06:16 chadfowler + + * Rakefile, test/data/one/one-ruby-0.0.1.gem: Rake target for + running all tests (unit + functional) "alltests" + +2004-04-05 00:48 jimweirich + + * test/: insure_session.rb, data/one/README.one, + data/one/one-ruby-0.0.1.gem, data/one/one.gemspec, + data/one/lib/one.rb: added for functional tests + +2004-04-05 00:48 jimweirich + + * test/functional.rb: Moved session gem detection to insure_session + file. Modified functional tests to use gem command. Removed + some directory stuff because rake guarantees the starting + directory. Added test_info functional test. Added test_build + functional test. Added assert status. + +2004-04-05 00:48 jimweirich + + * lib/rubygems/remote_installer.rb: Changed exceptions to inherit + from RunTimeError + +2004-04-05 00:48 jimweirich + + * bin/gem: Changed Installer to RemoteInstaller in rubygems-info. + +2004-04-05 00:48 jimweirich + + * Rakefile: Added generated test gem to clobber list. Added + functional test target to rakefile. + +2004-04-04 21:17 chadfowler + + * packages/sources/lib/sources.rb: Added gems mirror at + http://gems.chadfowler.com + +2004-04-04 20:51 chadfowler + + * bin/gem, lib/rubygems/remote_installer.rb, test/functional.rb: + More improved error messages (don't show stack trace when using + bin/gem) + +2004-04-04 20:43 chadfowler + + * lib/rubygems/cache.rb: Only read specs that end in "gemspec". + The code doesn't handle non-gemspecs very well at all. + +2004-04-04 20:15 chadfowler + + * test/mock/gems/specifications/sources-0.0.1.gemspec: [no log + message] + +2004-04-04 20:09 chadfowler + + * test/mock/gems/gems/sources-0.0.1/lib/sources.rb: Rearranging + things a bit + +2004-04-04 20:02 chadfowler + + * bin/gem, lib/rubygems/remote_installer.rb, test/bogussources.rb, + test/functional.rb: Better error messages on unresolvable host. + +2004-04-04 12:50 chadfowler + + * redist/session.gem, test/bogussources.rb, test/functional.rb: + Added the beginnings of a functional test suite. + +2004-04-03 22:02 chadfowler + + * lib/rubygems/validator.rb: Just had to explicitly rescue + VerificationError. All is well. + +2004-04-03 22:01 chadfowler + + * lib/rubygems/validator.rb: Mauricio fixed a problem with alien + (just failed to update it when we changed the gem directory), but + now there's another issue I can't find. Anyway, this fix is + obviously needed. But alien is broken anyway. + +2004-04-03 21:57 chadfowler + + * install.rb, lib/rubygems/builder.rb: Batsman's bug report and + code for the bugs I introduced today. :) + +2004-04-03 09:50 chadfowler + + * lib/rubygems/specification.rb: Defaulting a spec's require_path + to [] to avoid downstream errors. + +2004-04-03 09:06 chadfowler + + * lib/rubygems/builder.rb, test/test_builder.rb: builder now + validates the gemspec. + +2004-04-03 08:48 chadfowler + + * lib/rubygems/specification.rb, test/test_specification.rb: Added + checking for gem specs to make sure they have all required + attributes. + +2004-04-03 08:06 chadfowler + + * gemspecs/rublog.gemspec: My original rublog gem was broken, in + that it didn't have a require_path. + +2004-04-02 07:48 chadfowler + + * lib/rubygems/remote_installer.rb: Prompt for installation of + dependencies. + + For now, there is a puts/gets in the middle of + remote_installer.rb This should probably be cleaned up later + (return control flow to the gem program to install the + dependencies, for example. + +2004-04-02 07:37 chadfowler + + * TODO: [no log message] + +2004-04-02 07:34 chadfowler + + * test/: simple_gem.rb, test_format.rb: Some things I forgot to cvs + add earlier. + +2004-04-02 07:29 chadfowler + + * example/: test.gemspec, lib/test.rb, lib/test/wow.rb: Removing + example directory in favor of "examples" directory (just better + organized). + +2004-04-02 07:26 chadfowler + + * test/test_all.rb: Removed test_all.rb. Rake is obviously a + better way to do it. + +2004-03-31 19:13 chadfowler + + * lib/rubygems/format.rb, lib/rubygems/installer.rb, + lib/rubygems/validator.rb, test/test_all.rb, + test/test_validator.rb: More tests and refactoring to support + them. + +2004-03-30 02:41 rich + + * lib/rubygems/installer.rb: allow passing parameters to extconf.rb + with: + + ruby -i blah.gem --local -- --with-option + + everything past the -- will go to the extconf.rb...just like + setup.rb + +2004-03-30 02:34 rich + + * lib/rubygems/: installer.rb, specification.rb: very initial + capability to build source gems. this only lets you build native + extensions so long as you do not have to specify --with- + directories + +2004-03-29 08:31 rich + + * install.rb: switched migration of old gems to new ./gems subdir + to use FileUtils rather than ftools...hope to fix reported win32 + error. + +2004-03-29 01:04 rich + + * lib/rubygems/doc_manager.rb: fixed bug in pathing based on new + directory structure + +2004-03-29 01:03 rich + + * lib/rubygems/remote_installer.rb: fixed bug in default for proxy + (should default to nil not true) + +2004-03-29 01:03 rich + + * bin/gem: updated with patch to allow for config file with minor + difference from gavin's patch which passes a nil to the + RemoteInstaller if the proxy does not exist + +2004-03-28 23:22 rich + + * install.rb: added code to migrate gems if they are in the old + directory structure + +2004-03-28 21:30 rich + + * install.rb, lib/rubygems.rb, lib/rubygems/installer.rb, + lib/rubygems/specification.rb: changed path of installed gems to + be: + + ruby/gems/1.8/gems + + which cleans up the root. + +2004-03-28 18:53 chadfowler + + * test/test_all.rb: This is the file to run for all of the tests. + + test_remote_installer is commented out for now. The open URI + patch that George gave us makes the code a lot nicer to look at, + but a little harder to test. + +2004-03-28 18:50 chadfowler + + * lib/rubygems/remote_installer.rb, test/test_cache.rb, + test/test_remote_installer.rb: Added some tests for cache search + +2004-03-28 12:19 chadfowler + + * bin/gem, lib/rubygems/validator.rb, test/test_validator.rb: Some + tests for the validator. + + Made the validator more testable. + +2004-03-28 09:30 chadfowler + + * bin/gem, lib/rubygems/validator.rb: Fixed a problem with false + alarms in the validator. + +2004-03-27 08:23 chadfowler + + * bin/gem: No longer have an option to pass http proxy host into + the gem program. Only reads it from the environment. This is + because George's patch (and open-uri) work this way, and I'm lazy + right now. + +2004-03-27 08:17 chadfowler + + * lib/rubygems/remote_installer.rb: George Marrows' nice patch to + remove a bunch of code from remote_installer. + + Our remote_installer tests are failing. We really need to start + paying attention to the test directory. :(` + +2004-03-24 23:26 jimweirich + + * install.rb: Do not install commands ending in ~. + +2004-03-24 23:25 jimweirich + + * lib/rubygems/specification.rb: Changed executables from accessor + to writer to avoid redefinition. + +2004-03-21 21:10 jimweirich + + * bin/gem: fixed uninitialized directory option + +2004-03-21 15:34 jimweirich + + * bin/gem: removed carriage returns that screwed up the #! line + +2004-03-21 09:02 chadfowler + + * bin/gem: Gavin's bin/gem refactoring. + +2004-03-20 17:03 jimweirich + + * bin/gem: added wrapping to gem listing + +2004-03-20 12:22 chadfowler + + * install.rb: More cleaning by Gavin Sinclair + +2004-03-20 12:08 chadfowler + + * examples/application/an-app.gemspec, + examples/application/bin/myapp, + examples/application/lib/somefunctionality.rb, lib/rubygems.rb, + lib/rubygems/installer.rb, lib/rubygems/specification.rb: Added + functionality for installing applications into the system bindir. + Needs cleaning and refactoring. + +2004-03-20 07:53 chadfowler + + * bin/gem: [no log message] + +2004-03-19 23:03 chadfowler + + * bin/gem: More intuitive default. + +2004-03-19 10:45 chadfowler + + * bin/gem: * Some minor rearranging of the test stuff so that + installation errors will also abort the test run * Don't try to + run tests if none are included with the gem + +2004-03-18 22:27 chadfowler + + * bin/gem, example/lib/test.rb, lib/rubygems/cache.rb, + lib/rubygems/specification.rb: * Preliminary support for: gem -i + blah-0.0.1.gem --run-tests Needs to be cleaned up considerably. + * Introduction of new gemspec metadata "unit_test_suite", which + will be require'd in order to load all unit tests + +2004-03-17 09:33 chadfowler + + * bin/gem: Applied Gavin Sinclair's patch to make help output + better. + +2004-03-16 21:55 chadfowler + + * bin/gem: Added --remote-list option for gem command to display + all gems on server. + +2004-03-16 21:50 chadfowler + + * bin/gem, doc/UserDoc.html: Fixed --help case inconsistencies and + documentation typos as per Scott Harper's email. + +2004-03-16 21:41 chadfowler + + * bin/gem: --list and --search display are the same. + +2004-03-16 21:33 chadfowler + + * bin/gem: Implemented some of Scott Harper's search suggestions: + case insensitive sort of returned gems and display description + with gem name in search results. + +2004-03-16 21:20 chadfowler + + * bin/gem, lib/rubygems/remote_installer.rb: http_proxy option + implemented + +2004-03-15 07:19 chadfowler + + * lib/rubygems/remote_installer.rb: Installation is now case + insensitive (like search) + +2004-03-15 07:07 chadfowler + + * TODO, bin/gem, lib/rubygems/remote_installer.rb: Better error + messages. updated TODO list. + +2004-03-14 21:02 chadfowler + + * bin/gem, lib/rubygems/remote_installer.rb: --dir didn't work with + remote-install. Now it does. + +2004-03-14 17:48 rich + + * bin/gem: fixed uninstall bug + +2004-03-14 17:18 rich + + * lib/rubygems/doc_manager.rb: changed to remove : on + win32...ug + +2004-03-14 16:15 rich + + * install.rb: fixed typo + +2004-03-14 16:13 rich + + * install.rb: generate cmd files + +2004-03-14 16:13 rich + + * bin/: gem.cmd, gem_server.cmd: now generate cmd files + +2004-03-14 15:52 chadfowler + + * bin/gem: Fixed a small bug with --gen-rdoc and the remote + installer. + +2004-03-14 15:38 chadfowler + + * lib/rubygems.rb: Back to version 1.0 ;) + +2004-03-14 15:36 chadfowler + + * lib/rubygems.rb: Updated rubygemsversion + +2004-03-14 15:31 chadfowler + + * README: credits + +2004-03-14 15:24 rich + + * README: initial readme + +2004-03-14 15:12 rich + + * doc/UserDoc.html: updated w/doc on documentation ;-) + +2004-03-14 15:01 rich + + * gemspecs/jabber4r.gemspec: added jabber4r gemspec + +2004-03-14 14:58 rich + + * bin/gem_server: change the documentation path to / + +2004-03-14 14:57 rich + + * install.rb: remove installing .rb files from ./bin + +2004-03-14 14:32 rich + + * doc/: DevDoc.txt, GemSpecification.txt, UserDoc.html, + UserDoc.txt: updated with latest docs + +2004-03-14 12:05 chadfowler + + * test/test_remote_installer.rb: Fixed tests. + +2004-03-14 11:31 chadfowler + + * lib/rubygems/specification.rb: Fixed bug that would manifest + itself if a gem creator put apostrophes/single-quotes in the gem + spec. + +2004-03-14 00:04 rich + + * doc/: UserDoc.html, UserDoc.txt: finished user's guide + +2004-03-13 21:48 rich + + * doc/: DevDoc.html, UserDoc.html, UserDoc.txt: updated user's + guide...will finish section on ruby's library mgt soon ;-) + +2004-03-13 20:48 chadfowler + + * doc/DevDoc.txt: Added documentation on making and distributing + gems + +2004-03-13 20:20 chadfowler + + * TODO: [no log message] + +2004-03-13 19:51 rich + + * doc/: DevDoc.html, DevDoc.txt, GemSpecification.html, + GemSpecification.txt, UserDoc.html, UserDoc.txt, doc.css, + makedoc.rb: added these doc (wiki) files from + http://rubygems.rubyforge.org/ + +2004-03-13 17:56 chadfowler + + * TODO, gemspecs/README, gemspecs/cgikit-1.1.0.gemspec, + gemspecs/linguistics.gemspec, gemspecs/ook.gemspec, + gemspecs/progressbar.gemspec, gemspecs/redcloth.gemspec, + gemspecs/rublog.gemspec, gemspecs/ruby-doom.gemspec, + gemspecs/rubyjdwp.gemspec, gemspecs/statistics.gemspec: Added + some gemspecs for actual RAA packages. + +2004-03-13 14:35 chadfowler + + * TODO, lib/rubygems/remote_installer.rb: Preliminary HTTP Proxy + support. Untested. + +2004-03-13 09:11 chadfowler + + * packages/sources/lib/sources.rb: Changed to point to rubyforge + +2004-03-12 22:40 rich + + * bin/generate_yaml_index.rb: generates a yaml index for a gems + repository + +2004-03-12 22:02 chadfowler + + * bin/gem_server: No longer serving gem specs. + +2004-03-12 21:42 chadfowler + + * TODO, bin/gem_server.cgi: We decided to trash gem_server.cgi in + favor of the static content generator Rich is working on. + +2004-03-12 21:15 chadfowler + + * TODO: [no log message] + +2004-03-12 20:11 chadfowler + + * bin/gem, lib/rubygems/installer.rb, + lib/rubygems/remote_installer.rb: Basic search funtionality in. + + Slight refactoring of Installer and RemoteInstaller + +2004-03-12 18:28 chadfowler + + * TODO: [no log message] + +2004-03-12 16:37 chadfowler + + * TODO: [no log message] + +2004-03-12 16:14 chadfowler + + * TODO: More TODO items + +2004-03-08 13:50 chadfowler + + * TODO, bin/gem_server, example/test.gemspec: Use rdoc templates + for HTML. Nearly XHTML compliant. + +2004-03-08 08:21 chadfowler + + * TODO: Added TODO list + +2004-03-08 08:12 chadfowler + + * lib/rubygems/validator.rb: Fixed a small (but crippling) bug in + the validator. + +2004-01-24 13:49 chadfowler + + * bin/gem, lib/rubygems.rb, lib/rubygems/cache.rb, + lib/rubygems/validator.rb, lib/rubygems/version.rb: More cleanup. + +2004-01-24 13:29 chadfowler + + * bin/gem, lib/rubygems/remote_installer.rb: A little cleaning of + (Remote)Installer inconsistencies + +2004-01-24 13:23 chadfowler + + * bin/gem: Removed the weird instance variable thing we had going + on. :) + +2004-01-07 17:34 chadfowler + + * bin/gem: removed old cruft + +2003-12-24 11:32 chadfowler + + * lib/rubygems/validator.rb: Gem validation was returning false + negatives (corrupted gems were not reporting their corruption). + +2003-12-18 14:18 chadfowler + + * lib/rubygems/cache.rb: Lyle noticed some out of date rdoc + documentation. Thanks Lyle! + +2003-12-03 08:05 chadfowler + + * install.rb: Gavin's patch for installing the files in bin/ on + rubygems installation. + +2003-11-30 00:36 chadfowler + + * lib/rubygems/specification.rb: Little warnings adjustment + +2003-11-29 17:27 jimweirich + + * Rakefile: added Rakefile to package + +2003-11-29 16:23 jimweirich + + * lib/rubygems/specification.rb: Removed defined? and initialized + @platform + +2003-11-29 16:08 jimweirich + + * lib/rubygems/specification.rb: Initialized @loaded and check + defined?(@platform) to silence some -w warnings. + +2003-11-29 09:26 rich + + * bin/gem_server, lib/rubygems/doc_manager.rb: updated to support + /doc URL to generate list of installed gems w/doc link for rdoc + generated links. + +2003-11-29 08:30 rich + + * lib/rubygems/doc_manager.rb: minor format change of error message + +2003-11-29 08:29 rich + + * bin/gem, lib/rubygems/builder.rb, lib/rubygems/doc_manager.rb, + lib/rubygems/installer.rb: instantiates DocManager now. errors + out on no install of RDoc. warns if .gemspec does not specify + having rdoc, but rdoc is generated + +2003-11-29 02:13 rich + + * bin/gem, lib/rubygems.rb, lib/rubygems/doc_manager.rb, + lib/rubygems/format.rb, lib/rubygems/installer.rb, + lib/rubygems/specification.rb: added capability to generate rdoc + on install of gem (--gen-rdoc). this doc is placed in + Gem.dir+doc+gem.full_name fixed but in installer when moving to + format (not calling each) added doc manager to add/remove + documenatation (right now only rdoc) + +2003-11-29 01:28 rich + + * lib/rubygems/specification.rb: should not define the attr_readers + for requirements/dependencies so undef is unnecessary + +2003-11-29 00:12 jimweirich + + * lib/rubygems/specification.rb: Undefing dependencies and + requirements removes warning when used with -w. + +2003-11-29 00:12 jimweirich + + * lib/rubygems.rb: Using defined?($GEM_PATH) avoids warning when + used with -w switch. + +2003-11-28 15:58 chadfowler + + * bin/gem, example/test.gemspec, lib/rubygems.rb, + lib/rubygems/installer.rb, lib/rubygems/validator.rb, + lib/rubygems/format.rb: Separated gem file reading into a + separate class/file. + +2003-11-28 15:20 rich + + * lib/rubygems/specification.rb: added has_rdoc?/has_rdoc methods + ... will be used to autogenerate rdoc + +2003-11-28 12:30 chadfowler + + * lib/rubygems/validator.rb: Rdoc added + +2003-11-28 11:51 chadfowler + + * bin/gem, lib/rubygems.rb, lib/rubygems/validator.rb: A little + rearranging of the validation/alien code. It's still ugly, but + at least it's in its own file now. :) + +2003-11-28 11:40 chadfowler + + * bin/gem: Removed a little cruft. + +2003-11-27 11:04 chadfowler + + * bin/gem: Print success message for each gem *not* containing + errors. + +2003-11-27 11:00 chadfowler + + * bin/gem, lib/rubygems/installer.rb: Preliminary support for gem + directory validation (--alien). Looks for bad or missing gem + files, missing spec files, files installed that aren't part of + the gem, checksum mismatches, etc. + + Very ugly code. Very ugly output. Work in progress. + +2003-11-24 11:58 rich + + * lib/rubygems/specification.rb: change full_name to include + platform + +2003-11-24 09:15 chadfowler + + * bin/gem: Option for HTTP Proxy server for remote-install. Not + yet implemented. + +2003-11-23 20:22 chadfowler + + * lib/rubygems/builder.rb: Removed a stray \" in builder's success + message + +2003-11-23 20:16 chadfowler + + * lib/rubygems/specification.rb: Leaving escape in but commenting + out its functionality because it hosed some other things up. + Need to revisit this for the case where: + + s.summary = "Chad's Thing" # It's the apostrophe + +2003-11-23 20:08 chadfowler + + * lib/rubygems/specification.rb: Escape quotes to avoid invalid + gemspecs in the #{Gem.dir}/specifications directory + +2003-11-23 19:21 chadfowler + + * bin/gem: Less ugly error message on file IO problems. + +2003-11-22 22:34 chadfowler + + * bin/gem: Very simple support for validating a gem. Will probably + move this into the libs eventually. + +2003-11-22 20:53 chadfowler + + * example/test.gemspec, lib/rubygems/builder.rb: Generate MD5 + checksum for gem and store it in the file. Will be used to + validate gem file before installation. + +2003-11-22 13:58 chadfowler + + * install.rb, lib/rubygems/remote_installer.rb, + packages/sources/sources.gemspec, + packages/sources/lib/sources.rb: remote-install sources are now + installed as a ruby gem at the time of rubygems installation. + sources gemspec included in the rubygems distribution. + +2003-11-22 12:52 chadfowler + + * bin/gem: Allow gem info by --version + +2003-11-22 11:50 chadfowler + + * lib/: rubygems.rb, rubygems/cache.rb: Fixed the bug I introduced + by fixing Rich's bug with gem cache caching. ;) + + Gem::Cache now has a #refresh! method. + +2003-11-22 10:16 chadfowler + + * bin/gem, lib/rubygems.rb, lib/rubygems/installer.rb, + lib/rubygems/remote_installer.rb: - Fixed bug in Gem.cache + (though we may want to revisit it for in-memory caching - Command + line configurable version for uninstall + +2003-11-22 00:28 rich + + * lib/rubygems/cache.rb: rdoc'd search method + +2003-11-22 00:24 rich + + * bin/gem, lib/rubygems/cache.rb, lib/rubygems/version.rb, + test/test_version_comparison.rb: removed search_by_name because + search does the same thing. version::requirement was updated to + that if you did not specific a version operation, it assumes an = + sign. updated tests accordingly + +2003-11-21 23:58 rich + + * lib/rubygems/: cache.rb, installer.rb: allow version to be + specified in uninstall (if called programatically) + +2003-11-21 23:52 rich + + * lib/: rubygems.rb, rubygems/cache.rb, rubygems/installer.rb, + rubygems/specification.rb: > moved all searching into cache..and + now search by name/version and return an + ordered list (.last == highest version). + > modified uninstaller to allow selecting a specific version to + uninstall if + multiple versions are installed. + > implemented comparison function on specification. + > changed require_gem to use new search of cache function + +2003-11-21 21:06 chadfowler + + * bin/gem, lib/rubygems/remote_installer.rb: Added ability to + specify optional version requirement for remote installations + +2003-11-21 20:25 chadfowler + + * test/test_remote_installer.rb: Removed carriage returns + +2003-11-21 19:04 chadfowler + + * bin/gem_server: Converted from getopts to optparse. + +2003-11-21 18:31 rich + + * lib/rubygems.rb: changed the order in which operations are + performed in require_gem. it now requires dependent gems prior + to adding the require_paths to a gem. otherwise we could have + had a LoadError on a dependent gem but the paths were already + added...potential problem + +2003-11-21 18:21 rich + + * lib/rubygems/installer.rb: updated to ensure + (specifications/cache) directories exist for a provided path + +2003-11-21 18:01 rich + + * lib/rubygems/specification.rb: updated rdoc + +2003-11-21 17:59 rich + + * bin/gem, lib/rubygems/builder.rb, lib/rubygems/installer.rb, + lib/rubygems/specification.rb: fixed various bugs with the + $GEM_PATH stuff, specifically on uninstall. Also, changed to + allow specifying a directory on install (--dir) and force install + (--force). Changed the builder generated ruby header to use + optparse. + +2003-11-21 07:03 chadfowler + + * lib/: rubygems.rb, rubygems/cache.rb, + rubygems/remote_installer.rb: Remote installation of dependencies + now works. It downloads all dependent gems or errors out. + + Fixed bug in require_gem. Wrong call to cache. + +2003-11-21 00:59 rich + + * bin/gem, example/test.gemspec, lib/rubygems.rb, + lib/rubygems/cache.rb, lib/rubygems/installer.rb, + lib/rubygems/specification.rb: added capability to support + multiple paths $GEM_PATH in Ruby and RUBY_GEMS in the ARGV. Lots + of changes were needed to support this. also added the --force + and --dir options to gem installtion + +2003-11-20 22:50 chadfowler + + * bin/gem: Switched to optparse. Not a whole lot gained, but it + seems to be the way Ruby is going. It's nice not to have to do + the "when" stuff, I guess. + +2003-11-19 23:41 chadfowler + + * lib/rubygems/: installer.rb, remote_installer.rb: Added + chadfowler.com to the hardcoded remote install list. + + Fixed a dangling YAML.load that broke uninstall. + +2003-11-19 22:56 rich + + * lib/rubygems.rb: fixed bug in loading rubygems + +2003-11-19 22:51 chadfowler + + * bin/: gem_server, gem_server.cgi: require 'yaml' :) + +2003-11-19 22:44 rich + + * lib/: rubygems.rb, rubygems/cache.rb, rubygems/specification.rb: + changed the format of stuff stored in the spec directory to ruby + instead of YAML. This allows us to not have to load yaml in + 'require_gem'. switched the specification list to a Cache + object. + +2003-11-19 21:56 rich + + * lib/rubygems/installer.rb: write the spec file in ruby and not in + yaml format (in the spec dir) + +2003-11-19 20:32 rich + + * lib/rubygems/specification.rb: added to_ruby method to generate a + ruby string that can be eval'ed in to build a Gem Specification + +2003-11-17 21:37 jimweirich + + * bin/: gem_server, gem_server.cgi: removed carriage returns + +2003-11-17 21:19 chadfowler + + * install.rb: Accidentally left some junk in the file. + +2003-11-17 19:50 dblack + + * test/test_version_comparison.rb: * Test cases for Version.rb + +2003-11-17 19:50 dblack + + * lib/rubygems/version.rb: * Split off tests into + rubygems/tests/test_version_comparison.rb + +2003-11-17 12:37 chadfowler + + * install.rb: Create File.join(Config::CONFIG['libdir'], "ruby", + "gems") + "specifications" and + "cache" during installation. + + Need to remove this from rubygems.rb and replace with + ensure_directory call. + +2003-11-17 12:29 rich + + * lib/rubygems/version.rb: rdoc added + +2003-11-17 11:31 rich + + * lib/rubygems/specification.rb: rdoc added + +2003-11-17 10:38 rich + + * lib/rubygems/: cache.rb, installer.rb: made rdoc comments and + renamed some variables + +2003-11-17 08:48 dblack + + * lib/rubygems/version.rb: * Added stricter checking of incoming + Requirement string + + * Added unit tests at end of file + +2003-11-17 07:32 chadfowler + + * bin/: gem_server, gem_server.cgi: Refactored gem_server program + and added an equivalent CGI version. + +2003-11-17 00:14 rich + + * lib/: rubygems.rb, rubygems/builder.rb, rubygems/cache.rb: added + rdoc documentation + +2003-11-16 17:15 chadfowler + + * bin/: gem.cmd, gem_server.cmd: Added some batch files for Windows + +2003-11-16 17:08 rich + + * install.rb, bin/gem, bin/gem_server, example/test.gemspec, + example/lib/test.rb, example/lib/test/wow.rb, lib/rubygems.rb, + lib/rubygems/builder.rb, lib/rubygems/cache.rb, + lib/rubygems/installer.rb, lib/rubygems/remote_installer.rb, + lib/rubygems/specification.rb, lib/rubygems/version.rb, + test/test_remote_installer.rb: Initial import developed at + RubyConf 2003 by: + + Rich Kilmer Chad Fowler David Black Paul Brannon Jim Weirich + +2003-11-16 17:08 rich + + * install.rb, bin/gem, bin/gem_server, example/test.gemspec, + example/lib/test.rb, example/lib/test/wow.rb, lib/rubygems.rb, + lib/rubygems/builder.rb, lib/rubygems/cache.rb, + lib/rubygems/installer.rb, lib/rubygems/remote_installer.rb, + lib/rubygems/specification.rb, lib/rubygems/version.rb, + test/test_remote_installer.rb: Initial revision + +Local variables: +indent-tabs-mode: t +tab-width: 8 +end: diff --git a/doc/rubygems/History.txt b/doc/rubygems/History.txt new file mode 100644 index 0000000000..86ea9398f2 --- /dev/null +++ b/doc/rubygems/History.txt @@ -0,0 +1,799 @@ +=== 1.3.5 / 2009-07-21 + +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. + +=== 1.3.4 / 2009-05-03 + +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. + +=== 1.3.3 / 2009-05-04 + +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. + +Deprecation Notices: + +* Gem::manage_gems has been removed. +* Time::today has been removed early. There was no way to make it warn and be + easy to override with user code. + +=== 1.3.2 / 2009-04-15 + +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. + +Deprecation Notices: + +* Gem::manage_gems has been removed. +* Time::today will be removed in RubyGems 1.4. + +Special thanks to Chad Wooley for backwards compatibility testing and Luis +Lavena and Daniel Berger for continuing windows support. + +=== 1.3.1 / 2008-10-28 + +Bugs fixed: + +* Disregard ownership of ~ under Windows while creating ~/.gem. Fixes + issues related to no uid support under Windows. +* Fix requires for Gem::inflate, Gem::deflate, etc. +* Make Gem.dir respect :gemhome value from config. (Note: this feature may be + removed since it is hard to implement on 1.9.) +* Kernel methods are now private. Patch #20801 by James M. Lawrence. +* Gem::location_of_caller now behaves on Windows. Patch by Daniel Berger. +* Silence PATH warning. + +Deprecation Notices: + +* Gem::manage_gems will be removed on or after March 2009. + +=== 1.3.0 / 2008-09-25 + +New features: + +* 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. + +Deprecation Notices: + +* Gem::manage_gems now warns when called. It will be removed on or after March + 2009. + +Bugs Fixed: + +* 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. + +Other Changes Include: + +* `gem help install` now describes _version_ argument to executable stubs +* `gem help environment` describes environment variables and ~/.gemrc and + /etc/gemrc +* On-disk gemspecs are now read in UTF-8 and written with a UTF-8 magic comment +* Rakefile + * If the SETUP_OPTIONS environment variable is set, pass its contents as + arguments to setup.rb +* lib/rubygems/platform.rb + * Remove deprecated constant warnings and really deprecate them. (WIN32, + etc). +* lib/rubygems/remote_fetcher.rb + * Now uses ~/.gem/cache if the cache dir in GEM_HOME is not writable. +* lib/rubygems/source_index.rb + * Deprecate options to 'search' other than Gem::Dependency instances and + issue warning until November 2008. +* setup.rb + * --destdir folder structure now built using Pathname, so it works for + Windows platforms. +* test/* + * Fixes to run tests when under test/rubygems/. Patch by Yusuke ENDOH + [ruby-core:17353]. +* test/test_ext_configure_builder.rb + * Locale-free patch by Yusuke Endoh [ruby-core:17444]. + +=== 1.2.0 / 2008-06-21 + +New features: + +* RubyGems no longer performs bulk updates and instead only fetches the gemspec + files it needs. Alternate sources will need to upgrade to RubyGems 1.2 to + allow RubyGems to take advantage of the new metadata updater. If a pre 1.2 + remote source is in the sources list, RubyGems will revert to the bulk update + code for compatibility. +* RubyGems now has runtime and development dependency types. Use + #add_development_dependency and #add_runtime_dependency. All typeless + dependencies are considered to be runtime dependencies. +* RubyGems will now require rubygems/defaults/operating_system.rb and + rubygems/defaults/#{RBX_ENGINE}.rb if they exist. This allows packagers and + ruby implementers to add custom behavior to RubyGems via these files. (If + the RubyGems API is insufficient, please suggest improvements via the + RubyGems list.) +* /etc/gemrc (and windows equivalent) for global settings +* setup.rb now handles --vendor and --destdir for packagers +* `gem stale` command that lists gems by last access time + +Bugs Fixed: + +* File modes from gems are now honored, patch #19737 +* Marshal Gem::Specification objects from the future can now be loaded. +* A trailing / is now added to remote sources when missing, bug #20134 +* Gems with legacy platforms will now be correctly uninstalled, patch #19877 +* `gem install --no-wrappers` followed by `gem install --wrappers` no longer + overwrites executables +* `gem pristine` now forces reinstallation of gems, bug #20387 +* RubyGems gracefully handles ^C while loading .gemspec files from disk, bug + #20523 +* Paths are expanded in more places, bug #19317, bug #19896 +* Gem::DependencyInstaller resets installed gems every install, bug #19444 +* Gem.default_path is now honored if GEM_PATH is not set, patch #19502 + +Other Changes Include: + +* setup.rb + * stub files created by RubyGems 0.7.x and older are no longer removed. When + upgrading from these ancient versions, upgrade to 1.1.x first to clean up + stubs. + * RDoc is no longer required until necessary, patch #20414 +* `gem server` + * Now completely matches the output of `gem generate_index` and + has correct content types + * Refreshes from source directories for every hit. The server will no longer + need to be restarted after installing gems. +* `gem query --details` and friends now display author, homepage, rubyforge url + and installed location +* `gem install` without -i no longer reinstalls dependencies if they are in + GEM_PATH but not in GEM_HOME +* Gem::RemoteFetcher now performs persistent connections for HEAD requests, + bug #7973 + +=== 1.1.1 / 2008-04-11 + +Bugs Fixed: + +* Gem.prefix now returns non-nil only when RubyGems was installed outside + sitelibdir or libdir. +* The `gem server` gem list now correctly links to gem details. +* `gem update --system` now passes --no-format-executable to setup.rb. +* Gem::SourceIndex#refresh! now works with multiple gem repositories. +* Downloaded gems now go into --install-dir's cache directory. +* Various fixes to downloading gem metadata. +* `gem install --force` now ignores network errors too. +* `gem pristine` now rebuilds extensions. +* `gem update --system` now works on virgin Apple ruby. +* Gem::RemoteFetcher handles Errno::ECONNABORTED. +* Printing of release notes fixed. + +=== 1.1.0 / 2008-03-29 + +New features: + +* RubyGems now uses persistent connections on index updates. Index updates are + much faster now. +* RubyGems only updates from a latest index by default, cutting candidate gems + for updates to roughly 1/4 (at present). Index updates are even faster + still. + * `gem list -r` may only show the latest version of a gem, add --all to see + all gems. +* `gem spec` now extracts specifications from .gem files. +* `gem query --installed` to aid automation of checking for gems. + +Bugs Fixed: + +* RubyGems works with both Config and RbConfig now. +* Executables are now cleaned upon uninstall. +* You can now uninstall from a particular directory. +* Updating from non-default sources fixed. +* Executable stubs now use ruby install name in shebang. +* `gem unpack` checks every directory in Gem.path now. +* `gem install` now exits with non-zero exit code when appropriate. +* `gem update` only updates gems that need updates. +* `gem update` doesn't force remote-only updates. +* `gem update` handles dependencies properly when updating. +* Gems are now loaded in Gem.path order. +* Gem stub scripts on windows now work outside Gem.bindir. +* `gem sources -r` now works without network access. + +Other Changes Include: + +* RubyGems now requires Ruby > 1.8.3. +* Release notes are now printed upon installation. +* `gem env path` now prints a usable path. +* `gem install` reverts to local-only installation upon network error. +* Tar handling code refactoring and cleanup. +* Gem::DependencyInstaller's API has changed. + +For a full list of changes to RubyGems, see the ChangeLog file. + +=== 1.0.1 / 2007-12-20 + +Bugs Fixed: + +* Installation on Ruby 1.8.3 through 1.8.5 fixed +* `gem build` on 1.8.3 fixed + +Other Changes Include: + +* Since RubyGems 0.9.5, RubyGems is no longer supported on Ruby 1.8.2 or older, + this is official in RubyGems 1.0.1. + +=== 1.0.0 / 2007-12-20 + +Major New Features Include: + +* RubyGems warns about various problems with gemspecs during gem building +* More-consistent versioning for the RubyGems software + +Other Changes Include: + +* Fixed various bugs and problems with installing gems on Windows +* Fixed using `gem server` for installing gems +* Various operations are even more verbose with --verbose +* Built gems are now backwards compatible with 0.9.4 +* Improved detection of RUBYOPT loading rubygems +* `ruby setup.rb` now has a --help option +* Gem::Specification#bindir is now respected on installation +* Executable stubs can now be installed to match ruby's name, so if ruby is + installed as 'ruby18', foo_exec will be installed as 'foo_exec18' +* `gem unpack` can now unpack into a specific directory with --target +* OpenSSL is no longer required by default + +Deprecations and Deletions: + +* Kernel#require_gem has been removed +* Executables without a shebang will not be wrapped in a future version, this + may cause such executables to fail to operate on installation +* Gem::Platform constants other than RUBY and CURRENT have been removed +* Gem::RemoteInstaller was removed +* Gem::Specification#test_suite_file and #test_suite_file= are deprecated in + favor of #test_file and #test_file= +* Gem::Specification#autorequire= has been deprecated +* Time::today will be removed in a future version + +=== 0.9.5 / 2007-11-19 + +Major New Features Include: + +* Platform support +* Automatic installation of platform gems +* New bandwidth and memory friendlier index file format +* "Offline" mode (--no-update-sources) +* Bulk update threshold can be specified (-B, --bulk-threshold) +* New `gem fetch` command +* `gem` now has "really verbose" output when you specify -v +* Improved stubs and `gem.bat` on mswin, including better compatiblity + with the One-Click Installer. + +Other Changes Include: + +* Time::today is deprecated and will be removed at a future date +* Gem::manage_gems is deprecated and will be removed at a future date +* `gem install --include-dependencies` (-y) is now deprecated since it is the + default, use --ignore-dependencies to turn off automatic dependency + installation +* Multi-version diamond dependencies only are installed once +* Processing a YAML bulk index update takes less memory +* `gem install -i` makes sure all depenencies are installed +* `gem update --system` reinstalls into the prefix it was originally installed + in +* `gem update --system` respects --no-rdoc and --no-ri flags +* HTTP basic authentication support for proxies +* Gem::Specification#platforms should no longer be a String, use + Gem::Platform::CURRENT when building binary gems instead +* `gem env` has more diagnostic information +* require 'rubygems' loads less code +* sources.gem is gone, RubyGems now uses built-in defaults +* `gem install --source` will no longer add --source by default, use `gem + sources --add` to make it a permanent extra source +* `gem query` (list) no longer prints details by default +* Exact gem names are matched in various places +* mkrf extensions are now supported +* A gem can depend on a specific RubyGems version +* `gem_server` is now `gem server` +* `gemlock` is now `gem lock` +* `gem_mirror` is now `gem mirror` +* `gemwhich` is now `gem which` +* `gemri` is no longer included with RubyGems +* `index_gem_repository.rb` is now `gem generate_index` +* `gem` performs more validation of parameters +* Custom rdoc styles are now supported +* Gem indexer no longer removes quick index during index creation +* Kernel#require only rescues a LoadError for the file being required now +* `gem dependencies` can now display some information for remote gems +* Updating RubyGems now works with RUBYOPT=-rubygems + +Special thanks to: + +* Daniel Berger +* Luis Lavena +* Tom Copeland +* Wilson Bilkovich + +=== 0.9.4 / 2007-05-23 + +If you are experiencing problems with the source index (e.g. strange +"No Method" errors), or problems with zlib (e.g. "Buffer Error" +messsage), we recommend upgrading to RubyGems 0.9.4. + +Bug Fixes Include: + +* Several people have been experiencing problems with no method errors + on the source index cache. The source index cache is now a bit more + self healing. Furthermore, if the source index cache is + irreparable, then it is automatically dropped and reloaded. +* The source cache files may now be dropped with the "gem sources + --clear-all" command. (This command may require root is the system + source cache is in a root protected area). +* Several sub-commands were accidently dropped from the "gem" command. + These commands have been restored. + +=== 0.9.3 / 2007-05-10 + +Bug Fixes Include: + +The ZLib library on Windows will occasionally complains about a buffer error +when unpacking gems. The Gems software has a workaround for that problem, but +the workaround was only enabled for versions of ZLib 1.2.1 or earlier. We +have received several reports of the error occuring with ZLib 1.2.3, so we +have permanently enabled the work around on all versions. + +=== 0.9.2 / 2007-02-05 + +Bug Fixes Include: + +* The "unpack" command now works properly. +* User name and password are now passed properly to the authenticating + proxy when downloading gems. + +=== 0.9.1 / 2007-01-16 + +See ChangeLog + +=== 0.9.0 / 2006-06-28 + +Finally, the much anticipated RubyGems version 0.9.0 is now available. +This release includes a number of new features and bug fixes. The +number one change is that we can now download the gem index +incrementally. This will greatly speed up the gem command when only a +few gems are out of date. + +Major Enhancments include: + +* The gem index is now downloaded incrementally, only updating entries + that are out of date. If more than 50 entries are out of date, we + revert back to a bulk download. +* Several patches related to allowing RubyGems to work with + authenticating proxies (from Danie Roux and Anatol Pomozov). Just + put the user and password in the proxy URL (e.g. -p + http://user:password@proxy.address.com:8080) or use the + HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables. +* The gem unpack command can now accept a file path rather than just a + install gem name. +* Both RI and RDOC documents are now generated by default. +* A gemri command is included to read gem RI docs (only needed for + Ruby 1.8.4 or earlier). + +Minor enhancements include: + +* Verison 0.0.0 is now a valid gem version. +* Better detection of missing SSL functionality. +* SSL is not required if the security policy does not require + signature checking. +* Rake built extensions are now supported (Tilman Sauerbeck). +* Several autorequire bug fixes. +* --traceback is now an alias for --backtrace (I can never remember + which one it is). +* SAFE=1 compatibility fixes. +* .rbw is now a supported suffix for RubyGem's custom require. +* Several Ruby 1.9 compatibility fixes (Eric Hodel). + +Bug Fixes: + +* Added dashes to gemspecs generated in Ruby 1.8.3. This solves some + cross-Ruby version compatibility issues. +* Fixed bug where the wrong executables could be uninstalled (Eric + Hodel). +* Fixed bug where gem unpack occasionally unpacked the wrong gem. +* Fixed bug where a fatal error occured when permissions on .gemrc + were too restrictive (reported by Luca Pireddu). +* Fixed prefix handling for native expressions (patch by Aaron Patterson). +* Fixed several Upgrade => Update typos. + +=== 0.8.11 / 2005-07-13 + +* -y is a synonym for --include-dependencies. +* Better handling of errors in the top level rescue clause. +* Package list command (e.g. gem inspect GEM). +* .gemrc now allows cvsrc-like options to set defaults per subcommand. +* The autorequire gem spec field will now accept a list. +* Substituted Time for Date in specs, increasing performance + dramatically. +* Fixed reported bug of gem directories ending in "-" (reported by + Erik Hatcher). +* Fixed but in installer that caused dependency installation to not + work. +* Added Paul Duncan's gem signing patch. +* Added Mark Hubbart's Framework patch (for better integration with OS + X). +* Added David Glasser's install-from-mirror patch. +* Additional internal structural cleanup and test reorganization. + +=== 0.8.10 / 2005-03-27 + +* In multi-user environments, it is common to supply mulitple versions of gems + (for example Rails), allowing individual users to select the version of the + gem they desire. This allows a user to be insulated from updates to that + gem. RubyGems 0.8.10 fixes a problem where gems could occasionally become + confused about the current versions of libraries selected by the user. +* The other annoying bug is that if there are any existing rubygems-update gems + installed, then the "gem update --system" command will download a new + update, but install the latest update prior to the download. + +=== 0.8.9 + +Never released + +=== 0.8.8 / 2005-03-14 + +* Moved the master definition of class Requirement back under version. + Kept the body of Requirement under Gem. + +=== 0.8.7 / 2005-03-14 + +Even though it has only been a few weeks since that last release, +there are quite a number of new features in 0.8.7. A complete list of +new features will be given below, but here is a summary of the hot +items. + +* The bug that prevented some users from installing rails has been + squashed. A big thanks to Bill Guindon (aGorilla) for helping track + that one down. + +There are several new commands available on the gem command: + +* gem cleanup GEMNAME -- Cleanup (uninstall) all the old versions of + gem. If the gem name is omitted, the entire repository is cleaned. +* gem dependency GEMNAME -- Show the dependencies for the named gems. + This is really helpful when trying to figure out what gem needs what + other gem. + +There changes to the existing commands as well. + +* gem uninstall is much smarter about removing gems from the + repository. Lists of gems are now uninstalled in proper dependency + order (ie. if A depends on B, A is uninstalled first). Also, + warnings about broken dependencies occur only when removing the + *last* gem that supports a dependency is removed. + +Both gem install and gem uninstall support some new command line +options that can reduce the amount of yes/no queries given the user. +For install we have: + +* --ignore-dependencies -- Only install requests gems, no + dependendecies are automatically installed. +* --include-dependencies -- Automatically install dependencies, + without confirmation. + +For gem uninstall, the new options are: + +* --all -- Uninstall all matching gems without confirmation. +* --ignore-dependencies -- Uninstall, even if dependencies are broken. +* --executables -- Remove executables without confirmation + +Under general cleanup, gems will not, by default, run RDoc on packages +that do not have the RDoc flag set. + +And finally there is a new library file 'gemconfigure' to aid in +writing version sensitive applications (without undue dependencies on +RubyGems); and 'gemwhich', a short script to locate libraries in the +file system. You can read more about them here: + +* gemconfigure: http://docs.rubygems.org/read/chapter/4#page73 +* gemwhich: http://docs.rubygems.org/read/chapter/17 + +=== 0.8.6 / 2005-02-27 + +* Fixed a small bug with shebang construction + +=== 0.8.5 / 2005-02-26 + +Do you know how you used to dread getting the following message while +installing gems? + + Updating Gem source index for: http://gems.rubyforge.org + +It could take up to 30 seconds (on my machine, even worse on others) for +that crazy source index to update. + +This latest release of RubyGems speeds that wait time up considerably. +The following table gives the following times for installing RedCloth +with a required source index update on three system we had available to +us. No RDoc generation was included in the following times. + + RubyGems Linux Mac OSX Windows + 0.8.4 33 secs 73 secs 58 secs + 0.8.5 8 secs 14 secs 21 secs + +The new caching code is at least 3x faster than previous versions. Woo +Hoo! + +=== 0.8.4 / 2005-01-01 + +* Rubygems 0.8.3's installer was broken unless you already had an older + version of RubyGems installed. That's fixed. +* Change in the way Gem::Specification internally deals with lazy attributes + and defaults, bringing (with some loadpath_manager changes) a fairly + significant increase in speed. +* Support for lower-cased Gem file names (for you, Paul Duncan :) +* Erik Veenstra's patch for making Gem versions sortable. + +=== 0.8.3 / 2004-12-07 + +No real earth shattering news here, but there were a number of really +annoying issues involving other libraries that RubyGems depends upon. +0.8.3 contains some workarounds for these issues. In particular: + +* Added workaround for the null byte in Dir string issue. (see + http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121702). + (Thanks to Mauricio Fernández for the quick response on this one). +* Added workaround for old version of Zlib on windows that caused + Ruwiki to fail to install. (see + http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121770) +* Added workaround for large YAML file issues. (We dynamically cut + down the size of the source index YAML file and seem to have worked + around immediate issues. + +There has been some minor usability enhancements and changes ... + +* A user specific source index cache can be used when the site-wide + cache is unwritable (i.e. because you are running as a non-admin). + This *greatly* speeds up gem commands run in non-admin mode when the + site-wide cache is out of date. +* The gem command now used an HTTP HEAD command to detect if the + server's source index needs to be downloaed. +* gem check gemname --test will run unit tests on installed gems that + have unit tests. +* Multiple gem names are allowed on the gem install command line. + This means you can do: + + gem install rake rails needle postgres-pr pimki + + (Ok, you get the idea) +* Multiple authors my be specified in a Gem spec. +* Switched to using setup.rb (rather than a custom install script) for + the installation of RubyGems itself. If you have installed RubyGems + before, double check the installation instructions and make sure you + use setup.rb instead of install.rb. +* Ryan Davis has provided a patch so you can use an env variable + (GEM_SKIP), to tell loadpath_manager not to load gems of those + names. This was useful for him while testing libs that he had in + development. + +=== 0.8.1 / 2009-09-14 + +* Quick release to capture some bug fixes. + +=== 0.8.0 / 2009-09-12 + +* Remove need for library stubs. Set the RUBYOPT environment variable to + include "rrubygems", and a normal require will find gem files. Continue to + use 'require_gem gem_name, version' to specify gem versions. +* Deprecated "test_suite_file" gemspec attribute in favor of "test_files" array. +* Generates rdoc by default on installs. +* Adopted tar/gzip file format, thanks to Mauricio Fernandez. +* "gem rdoc" allows generation of rdoc after gem installation (will add a "gem + test" +* Application stubs can now accept an optional parameter of _VERSION_ that will + run an arbitrary version of the application requested. +* Various bug fixes +* Various platform-independency improvements +* "gem spec --all" displays spec info for all installed version of a given gem. +* Dynamic caching of sources +* Support for user-definable sources on the command line (thanks Assaph Mehr) +* More intelligent support for platform-dependent gems. Use Platform::CURRENT + when building a gem to set its platform to the one you're building on. + Installation displays a choice of platform-dependent gems, allowing the user + to pick. +* Added "gem unpack" for "unpacking" a gem to the current directory + +=== 0.7.0 / 2004-07-09 + +See ChangeLog + +=== 0.6.0 / 2004-06-08 + +* Collapse output of --search and --list (and gem_server) operations so that + each gem is listed only once, with each of its versions listed on the same + line. +* bin/gem: new --upgrade-all option allows one to upgrade every installed gem +* new #required_ruby_version attribute added to gem specification for + specifying a dependency on which version of ruby the gem needs. Format it + accepts is the same as the Gem::Version::Requirement format: + + spec.required_ruby_version = "> 1.8.0" +* --install-stub defaults to true, so library stubs are created + +=== 0.5.0 / 2004-06-06 + +* Jim added the ability to specify version constraints to avoid API + incompatibilities. This has been the subject of much debate for the past + couple of months, with many ideas and code contributed by Eivind Eklund and + Mauricio Fernandez. The following set of assertions shows how it works: + + assert_inadequate("1.3", "~> 1.4") + assert_adequate( "1.4", "~> 1.4") + assert_adequate( "1.5", "~> 1.4") + assert_inadequate("2.0", "~> 1.4") # This one is key--the new operator + # disallows major version number + # differences. +* Group gem search output when multiple versions exist for a given gem: + + activerecord (0.7.8, 0.7.7, 0.7.6, 0.7.5) + Implements the ActiveRecord pattern for ORM. +* Add arbitrary RDoc-able files via gemspec (not just Ruby source files) for + people who have, for example, README.rdoc in their distributions. Add to + gemspec via: spec.extra_rdoc_files = ["list", "of", "files"]. Ruby files are + automatically included. +* Some small bug fixes + +=== 0.4.0 / 2004-05-31 + +* Minor bug fixes including Windows compatability issues + +=== 0.3.0 / 2004-04-30 + +* Cleanup of command-line arguments and handling. Most commands accept a + --local or --remote modifier. +* Creation of Application Gems (packages that include executable programs). + See http://rubygems.rubyforge.org/wiki/wiki.pl?DeveloperGuide for information + on how to use it. +* Basic functionality for installing binary gems from source (:extensions + property of gem specification holds an array of paths to extconf.rb files to + be used for compilation) +* Install library "stub" allowing a normal 'require' to work (which then does + the rubygems require and 'require_gem' +* --run-tests runs the test suite specified by the "test_suite_file" property + of a gem specification +* HTTP Proxy support works. Rewrite of HTTP code. +* Unit and functional tests added (see Rakefile). +* Prompt before remote-installing dependencies during gem installation. +* Config file for storing preferences for 'gem' command usage. +* Generally improved error messages (still more work to do) +* Rearranged gem directory structure for cleanliness. + +=== 0.2.0 / 2004-03-14 + +* Initial public release + diff --git a/doc/rubygems/LICENSE.txt b/doc/rubygems/LICENSE.txt new file mode 100644 index 0000000000..db88c5e118 --- /dev/null +++ b/doc/rubygems/LICENSE.txt @@ -0,0 +1,53 @@ +RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim +Weirich and others. You can redistribute it and/or modify it under +either the terms of the GPL (see the GPL.txt file), or the conditions +below: + + 1. You may make and give away verbatim copies of the source form of the + software without restriction, provided that you duplicate all of the + original copyright notices and associated disclaimers. + + 2. You may modify your copy of the software in any way, provided that + you do at least ONE of the following: + + a) place your modifications in the Public Domain or otherwise + make them Freely Available, such as by posting said + modifications to Usenet or an equivalent medium, or by allowing + the author to include your modifications in the software. + + b) use the modified software only within your corporation or + organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided. + + d) make other distribution arrangements with the author. + + 3. You may distribute the software in object code or executable + form, provided that you do at least ONE of the following: + + a) distribute the executables and library files of the software, + together with instructions (in the manual page or equivalent) + on where to get the original distribution. + + b) accompany the distribution with the machine-readable source of + the software. + + c) give non-standard executables non-standard names, with + instructions on where to get the original software distribution. + + d) make other distribution arrangements with the author. + + 4. You may modify and include the part of the software into any other + software (possibly commercial). + + 5. The scripts and library files supplied as input to or produced as + output from the software do not automatically fall under the + copyright of the software, but belong to whomever generated them, + and may be sold commercially, and may be aggregated with this + software. + + 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. diff --git a/doc/rubygems/README b/doc/rubygems/README new file mode 100644 index 0000000000..0e42112760 --- /dev/null +++ b/doc/rubygems/README @@ -0,0 +1,40 @@ += RubyGems + +* http://rubygems.rubyforge.org/ +* http://rubyforge.org/projects/rubygems +* http://rubygems.org/ + +== DESCRIPTION + +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 install --system # you might need to be an administrator or root + +NOTE: RubyGems 1.1 and 1.2 have problems upgrading when there is no +rubygems-update installed. You will need to use the following instructions +if you see "Nothing to update". + +If you have an older version of RubyGems installed, then you can still +do it in two steps: + + $ gem install rubygems-update # again, might need to be admin/root + $ update_rubygems # ... here too + +If you don't have any RubyGems install, there is still the pre-gem approach to +getting software, doing it manually: + +1. Download from: http://rubyforge.org/frs/?group_id=126 +2. Unpack into a directory and cd there +3. Install with: ruby setup.rb # you may need admin/root privilege + +For more details and other options, see: + + ruby setup.rb --help + diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 5faca8695f..06ea950c64 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -5,13 +5,14 @@ # See LICENSE.txt for permissions. #++ -require 'rubygems/rubygems_version' require 'rubygems/defaults' require 'thread' require 'etc' module Gem + RubyGemsVersion = VERSION = '1.3.5' + ## # Raised when RubyGems is unable to load or activate a gem. Contains the # name and version requirements of the gem that either conflicts with @@ -381,7 +382,7 @@ module Gem raise Gem::Exception, msg end - File.join(spec.full_gem_path, spec.bindir, exec_name).sub(/.*\s.*/m, '"\&"') + File.join(spec.full_gem_path, spec.bindir, exec_name) end ## diff --git a/lib/rubygems/command.rb b/lib/rubygems/command.rb index 3a1e2ac872..dab4366270 100644 --- a/lib/rubygems/command.rb +++ b/lib/rubygems/command.rb @@ -49,7 +49,7 @@ class Gem::Command def self.build_args @build_args ||= [] end - + def self.build_args=(value) @build_args = value end @@ -197,7 +197,7 @@ class Gem::Command # def usage # "#{program_name} FILE [FILE ...]" # end - # + # # def arguments # "FILE name of file to find" # end diff --git a/lib/rubygems/commands/setup_command.rb b/lib/rubygems/commands/setup_command.rb index 3220a7497c..5bd5ebd468 100644 --- a/lib/rubygems/commands/setup_command.rb +++ b/lib/rubygems/commands/setup_command.rb @@ -88,6 +88,8 @@ By default, this RubyGems will install gem as: end def execute + @verbose = Gem.configuration.really_verbose + install_destdir = options[:destdir] unless install_destdir.empty? then @@ -113,21 +115,29 @@ By default, this RubyGems will install gem as: remove_source_caches install_destdir + say "RubyGems #{Gem::VERSION} installed" + install_rdoc say - say "-" * 78 - say + if @verbose then + say "-" * 78 + say + end - release_notes = File.join Dir.pwd, 'doc', 'release_notes', - "rel_#{Gem::RubyGemsVersion.gsub '.', '_'}.rdoc" + release_notes = File.join Dir.pwd, 'History.txt' - if File.exist? release_notes then - say File.read(release_notes) - else - say "Oh-no! Unable to find release notes!" - say "Looked in: #{release_notes}" if Gem.configuration.really_verbose - end + release_notes = if File.exist? release_notes then + open release_notes do |io| + text = io.gets '===' + text << io.gets('===') + text[0...-3] + end + else + "Oh-no! Unable to find release notes!" + end + + say release_notes say say "-" * 78 @@ -145,7 +155,7 @@ By default, this RubyGems will install gem as: end def install_executables(bin_dir) - say "Installing gem executable" + say "Installing gem executable" if @verbose @bin_file_names = [] @@ -203,7 +213,7 @@ TEXT end def install_lib(lib_dir) - say "Installing RubyGems" + say "Installing RubyGems" if @verbose Dir.chdir 'lib' do lib_files = Dir[File.join('**', '*rb')] @@ -226,23 +236,23 @@ TEXT if File.writable? gem_doc_dir and (not File.exist? rubygems_doc_dir or File.writable? rubygems_doc_dir) then - say "Removing old RubyGems RDoc and ri" + say "Removing old RubyGems RDoc and ri" if @verbose Dir[File.join(Gem.dir, 'doc', 'rubygems-[0-9]*')].each do |dir| rm_rf dir end if options[:ri] then ri_dir = File.join rubygems_doc_dir, 'ri' - say "Installing #{rubygems_name} ri into #{ri_dir}" + say "Installing #{rubygems_name} ri into #{ri_dir}" if @verbose run_rdoc '--ri', '--op', ri_dir end if options[:rdoc] then rdoc_dir = File.join rubygems_doc_dir, 'rdoc' - say "Installing #{rubygems_name} rdoc into #{rdoc_dir}" + say "Installing #{rubygems_name} rdoc into #{rdoc_dir}" if @verbose run_rdoc '--op', rdoc_dir end - else + elsif @verbose then say "Skipping RDoc generation, #{gem_doc_dir} not writable" say "Set the GEM_HOME environment variable if you want RDoc generated" end @@ -327,7 +337,7 @@ abort "#{deprecation_message}" system_cache_file = File.join(install_destdir, Gem::SourceInfoCache.system_cache_file) - say "Removing old source_cache files" + say "Removing old source_cache files" if Gem.configuration.really_verbose rm_f user_cache_file if File.writable? File.dirname(user_cache_file) rm_f system_cache_file if File.writable? File.dirname(system_cache_file) end diff --git a/lib/rubygems/format.rb b/lib/rubygems/format.rb index b2e7897339..80aae56215 100644 --- a/lib/rubygems/format.rb +++ b/lib/rubygems/format.rb @@ -29,7 +29,7 @@ class Gem::Format end ## - # Reads the named gem file and returns a Format object, representing + # Reads the named gem file and returns a Format object, representing # the data from the gem file # # file_path:: [String] Path to the gem file diff --git a/lib/rubygems/indexer.rb b/lib/rubygems/indexer.rb index 5ebde1b31c..aff8d8de17 100644 --- a/lib/rubygems/indexer.rb +++ b/lib/rubygems/indexer.rb @@ -141,7 +141,7 @@ class Gem::Indexer "Complete" Gem.time 'Generated YAML quick index gemspecs' do - index.each do |original_name, spec| + index.released_gems.each do |original_name, spec| spec_file_name = "#{original_name}.gemspec.rz" yaml_name = File.join @quick_dir, spec_file_name @@ -221,7 +221,7 @@ class Gem::Indexer files = [] Gem.time 'Generated Marshal quick index gemspecs' do - (index.gems.merge(index.prerelease_gems)).each do |original_name, spec| + index.gems.each do |original_name, spec| spec_file_name = "#{original_name}.gemspec.rz" marshal_name = File.join @quick_marshal_dir, spec_file_name @@ -275,7 +275,7 @@ class Gem::Indexer # Builds indicies for RubyGems 1.2 and newer. Handles full, latest, prerelease def build_modern_indicies(index) - build_modern_index(index.sort, @specs_index, 'specs') + build_modern_index(index.released_specs.sort, @specs_index, 'specs') build_modern_index(index.latest_specs.sort, @latest_specs_index, 'latest specs') @@ -534,7 +534,7 @@ class Gem::Indexer FileUtils.rm_rf @directory end - ## + ## # Zlib::GzipWriter wrapper that gzips +filename+ on disk. def gzip(filename) @@ -654,8 +654,8 @@ class Gem::Indexer files = build_marshal_gemspecs index Gem.time 'Updated indexes' do - update_specs_index index, @dest_specs_index, @specs_index - update_specs_index index, @dest_latest_specs_index, @latest_specs_index + update_specs_index index.released_gems, @dest_specs_index, @specs_index + update_specs_index index.released_gems, @dest_latest_specs_index, @latest_specs_index update_specs_index(index.prerelease_gems, @dest_prerelease_specs_index, @prerelease_specs_index) end diff --git a/lib/rubygems/package_task.rb b/lib/rubygems/package_task.rb index d7f83276f8..e80b1eceaf 100644 --- a/lib/rubygems/package_task.rb +++ b/lib/rubygems/package_task.rb @@ -41,7 +41,7 @@ require 'rake/packagetask' # # require 'rubygems' # require 'rubygems/package_task' -# +# # spec = Gem::Specification.new do |s| # s.platform = Gem::Platform::RUBY # s.summary = "Ruby based make-like utility." @@ -56,7 +56,7 @@ require 'rake/packagetask' # and dependencies are specified in standard Ruby syntax. # EOF # end -# +# # Gem::PackageTask.new(spec) do |pkg| # pkg.need_zip = true # pkg.need_tar = true diff --git a/lib/rubygems/platform.rb b/lib/rubygems/platform.rb index bfa8fca0ff..f5410cf4f7 100644 --- a/lib/rubygems/platform.rb +++ b/lib/rubygems/platform.rb @@ -103,7 +103,7 @@ class Gem::Platform def to_s to_a.compact.join '-' end - + def empty? to_s.empty? end diff --git a/lib/rubygems/security.rb b/lib/rubygems/security.rb index abf3cf4a6a..5cd3fb756f 100644 --- a/lib/rubygems/security.rb +++ b/lib/rubygems/security.rb @@ -218,7 +218,7 @@ require 'rubygems/gem_openssl' # # # signing key (still kept in an undisclosed location!) # s.signing_key = '/mnt/floppy/alf-private_key.pem' -# +# # # certificate chain (includes the issuer certificate now too) # s.cert_chain = ['/home/alf/doc/seattlerb-public_cert.pem', # '/home/alf/doc/alf_at_seattle-public_cert.pem'] @@ -274,7 +274,7 @@ require 'rubygems/gem_openssl' # # convert a PEM format X509 certificate into DER format: # # (note: Windows .cer files are X509 certificates in DER format) # $ openssl x509 -in input.pem -outform der -out output.der -# +# # # print out the certificate in a human-readable format: # $ openssl x509 -in input.pem -noout -text # @@ -282,7 +282,7 @@ require 'rubygems/gem_openssl' # # # convert a PEM format RSA key into DER format: # $ openssl rsa -in input_key.pem -outform der -out output_key.der -# +# # # print out the key in a human readable format: # $ openssl rsa -in input_key.pem -noout -text # diff --git a/lib/rubygems/source_index.rb b/lib/rubygems/source_index.rb index c616aefcc0..d033fd40fe 100644 --- a/lib/rubygems/source_index.rb +++ b/lib/rubygems/source_index.rb @@ -30,7 +30,7 @@ class Gem::SourceIndex include Gem::UserInteraction - attr_reader :gems, :prerelease_gems # :nodoc: + attr_reader :gems # :nodoc: ## # Directories to use to refresh this SourceIndex when calling refresh! @@ -122,16 +122,22 @@ class Gem::SourceIndex # #prerelease_gems def initialize(specifications={}) - @gems, @prerelease_gems = [{}, {}] + @gems = {} specifications.each{ |full_name, spec| add_spec spec } @spec_dirs = nil end - ## - # Both regular and prerelease gems - + # TODO: remove method def all_gems - @gems.merge @prerelease_gems + @gems + end + + def prerelease_gems + @gems.reject{ |name, gem| !gem.version.prerelease? } + end + + def released_gems + @gems.reject{ |name, gem| gem.version.prerelease? } end ## @@ -153,8 +159,8 @@ class Gem::SourceIndex end ## - # Returns an Array specifications for the latest versions of each gem in - # this index. + # Returns an Array specifications for the latest released versions + # of each gem in this index. def latest_specs result = Hash.new { |h,k| h[k] = [] } @@ -165,6 +171,7 @@ class Gem::SourceIndex curr_ver = spec.version prev_ver = latest.key?(name) ? latest[name].version : nil + next if curr_ver.prerelease? next unless prev_ver.nil? or curr_ver >= prev_ver or latest[name].platform != Gem::Platform::RUBY @@ -192,7 +199,14 @@ class Gem::SourceIndex # An array including only the prerelease gemspecs def prerelease_specs - @prerelease_gems.values + prerelease_gems.values + end + + ## + # An array including only the released gemspecs + + def released_specs + released_gems.values end ## @@ -201,11 +215,7 @@ class Gem::SourceIndex def add_spec(gem_spec, name = gem_spec.full_name) # No idea why, but the Indexer wants to insert them using original_name # instead of full_name. So we make it an optional arg. - if gem_spec.version.prerelease? - @prerelease_gems[name] = gem_spec - else - @gems[name] = gem_spec - end + @gems[name] = gem_spec end ## @@ -221,11 +231,7 @@ class Gem::SourceIndex # Remove a gem specification named +full_name+. def remove_spec(full_name) - if @gems.key? full_name then - @gems.delete full_name - else - @prerelease_gems.delete full_name - end + @gems.delete full_name end ## @@ -408,7 +414,7 @@ class Gem::SourceIndex end def ==(other) # :nodoc: - self.class === other and @gems == other.gems + self.class === other and @gems == other.gems end def dump diff --git a/lib/rubygems/source_info_cache.rb b/lib/rubygems/source_info_cache.rb index fdb30ad8d3..4289cdb52a 100644 --- a/lib/rubygems/source_info_cache.rb +++ b/lib/rubygems/source_info_cache.rb @@ -286,7 +286,7 @@ class Gem::SourceInfoCache next unless Gem.sources.include? source_uri # TODO - Remove this gunk after 2008/11 unless pattern.kind_of?(Gem::Dependency) - pattern = Gem::Dependency.new(pattern, Gem::Requirement.default) + pattern = Gem::Dependency.new(pattern, Gem::Requirement.default) end sic_entry.source_index.search pattern, platform_only end.flatten.compact @@ -306,7 +306,7 @@ class Gem::SourceInfoCache # TODO - Remove this gunk after 2008/11 unless pattern.kind_of?(Gem::Dependency) - pattern = Gem::Dependency.new(pattern, Gem::Requirement.default) + pattern = Gem::Dependency.new(pattern, Gem::Requirement.default) end sic_entry.source_index.search(pattern, only_platform).each do |spec| diff --git a/lib/rubygems/spec_fetcher.rb b/lib/rubygems/spec_fetcher.rb index f46c355413..a5f33183dd 100644 --- a/lib/rubygems/spec_fetcher.rb +++ b/lib/rubygems/spec_fetcher.rb @@ -22,7 +22,7 @@ class Gem::SpecFetcher attr_reader :latest_specs # :nodoc: ## - # Cache of all spces + # Cache of all released specs attr_reader :specs # :nodoc: @@ -61,8 +61,9 @@ class Gem::SpecFetcher ## # Fetch specs matching +dependency+. If +all+ is true, all matching - # versions are returned. If +matching_platform+ is false, all platforms are - # returned. If +prerelease+ is true, prerelease versions are included. + # (released) versions are returned. If +matching_platform+ is + # false, all platforms are returned. If +prerelease+ is true, + # prerelease versions are included. def fetch(dependency, all = false, matching_platform = true, prerelease = false) specs_and_sources = find_matching dependency, all, matching_platform, prerelease @@ -112,9 +113,9 @@ class Gem::SpecFetcher end ## - # Find spec names that match +dependency+. If +all+ is true, all matching - # versions are returned. If +matching_platform+ is false, gems for all - # platforms are returned. + # Find spec names that match +dependency+. If +all+ is true, all + # matching released versions are returned. If +matching_platform+ + # is false, gems for all platforms are returned. def find_matching(dependency, all = false, matching_platform = true, prerelease = false) found = {} @@ -161,7 +162,7 @@ class Gem::SpecFetcher ## # Returns a list of gems available for each source in Gem::sources. If - # +all+ is true, all versions are returned instead of only latest + # +all+ is true, all released versions are returned instead of only latest # versions. If +prerelease+ is true, include prerelease versions. def list(all = false, prerelease = false) @@ -183,7 +184,7 @@ class Gem::SpecFetcher cache = { :latest => @latest_specs, :prerelease => @prerelease_specs, :all => @specs }[type] - + Gem.sources.each do |source_uri| source_uri = URI.parse source_uri @@ -194,6 +195,12 @@ class Gem::SpecFetcher list[source_uri] = cache[source_uri] end + if type == :all + list.values.map do |gems| + gems.reject! { |g| g[1].prerelease? } + end + end + list end diff --git a/lib/rubygems/test_utilities.rb b/lib/rubygems/test_utilities.rb index 8b23d3236e..85541c9fc3 100644 --- a/lib/rubygems/test_utilities.rb +++ b/lib/rubygems/test_utilities.rb @@ -11,9 +11,9 @@ require 'rubygems/remote_fetcher' # @fetcher = Gem::FakeFetcher.new # @fetcher.data['http://gems.example.com/yaml'] = source_index.to_yaml # Gem::RemoteFetcher.fetcher = @fetcher -# +# # # invoke RubyGems code -# +# # paths = @fetcher.paths # assert_equal 'http://gems.example.com/yaml', paths.shift # assert paths.empty?, paths.join(', ') diff --git a/lib/rubygems/validator.rb b/lib/rubygems/validator.rb index 9bccc605b5..f568227b9a 100644 --- a/lib/rubygems/validator.rb +++ b/lib/rubygems/validator.rb @@ -15,7 +15,7 @@ begin Gem.activate('test-unit') rescue Gem::LoadError # Ignore - use the test-unit library that's part of the standard library -end +end ## # Validator performs various gem file and gem database validation diff --git a/lib/rubygems/version.rb b/lib/rubygems/version.rb index 7c49a34a73..f959429846 100644 --- a/lib/rubygems/version.rb +++ b/lib/rubygems/version.rb @@ -166,7 +166,7 @@ class Gem::Version def prerelease? parts.any? { |part| part.alpha? } end - + ## # The release for this version (e.g. 1.2.0.a -> 1.2.0) # Non-prerelease versions return themselves diff --git a/test/rubygems/gem_package_tar_test_case.rb b/test/rubygems/gem_package_tar_test_case.rb index 462fa08848..f671693cc0 100644 --- a/test/rubygems/gem_package_tar_test_case.rb +++ b/test/rubygems/gem_package_tar_test_case.rb @@ -35,7 +35,7 @@ class TarTestCase < RubyGemTestCase linkname 100 magic 6 version 2 - uname 32 + uname 32 gname 32 devmajor 8 devminor 8 @@ -54,7 +54,7 @@ class TarTestCase < RubyGemTestCase next end - assert_equal expected[offset, length], actual[offset, length], + assert_equal expected[offset, length], actual[offset, length], "Field #{name} of the tar header differs." offset += length diff --git a/test/rubygems/insure_session.rb b/test/rubygems/insure_session.rb index e56f9abcb8..4ae706494a 100644 --- a/test/rubygems/insure_session.rb +++ b/test/rubygems/insure_session.rb @@ -23,7 +23,7 @@ def install_session puts puts "with the appropriate admin privileges." puts "*****************************************************************" - puts + puts exit end gem 'session' diff --git a/test/rubygems/simple_gem.rb b/test/rubygems/simple_gem.rb index a6f14bc3c7..4667a08749 100644 --- a/test/rubygems/simple_gem.rb +++ b/test/rubygems/simple_gem.rb @@ -5,10 +5,10 @@ #++ SIMPLE_GEM = <<-GEMDATA - MD5SUM = "e3701f9db765a2358aef94c40ded71c8" + MD5SUM = "b12a4d48febeb2289c539c2574c4b6f8" if $0 == __FILE__ require 'optparse' - + options = {} ARGV.options do |opts| opts.on_tail("--help", "show this message") {puts opts; exit} @@ -19,45 +19,45 @@ end require 'rubygems' - @directory = options[:directory] || Gem.dir + @directory = options[:directory] || Gem.dir @force = options[:force] - - gem = Gem::Installer.new(__FILE__).install(@force, @directory) + + gem = Gem::Installer.new(__FILE__).install(@force, @directory) if options[:gen_rdoc] Gem::DocManager.new(gem).generate_rdoc end end __END__ ---- !ruby/object:Gem::Specification +--- !ruby/object:Gem::Specification rubygems_version: "1.0" name: testing -version: !ruby/object:Gem::Version +version: !ruby/object:Gem::Version version: 1.2.3 date: 2004-03-18 22:01:52.859121 -05:00 -platform: +platform: summary: This exercise the gem testing stuff. -require_paths: +require_paths: - lib -files: +files: - lib/foo.rb - lib/test - lib/test.rb - lib/test/wow.rb autorequire: test test_suite_file: foo -requirements: +requirements: - a computer processor ---- -- +--- +- size: 109 mode: 420 path: lib/foo.rb -- +- size: 0 mode: 420 path: lib/test.rb -- +- size: 15 mode: 420 path: lib/test/wow.rb diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index e18004c4ea..e6d3f896b4 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb @@ -78,14 +78,6 @@ class TestGem < RubyGemTestCase end end - def test_self_bin_path_with_spaces - quick_gem 'sp ace', '3' do |s| - s.executables = ['exec'] - end - path = Gem.bin_path('sp ace', 'exec') - assert_equal %w(" "), [path[0,1], path[-1,1]], "Path should be escaped" - end - def test_self_bin_path_not_found assert_raises(Gem::GemNotFoundException) do Gem.bin_path('non-existent') @@ -449,7 +441,7 @@ class TestGem < RubyGemTestCase def test_self_refresh util_make_gems - a1_spec = File.join @gemhome, "specifications", "#{@a1.full_name}.gemspec" + a1_spec = File.join @gemhome, "specifications", "#{@a1.full_name}.gemspec" FileUtils.mv a1_spec, @tempdir diff --git a/test/rubygems/test_gem_commands_dependency_command.rb b/test/rubygems/test_gem_commands_dependency_command.rb index 2452189d72..66e9d86d52 100644 --- a/test/rubygems/test_gem_commands_dependency_command.rb +++ b/test/rubygems/test_gem_commands_dependency_command.rb @@ -43,6 +43,8 @@ Gem a-1 Gem a-2 +Gem a-3.a + Gem a_evil-9 Gem b-2 @@ -100,6 +102,8 @@ Gem a-1 Gem a-2 +Gem a-3.a + Gem a_evil-9 Gem b-2 diff --git a/test/rubygems/test_gem_commands_uninstall_command.rb b/test/rubygems/test_gem_commands_uninstall_command.rb index a6ac23812b..092a9072c0 100644 --- a/test/rubygems/test_gem_commands_uninstall_command.rb +++ b/test/rubygems/test_gem_commands_uninstall_command.rb @@ -57,5 +57,25 @@ class TestGemCommandsUninstallCommand < GemInstallerTestCase assert_empty output, "UI output should be empty after an uninstall error" end + def test_execute_prerelease + @spec = quick_gem "pre", "2.b" + @gem = File.join @tempdir, "#{@spec.full_name}.gem" + FileUtils.touch @gem + + util_setup_gem + + use_ui @ui do + @installer.install + end + + @cmd.options[:args] = ["pre"] + + use_ui @ui do + @cmd.execute + end + + output = @ui.output + assert_match(/Successfully uninstalled/, output) + end end diff --git a/test/rubygems/test_gem_digest.rb b/test/rubygems/test_gem_digest.rb old mode 100755 new mode 100644 diff --git a/test/rubygems/test_gem_doc_manager.rb b/test/rubygems/test_gem_doc_manager.rb index 051c926307..e3928ed2bc 100644 --- a/test/rubygems/test_gem_doc_manager.rb +++ b/test/rubygems/test_gem_doc_manager.rb @@ -18,7 +18,7 @@ class TestGemDocManager < RubyGemTestCase def test_uninstall_doc_unwritable orig_mode = File.stat(@spec.installation_path).mode - + # File.chmod has no effect on MS Windows directories (it needs ACL). if win_platform? skip("test_uninstall_doc_unwritable skipped on MS Windows") diff --git a/test/rubygems/test_gem_indexer.rb b/test/rubygems/test_gem_indexer.rb index 7d721d028d..e612a71d55 100644 --- a/test/rubygems/test_gem_indexer.rb +++ b/test/rubygems/test_gem_indexer.rb @@ -9,7 +9,7 @@ require_relative 'gemutilities' require 'rubygems/indexer' unless ''.respond_to? :to_xs then - warn "Gem::Indexer tests are being skipped. Install builder gem." + warn "Gem::Indexer tests are being skipped. Install builder gem." if $VERBOSE end class TestGemIndexer < RubyGemTestCase @@ -118,10 +118,13 @@ class TestGemIndexer < RubyGemTestCase expected = <<-EOF a-1 a-2 +a-3.a a_evil-9 b-2 c-1.2 d-2.0 +d-2.0.a +d-2.0.b pl-1-i386-linux EOF @@ -163,13 +166,13 @@ pl-1-i386-linux assert_indexed @tempdir, "latest_specs.#{@marshal_version}.gz" expected = <<-EOF - - + + ExampleForge gems http://example.com Recently released gems from http://example.com - RubyGems v#{Gem::RubyGemsVersion} + RubyGems v1.3.4 http://cyber.law.harvard.edu/rss/rss.html a-2 @@ -178,9 +181,21 @@ pl-1-i386-linux example@example.com (A User) a-2 - - #{Gem::Specification::TODAY.rfc2822} + + #{@a2.date.rfc2822} + http://example.com + + + a-3.a + +<pre>This is a test description</pre> + + example@example.com (A User) + a-3.a + + #{@a3a.date.rfc2822} http://example.com @@ -190,9 +205,9 @@ pl-1-i386-linux example@example.com (A User) a_evil-9 - - #{Gem::Specification::TODAY.rfc2822} + + #{@a_evil9.date.rfc2822} http://example.com @@ -202,9 +217,9 @@ pl-1-i386-linux example@example.com (A User) b-2 - - #{Gem::Specification::TODAY.rfc2822} + + #{@b2.date.rfc2822} http://example.com @@ -214,9 +229,33 @@ pl-1-i386-linux example@example.com (A User) c-1.2 - - #{Gem::Specification::TODAY.rfc2822} + + #{@c1_2.date.rfc2822} + http://example.com + + + d-2.0.a + +<pre>This is a test description</pre> + + example@example.com (A User) + d-2.0.a + + #{@d2_0_a.date.rfc2822} + http://example.com + + + d-2.0.b + +<pre>This is a test description</pre> + + example@example.com (A User) + d-2.0.b + + #{@d2_0_b.date.rfc2822} http://example.com @@ -226,9 +265,9 @@ pl-1-i386-linux example@example.com (A User) pl-1-x86-linux - - #{Gem::Specification::TODAY.rfc2822} + + #{@pl1.date.rfc2822} http://example.com @@ -247,9 +286,9 @@ eighty characters.</pre> example@example.com (Example), example2@example.com (Example2) a-1 - - #{(Gem::Specification::TODAY - 86400).rfc2822} + + #{@a1.date.rfc2822} http://a.example.com @@ -462,9 +501,9 @@ eighty characters.</pre> @ui.output assert_match %r%^\.\.\.\.\.\.\.\.\.\.$%, @ui.output assert_match %r%^Loaded all gems$%, @ui.output - assert_match %r%^Generating Marshal quick index gemspecs for 7 gems$%, + assert_match %r%^Generating Marshal quick index gemspecs for 10 gems$%, @ui.output - assert_match %r%^Generating YAML quick index gemspecs for 7 gems$%, + assert_match %r%^Generating YAML quick index gemspecs for 10 gems$%, @ui.output assert_match %r%^Complete$%, @ui.output assert_match %r%^Generating specs index$%, @ui.output @@ -473,7 +512,7 @@ eighty characters.</pre> assert_match %r%^Generating latest index$%, @ui.output assert_match %r%^Generating prerelease specs index$%, @ui.output assert_match %r%^Generating Marshal master index$%, @ui.output - assert_match %r%^Generating YAML master index for 7 gems \(this may take a while\)$%, @ui.output + assert_match %r%^Generating YAML master index for 10 gems \(this may take a while\)$%, @ui.output assert_match %r%^Complete$%, @ui.output assert_match %r%^Compressing indicies$%, @ui.output diff --git a/test/rubygems/test_gem_package_tar_input.rb b/test/rubygems/test_gem_package_tar_input.rb index 2459802b12..7eea1826e0 100644 --- a/test/rubygems/test_gem_package_tar_input.rb +++ b/test/rubygems/test_gem_package_tar_input.rb @@ -47,7 +47,7 @@ class TestGemPackageTarInput < TarTestCase meta = @spec.to_yaml f.write tar_file_header("metadata", "", 0644, meta.size) - f.write meta + "\0" * (1024 - meta.size) + f.write meta + "\0" * (1024 - meta.size) f.write "\0" * 1024 end diff --git a/test/rubygems/test_gem_package_tar_writer.rb b/test/rubygems/test_gem_package_tar_writer.rb index 0adc595ad0..0d691e45cd 100644 --- a/test/rubygems/test_gem_package_tar_writer.rb +++ b/test/rubygems/test_gem_package_tar_writer.rb @@ -45,7 +45,7 @@ class TestTarWriter < TarTestCase def test_add_file_simple_padding @tar_writer.add_file_simple 'x', 0, 100 - assert_headers_equal tar_file_header('x', '', 0, 100), + assert_headers_equal tar_file_header('x', '', 0, 100), @io.string[0, 512] assert_equal "\0" * 512, @io.string[512, 512] @@ -60,7 +60,7 @@ class TestTarWriter < TarTestCase end def test_add_file_simple_size - assert_raises Gem::Package::TarWriter::FileOverflow do + assert_raises Gem::Package::TarWriter::FileOverflow do @tar_writer.add_file_simple("lib/foo/bar", 0, 10) do |io| io.write "1" * 11 end @@ -68,7 +68,7 @@ class TestTarWriter < TarTestCase end def test_add_file_unseekable - assert_raises Gem::Package::NonSeekableIO do + assert_raises Gem::Package::NonSeekableIO do Gem::Package::TarWriter.new(Object.new).add_file 'x', 0 end end diff --git a/test/rubygems/test_gem_source_index.rb b/test/rubygems/test_gem_source_index.rb index 9cfde0b0a9..40a9a85b27 100644 --- a/test/rubygems/test_gem_source_index.rb +++ b/test/rubygems/test_gem_source_index.rb @@ -335,14 +335,12 @@ WARNING: Invalid .gemspec format in '#{spec_file}' @source_index.add_spec gem_a1_alpha refute @source_index.latest_specs.include?(gem_a1_alpha) - assert_nil @source_index.specification(gem_a1_alpha.full_name) + assert @source_index.find_name(gem_a1_alpha.full_name).empty? assert @source_index.prerelease_specs.include?(gem_a1_alpha) - - # TODO: don't think this tests writing prerelease index to disk end def test_refresh_bang - a1_spec = File.join @gemhome, "specifications", "#{@a1.full_name}.gemspec" + a1_spec = File.join @gemhome, "specifications", "#{@a1.full_name}.gemspec" FileUtils.mv a1_spec, @tempdir diff --git a/test/rubygems/test_gem_spec_fetcher.rb b/test/rubygems/test_gem_spec_fetcher.rb index 42bf6926c2..4a6f22bafd 100644 --- a/test/rubygems/test_gem_spec_fetcher.rb +++ b/test/rubygems/test_gem_spec_fetcher.rb @@ -45,6 +45,8 @@ class TestGemSpecFetcher < RubyGemTestCase util_zip(Marshal.dump(@a2)) @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a_pre.full_name}.gemspec.rz"] = util_zip(Marshal.dump(@a_pre)) + @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a3a.full_name}.gemspec.rz"] = + util_zip(Marshal.dump(@a3a)) dep = Gem::Dependency.new 'a', 1 specs_and_sources = @sf.fetch dep, true @@ -273,7 +275,12 @@ RubyGems will revert to legacy indexes degrading performance. assert_equal [@uri], specs.keys - assert_equal @specs, specs[@uri].sort + assert_equal([["a", Gem::Version.new("1"), "ruby"], + ["a", Gem::Version.new("2"), "ruby"], + ["a_evil", Gem::Version.new("9"), "ruby"], + ["c", Gem::Version.new("1.2"), "ruby"], + ["pl", Gem::Version.new("1"), "i386-linux"]], + specs[@uri].sort) end def test_list_cache @@ -307,7 +314,12 @@ RubyGems will revert to legacy indexes degrading performance. specs = @sf.list true - assert_equal [@specs], specs.values, 'specs file not loaded' + assert_equal([[["a", Gem::Version.new("1"), "ruby"], + ["a", Gem::Version.new("2"), "ruby"], + ["a_evil", Gem::Version.new("9"), "ruby"], + ["c", Gem::Version.new("1.2"), "ruby"], + ["pl", Gem::Version.new("1"), "i386-linux"]]], + specs.values, 'specs file not loaded') end def test_list_prerelease @@ -320,8 +332,10 @@ RubyGems will revert to legacy indexes degrading performance. specs = @sf.load_specs @uri, 'specs' expected = [ + ['a', Gem::Version.new('1.a'), Gem::Platform::RUBY], ['a', Gem::Version.new(1), Gem::Platform::RUBY], ['a', Gem::Version.new(2), Gem::Platform::RUBY], + ['a', Gem::Version.new('3.a'), Gem::Platform::RUBY], ['a_evil', Gem::Version.new(9), Gem::Platform::RUBY], ['c', Gem::Version.new('1.2'), Gem::Platform::RUBY], ['pl', Gem::Version.new(1), 'i386-linux'], diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index 332e812791..fb5cf67461 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -566,7 +566,7 @@ end 'i386-mswin32_80' => 'a-1-x86-mswin32-80', 'i386-mingw32' => 'a-1-x86-mingw32' } - + test_cases.each do |arch, expected| util_set_arch arch @a1.platform = 'current' diff --git a/test/rubygems/test_gem_version.rb b/test/rubygems/test_gem_version.rb index dfd3845e42..f2b0280f3d 100644 --- a/test/rubygems/test_gem_version.rb +++ b/test/rubygems/test_gem_version.rb @@ -199,7 +199,7 @@ class TestGemVersion < RubyGemTestCase refute Gem::Version.new('2.9').prerelease? refute Gem::Version.new('22.1.50.0').prerelease? end - + def test_release assert_equal Gem::Version.new('1.2.0'), Gem::Version.new('1.2.0.a').release assert_equal Gem::Version.new('1.1'), Gem::Version.new('1.1.rc10').release @@ -219,7 +219,7 @@ class TestGemVersion < RubyGemTestCase assert_adequate( "1.4.5", "~> 1.4.4") assert_inadequate("1.5", "~> 1.4.4") assert_inadequate("2.0", "~> 1.4.4") - + assert_inadequate("1.1.pre", "~> 1.0.0") assert_adequate( "1.1.pre", "~> 1.1") assert_inadequate("2.0.a", "~> 1.0") -- cgit v1.2.3