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 dependenciees. 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