Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Rebuild with patches from trunk.

git-svn-id: svn+ssh://rubyforge.org/var/svn/rubygems/tags/REL_1_3_0@1891 3d4018f9-ac1a-0410-99e9-8a154d859a19
  • Loading branch information...
commit 4cd3f98602b67534f8d0803201d52f6ff3b07412 1 parent 4d35f9c
@drbrain drbrain authored
Showing with 37,492 additions and 0 deletions.
  1. +18 −0 trunk/.autotest
  2. +4 −0 trunk/.document
  3. +4,979 −0 trunk/ChangeLog
  4. +340 −0 trunk/GPL.txt
  5. +53 −0 trunk/LICENSE.txt
  6. +69 −0 trunk/README
  7. +462 −0 trunk/Rakefile
  8. +1 −0  trunk/TODO
  9. +28 −0 trunk/bin/gem
  10. +38 −0 trunk/bin/update_rubygems
  11. +29 −0 trunk/doc/release_notes/docs-rubygems-announce.rdoc
  12. +4 −0 trunk/doc/release_notes/rel_0_2_0.rdoc
  13. +21 −0 trunk/doc/release_notes/rel_0_3_0.rdoc
  14. +4 −0 trunk/doc/release_notes/rel_0_4_0.rdoc
  15. +26 −0 trunk/doc/release_notes/rel_0_5_0.rdoc
  16. +16 −0 trunk/doc/release_notes/rel_0_6_0.rdoc
  17. +4 −0 trunk/doc/release_notes/rel_0_7_0.rdoc
  18. +23 −0 trunk/doc/release_notes/rel_0_8_0.rdoc
  19. +4 −0 trunk/doc/release_notes/rel_0_8_1.rdoc
  20. +70 −0 trunk/doc/release_notes/rel_0_8_10.rdoc
  21. +102 −0 trunk/doc/release_notes/rel_0_8_11.rdoc
  22. +113 −0 trunk/doc/release_notes/rel_0_8_3.rdoc
  23. +51 −0 trunk/doc/release_notes/rel_0_8_4.rdoc
  24. +117 −0 trunk/doc/release_notes/rel_0_8_5.rdoc
  25. +135 −0 trunk/doc/release_notes/rel_0_8_7.rdoc
  26. +109 −0 trunk/doc/release_notes/rel_0_9_0.rdoc
  27. +69 −0 trunk/doc/release_notes/rel_0_9_2.rdoc
  28. +66 −0 trunk/doc/release_notes/rel_0_9_3.rdoc
  29. +67 −0 trunk/doc/release_notes/rel_0_9_4.rdoc
  30. +108 −0 trunk/doc/release_notes/rel_0_9_5.rdoc
  31. +67 −0 trunk/doc/release_notes/rel_1_0_0.rdoc
  32. +56 −0 trunk/doc/release_notes/rel_1_0_1.rdoc
  33. +85 −0 trunk/doc/release_notes/rel_1_1_0.rdoc
  34. +64 −0 trunk/doc/release_notes/rel_1_1_1.rdoc
  35. +105 −0 trunk/doc/release_notes/rel_1_2_0.rdoc
  36. +125 −0 trunk/doc/release_notes/rel_1_3_0.rdoc
  37. +24 −0 trunk/lib/rbconfig/datadir.rb
  38. +878 −0 trunk/lib/rubygems.rb
  39. +88 −0 trunk/lib/rubygems/builder.rb
  40. +406 −0 trunk/lib/rubygems/command.rb
  41. +146 −0 trunk/lib/rubygems/command_manager.rb
  42. +53 −0 trunk/lib/rubygems/commands/build_command.rb
  43. +86 −0 trunk/lib/rubygems/commands/cert_command.rb
  44. +74 −0 trunk/lib/rubygems/commands/check_command.rb
  45. +91 −0 trunk/lib/rubygems/commands/cleanup_command.rb
  46. +74 −0 trunk/lib/rubygems/commands/contents_command.rb
  47. +188 −0 trunk/lib/rubygems/commands/dependency_command.rb
  48. +128 −0 trunk/lib/rubygems/commands/environment_command.rb
  49. +62 −0 trunk/lib/rubygems/commands/fetch_command.rb
  50. +57 −0 trunk/lib/rubygems/commands/generate_index_command.rb
  51. +172 −0 trunk/lib/rubygems/commands/help_command.rb
  52. +148 −0 trunk/lib/rubygems/commands/install_command.rb
  53. +35 −0 trunk/lib/rubygems/commands/list_command.rb
  54. +110 −0 trunk/lib/rubygems/commands/lock_command.rb
  55. +111 −0 trunk/lib/rubygems/commands/mirror_command.rb
  56. +33 −0 trunk/lib/rubygems/commands/outdated_command.rb
  57. +93 −0 trunk/lib/rubygems/commands/pristine_command.rb
  58. +233 −0 trunk/lib/rubygems/commands/query_command.rb
  59. +82 −0 trunk/lib/rubygems/commands/rdoc_command.rb
  60. +37 −0 trunk/lib/rubygems/commands/search_command.rb
  61. +48 −0 trunk/lib/rubygems/commands/server_command.rb
  62. +152 −0 trunk/lib/rubygems/commands/sources_command.rb
  63. +77 −0 trunk/lib/rubygems/commands/specification_command.rb
  64. +27 −0 trunk/lib/rubygems/commands/stale_command.rb
  65. +73 −0 trunk/lib/rubygems/commands/uninstall_command.rb
  66. +95 −0 trunk/lib/rubygems/commands/unpack_command.rb
  67. +182 −0 trunk/lib/rubygems/commands/update_command.rb
  68. +87 −0 trunk/lib/rubygems/commands/which_command.rb
  69. +263 −0 trunk/lib/rubygems/config_file.rb
  70. +38 −0 trunk/lib/rubygems/custom_require.rb
  71. +84 −0 trunk/lib/rubygems/defaults.rb
  72. +119 −0 trunk/lib/rubygems/dependency.rb
  73. +258 −0 trunk/lib/rubygems/dependency_installer.rb
  74. +165 −0 trunk/lib/rubygems/dependency_list.rb
  75. +40 −0 trunk/lib/rubygems/digest/digest_adapter.rb
  76. +23 −0 trunk/lib/rubygems/digest/md5.rb
  77. +17 −0 trunk/lib/rubygems/digest/sha1.rb
  78. +17 −0 trunk/lib/rubygems/digest/sha2.rb
  79. +214 −0 trunk/lib/rubygems/doc_manager.rb
  80. +84 −0 trunk/lib/rubygems/exceptions.rb
  81. +18 −0 trunk/lib/rubygems/ext.rb
  82. +56 −0 trunk/lib/rubygems/ext/builder.rb
  83. +24 −0 trunk/lib/rubygems/ext/configure_builder.rb
  84. +23 −0 trunk/lib/rubygems/ext/ext_conf_builder.rb
  85. +27 −0 trunk/lib/rubygems/ext/rake_builder.rb
  86. +87 −0 trunk/lib/rubygems/format.rb
  87. +83 −0 trunk/lib/rubygems/gem_openssl.rb
  88. +100 −0 trunk/lib/rubygems/gem_path_searcher.rb
  89. +58 −0 trunk/lib/rubygems/gem_runner.rb
  90. +370 −0 trunk/lib/rubygems/indexer.rb
  91. +113 −0 trunk/lib/rubygems/install_update_options.rb
  92. +578 −0 trunk/lib/rubygems/installer.rb
  93. +134 −0 trunk/lib/rubygems/local_remote_options.rb
  94. +148 −0 trunk/lib/rubygems/old_format.rb
  95. +95 −0 trunk/lib/rubygems/package.rb
  96. +24 −0 trunk/lib/rubygems/package/f_sync_dir.rb
  97. +245 −0 trunk/lib/rubygems/package/tar_header.rb
  98. +219 −0 trunk/lib/rubygems/package/tar_input.rb
  99. +143 −0 trunk/lib/rubygems/package/tar_output.rb
  100. +86 −0 trunk/lib/rubygems/package/tar_reader.rb
  101. +99 −0 trunk/lib/rubygems/package/tar_reader/entry.rb
  102. +180 −0 trunk/lib/rubygems/package/tar_writer.rb
  103. +178 −0 trunk/lib/rubygems/platform.rb
  104. +344 −0 trunk/lib/rubygems/remote_fetcher.rb
  105. +15 −0 trunk/lib/rubygems/require_paths_builder.rb
  106. +163 −0 trunk/lib/rubygems/requirement.rb
  107. +6 −0 trunk/lib/rubygems/rubygems_version.rb
  108. +786 −0 trunk/lib/rubygems/security.rb
  109. +629 −0 trunk/lib/rubygems/server.rb
  110. +560 −0 trunk/lib/rubygems/source_index.rb
  111. +393 −0 trunk/lib/rubygems/source_info_cache.rb
  112. +56 −0 trunk/lib/rubygems/source_info_cache_entry.rb
  113. +249 −0 trunk/lib/rubygems/spec_fetcher.rb
  114. +1,262 −0 trunk/lib/rubygems/specification.rb
  115. +131 −0 trunk/lib/rubygems/test_utilities.rb
  116. +25 −0 trunk/lib/rubygems/timer.rb
  117. +242 −0 trunk/lib/rubygems/uninstaller.rb
  118. +360 −0 trunk/lib/rubygems/user_interaction.rb
  119. +186 −0 trunk/lib/rubygems/validator.rb
  120. +167 −0 trunk/lib/rubygems/version.rb
  121. +48 −0 trunk/lib/rubygems/version_option.rb
  122. +10 −0 trunk/lib/ubygems.rb
  123. +1 −0  trunk/pkgs/sources/.cvsignore
  124. +3 −0  trunk/pkgs/sources/lib/sources.rb
  125. +14 −0 trunk/pkgs/sources/sources.gemspec
  126. +433 −0 trunk/redist/session.gem
  127. +2 −0  trunk/scripts/.cvsignore
  128. +31 −0 trunk/scripts/buildtests.rb
  129. +617 −0 trunk/scripts/gemdoc.data
  130. +67 −0 trunk/scripts/gemdoc.rb
  131. +40 −0 trunk/scripts/runtest.rb
  132. +33 −0 trunk/scripts/specdoc.data
  133. +171 −0 trunk/scripts/specdoc.rb
  134. +433 −0 trunk/scripts/specdoc.yaml
  135. +140 −0 trunk/scripts/upload_gemdoc.rb
  136. +334 −0 trunk/setup.rb
  137. +8 −0 trunk/test/bogussources.rb
  138. +27 −0 trunk/test/data/gem-private_key.pem
  139. +20 −0 trunk/test/data/gem-public_cert.pem
  140. +7 −0 trunk/test/fake_certlib/openssl.rb
  141. +95 −0 trunk/test/functional.rb
  142. +86 −0 trunk/test/gem_installer_test_case.rb
  143. +146 −0 trunk/test/gem_package_tar_test_case.rb
  144. +474 −0 trunk/test/gemutilities.rb
  145. +51 −0 trunk/test/insure_session.rb
  146. +63 −0 trunk/test/mockgemui.rb
  147. +27 −0 trunk/test/private_key.pem
  148. +20 −0 trunk/test/public_cert.pem
  149. +72 −0 trunk/test/simple_gem.rb
  150. +21 −0 trunk/test/test_config.rb
  151. +550 −0 trunk/test/test_gem.rb
  152. +34 −0 trunk/test/test_gem_builder.rb
  153. +196 −0 trunk/test/test_gem_command.rb
  154. +213 −0 trunk/test/test_gem_command_manager.rb
  155. +75 −0 trunk/test/test_gem_commands_build_command.rb
  156. +126 −0 trunk/test/test_gem_commands_cert_command.rb
  157. +25 −0 trunk/test/test_gem_commands_check_command.rb
  158. +92 −0 trunk/test/test_gem_commands_contents_command.rb
  159. +227 −0 trunk/test/test_gem_commands_dependency_command.rb
  160. +134 −0 trunk/test/test_gem_commands_environment_command.rb
  161. +55 −0 trunk/test/test_gem_commands_fetch_command.rb
  162. +32 −0 trunk/test/test_gem_commands_generate_index_command.rb
  163. +166 −0 trunk/test/test_gem_commands_install_command.rb
  164. +37 −0 trunk/test/test_gem_commands_list_command.rb
  165. +69 −0 trunk/test/test_gem_commands_lock_command.rb
  166. +61 −0 trunk/test/test_gem_commands_mirror_command.rb
  167. +43 −0 trunk/test/test_gem_commands_outdated_command.rb
  168. +109 −0 trunk/test/test_gem_commands_pristine_command.rb
  169. +327 −0 trunk/test/test_gem_commands_query_command.rb
  170. +27 −0 trunk/test/test_gem_commands_server_command.rb
  171. +275 −0 trunk/test/test_gem_commands_sources_command.rb
  172. +97 −0 trunk/test/test_gem_commands_specification_command.rb
  173. +39 −0 trunk/test/test_gem_commands_stale_command.rb
  174. +60 −0 trunk/test/test_gem_commands_uninstall_command.rb
  175. +115 −0 trunk/test/test_gem_commands_unpack_command.rb
  176. +165 −0 trunk/test/test_gem_commands_update_command.rb
  177. +281 −0 trunk/test/test_gem_config_file.rb
  178. +140 −0 trunk/test/test_gem_dependency.rb
  179. +637 −0 trunk/test/test_gem_dependency_installer.rb
  180. +212 −0 trunk/test/test_gem_dependency_list.rb
  181. +44 −0 trunk/test/test_gem_digest.rb
  182. +32 −0 trunk/test/test_gem_doc_manager.rb
  183. +87 −0 trunk/test/test_gem_ext_configure_builder.rb
  184. +122 −0 trunk/test/test_gem_ext_ext_conf_builder.rb
  185. +82 −0 trunk/test/test_gem_ext_rake_builder.rb
  186. +69 −0 trunk/test/test_gem_format.rb
  187. +68 −0 trunk/test/test_gem_gem_path_searcher.rb
  188. +35 −0 trunk/test/test_gem_gem_runner.rb
  189. +263 −0 trunk/test/test_gem_indexer.rb
  190. +61 −0 trunk/test/test_gem_install_update_options.rb
  191. +908 −0 trunk/test/test_gem_installer.rb
  192. +97 −0 trunk/test/test_gem_local_remote_options.rb
  193. +137 −0 trunk/test/test_gem_package_tar_header.rb
  194. +119 −0 trunk/test/test_gem_package_tar_input.rb
  195. +104 −0 trunk/test/test_gem_package_tar_output.rb
  196. +53 −0 trunk/test/test_gem_package_tar_reader.rb
  197. +116 −0 trunk/test/test_gem_package_tar_reader_entry.rb
  198. +151 −0 trunk/test/test_gem_package_tar_writer.rb
  199. +252 −0 trunk/test/test_gem_platform.rb
  200. +702 −0 trunk/test/test_gem_remote_fetcher.rb
  201. +223 −0 trunk/test/test_gem_requirement.rb
  202. +301 −0 trunk/test/test_gem_server.rb
  203. +887 −0 trunk/test/test_gem_source_index.rb
  204. +449 −0 trunk/test/test_gem_source_info_cache.rb
  205. +79 −0 trunk/test/test_gem_source_info_cache_entry.rb
  206. +313 −0 trunk/test/test_gem_spec_fetcher.rb
  207. +960 −0 trunk/test/test_gem_specification.rb
  208. +117 −0 trunk/test/test_gem_stream_ui.rb
  209. +87 −0 trunk/test/test_gem_uninstaller.rb
  210. +70 −0 trunk/test/test_gem_validator.rb
  211. +215 −0 trunk/test/test_gem_version.rb
  212. +77 −0 trunk/test/test_gem_version_option.rb
  213. +65 −0 trunk/test/test_kernel.rb
  214. +56 −0 trunk/util/CL2notes
  215. +212 −0 trunk/util/gem_prelude.rb
View
18 trunk/.autotest
@@ -0,0 +1,18 @@
+Autotest.add_hook :initialize do |at|
+ at.order = :natural # I am a bad person - Eric Hodel
+
+ at.add_exception %r%/\.svn/%
+ at.add_exception %r%\.rbc$%
+
+ at.find_directories.clear
+ at.find_directories.push 'lib', 'test'
+
+ at.add_mapping %r%^lib/rubygems.rb$% do |_, m|
+ "test/test_gem.rb"
+ end
+
+ at.add_mapping %r%^lib/rubygems/(.*).rb$% do |_, m|
+ "test/test_gem_#{m[1].gsub '/', '_'}.rb"
+ end
+end
+
View
4 trunk/.document
@@ -0,0 +1,4 @@
+README.txt
+lib
+GPL.txt
+LICENSE.txt
View
4,979 trunk/ChangeLog
4,979 additions, 0 deletions not shown
View
340 trunk/GPL.txt
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
View
53 trunk/LICENSE.txt
@@ -0,0 +1,53 @@
+RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim
+Weirich and others. You can redistribute it and/or modify it under
+either the terms of the GPL (see the GPL.txt file), or the conditions
+below:
+
+ 1. You may make and give away verbatim copies of the source form of the
+ software without restriction, provided that you duplicate all of the
+ original copyright notices and associated disclaimers.
+
+ 2. You may modify your copy of the software in any way, provided that
+ you do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise
+ make them Freely Available, such as by posting said
+ modifications to Usenet or an equivalent medium, or by allowing
+ the author to include your modifications in the software.
+
+ b) use the modified software only within your corporation or
+ organization.
+
+ c) rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided.
+
+ d) make other distribution arrangements with the author.
+
+ 3. You may distribute the software in object code or executable
+ form, provided that you do at least ONE of the following:
+
+ a) distribute the executables and library files of the software,
+ together with instructions (in the manual page or equivalent)
+ on where to get the original distribution.
+
+ b) accompany the distribution with the machine-readable source of
+ the software.
+
+ c) give non-standard executables non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 4. You may modify and include the part of the software into any other
+ software (possibly commercial).
+
+ 5. The scripts and library files supplied as input to or produced as
+ output from the software do not automatically fall under the
+ copyright of the software, but belong to whomever generated them,
+ and may be sold commercially, and may be aggregated with this
+ software.
+
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
View
69 trunk/README
@@ -0,0 +1,69 @@
+= RubyGems
+
+(See Releases for release-specific information)
+
+== Installation
+
+Get it from RubyForge (http://rubygems.rubyforge.org) and run (as root, if appropriate and necessary)
+
+ ruby setup.rb
+
+For more details and other options, see:
+
+ ruby setup.rb --help
+
+* {User Guide/Installation}[http://docs.rubygems.org/read/chapter/3]
+
+== For User Documentation, see
+
+* {RubyGems User Guide}[http://docs.rubygems.org/read/book/1]
+* {Frequently Asked Questions}[http://docs.rubygems.org/read/book/3]
+
+== For developer docs see
+
+* {Creating Gems}[http://docs.rubygems.org/read/chapter/5]
+* {GEM Specification}[http://docs.rubygems.org/read/chapter/20]
+
+== The home page of the RubyGems Documentation
+
+* {RubyGems Home}[http://rubygems.rubyforge.org]
+
+== Additional directories
+
+[./bin/...] binary commands (gem, gem_server, etc)
+[./lib/...] the RubyGems library
+[./pkgs/...] default RubyGems packages (currently only 'sources')
+[./test/...] unit and functional tests
+
+== Credits
+
+RubyGems was originally developed at RubyConf 2003 by:
+
+* Rich Kilmer -- rich(at)infoether.com
+* Chad Fowler -- chad(at)chadfowler.com
+* David Black -- dblack(at)wobblini.net
+* Paul Brannan -- paul(at)atdesk.com
+* Jim Weirch -- {jim(at)weirichhouse.org}[mailto:jim@weirichhouse.org]
+
+== Contributors since then
+
+* Gavin Sinclair -- gsinclair(at)soyabean.com.au
+* George Marrows-- george.marrows(at)ntlworld.com
+* Dick Davies -- rasputnik(at)hellooperator.net
+* Mauricio Fernandez -- batsman.geo(at)yahoo.com
+* Simon Strandgaard -- neoneye(at)adslhome.dk
+* Dave Glasser -- glasser(at)mit.edu
+* Paul Duncan -- pabs(at)pablotron.org
+* Ville Aine -- vaine(at)cs.helsinki.fi
+* Ryan Davis --
+* Eric Hodel -- drbrain(at)segment7.net
+
+(If your name is missing, PLEASE let us know!)
+
+== Feedback
+
+Please provide us feedback at http://rubyforge.org/projects/rubygems
+
+Thanks!
+
+-The RubyGems Team
View
462 trunk/Rakefile
@@ -0,0 +1,462 @@
+# Rakefile for RubyGems -*- ruby -*-
+
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+$:.unshift 'lib'
+
+require 'rubygems'
+require 'rake/clean'
+require 'rake/testtask'
+require 'rake/packagetask'
+require 'rake/gempackagetask'
+require 'rake/rdoctask'
+
+def announce(msg='')
+ $stderr.puts msg
+end
+
+def generate_rubygems_version(path, version)
+ open path, 'w' do |f|
+ f.puts <<-EOF
+# DO NOT EDIT
+# This file is auto-generated by build scripts.
+# See: rake update_version
+module Gem
+ RubyGemsVersion = '#{version}'
+end
+ EOF
+ end
+end
+
+if RUBY_PLATFORM.match('mswin')
+ ENV['CERT_DIR'] ||= (File.join(ENV['USERPROFILE'], '.gem'))
+else
+ ENV['CERT_DIR'] ||= File.expand_path(File.join('~', '.gem'))
+end
+
+PKG_NAME = 'rubygems'
+def package_version
+ `ruby -Ilib bin/gem environment packageversion`.chomp
+end
+
+if ENV['REL']
+ PKG_VERSION = ENV['REL']
+ CURRENT_VERSION = package_version
+else
+ PKG_VERSION = package_version
+ CURRENT_VERSION = PKG_VERSION
+end
+
+CLEAN.include("COMMENTS")
+CLOBBER.include(
+ 'InstalledFiles',
+ "test/data/one/one-*0.0.1.gem",
+ "test/temp",
+ 'test/mock/gem/doc',
+ 'test/mock/gem/cache',
+ 'test/data/gemhome',
+ 'test/data/[a-z]*.gem',
+ 'scripts/*.hieraki',
+ 'data__',
+ 'html',
+ 'pkgs/sources/sources*.gem',
+ '.config',
+ '**/debug.log',
+ 'logs',
+ '*.out'
+ )
+CLOBBER.exclude('test/data/broken-1.0.0.gem')
+
+desc "Run all tests"
+task :default => [:test]
+
+desc "Run unit tests (functionals fail on win32)"
+task :test => [:test_units]
+
+desc "Run just the unit tests"
+Rake::TestTask.new(:test_units) do |t|
+ t.test_files = FileList['test/test*.rb']
+ t.warning = true
+end
+
+desc "Run just the functional tests"
+Rake::TestTask.new(:test_functional) do |t|
+ t.test_files = FileList['test/functional*.rb']
+ t.warning = true
+end
+
+desc "Run the unit and functional tests"
+Rake::TestTask.new(:test_all) do |t|
+ t.test_files = FileList['test/{test,functional}*.rb']
+ t.warning = true
+end
+
+desc "Run the tests for a build"
+task :build_tests do
+ html_dir = ENV['TESTRESULTS'] || 'html/tests'
+ ruby %{-Ilib scripts/buildtests.rb #{html_dir}}
+ open("#{html_dir}/summary.html") do |inf|
+ open("#{html_dir}/summary.new", "w") do |outf|
+ inf.each do |line|
+ if line =~ /td align/
+ line = " <td align=\"left\">#{Time.now}</td><td align=\"right\">"
+ end
+ outf.puts line
+ end
+ end
+ end
+ mv "#{html_dir}/summary.html", "#{html_dir}/summary.old"
+ mv "#{html_dir}/summary.new", "#{html_dir}/summary.html"
+end
+
+# Shortcuts for test targets
+task :tf => [:test_functional]
+task :tu => [:test_units]
+task :ta => [:test_all]
+
+task :gemtest do
+ ruby %{-Ilib -rscripts/runtest -e 'run_tests("test/test_gempaths.rb", true)'}
+end
+
+# --------------------------------------------------------------------
+# Creating a release
+
+desc "Make a new release"
+task :release => [
+ :prerelease,
+ :clobber,
+ :test_all,
+ :update_version,
+ :package,
+ :tag] do
+
+ announce
+ announce "**************************************************************"
+ announce "* Release #{PKG_VERSION} Complete."
+ announce "* Packages ready to upload."
+ announce "**************************************************************"
+ announce
+end
+
+desc "Validate that everything is ready to go for a release."
+task :prerelease do
+ announce
+ announce "**************************************************************"
+ announce "* Making RubyGem Release #{PKG_VERSION}"
+ announce "* (current version #{CURRENT_VERSION})"
+ announce "**************************************************************"
+ announce
+
+ # Is a release number supplied?
+ raise "Usage: rake release REL=x.y.z [REUSE=tag_suffix]" unless ENV['REL']
+
+ # Is the release different than the current release.
+ # (or is REUSE set?)
+ if PKG_VERSION == CURRENT_VERSION && ! ENV['REUSE']
+ raise "Current version is #{PKG_VERSION}, must specify REUSE=tag_suffix to reuse version"
+ end
+
+ # Are all source files checked in?
+ if ENV['RELTEST']
+ announce "Release Task Testing, skipping checked-in file test"
+ else
+ announce "Checking for unchecked-in files..."
+ data = `svn st`
+ unless data =~ /^$/
+ abort "svn status is not clean ... do you have unchecked-in files?"
+ end
+ announce "No outstanding checkins found ... OK"
+ end
+end
+
+task :update_version => [:prerelease] do
+ if PKG_VERSION == CURRENT_VERSION
+ announce "No version change ... skipping version update"
+ else
+ announce "Updating RubyGem version to #{PKG_VERSION}"
+
+ generate_rubygems_version 'lib/rubygems/rubygems_version.rb', PKG_VERSION
+
+ if ENV['RELTEST']
+ announce "Release Task Testing, skipping commiting of new version"
+ else
+ sh %{svn commit -m "Updated to version #{PKG_VERSION}" lib/rubygems/rubygems_version.rb} # "
+ end
+ end
+end
+
+task :tag => [:prerelease] do
+ reltag = "REL_#{PKG_VERSION.gsub(/\./, '_')}"
+ reltag = "REL_#{ENV['REUSE'].gsub(/\./, '_')}" if ENV['REUSE']
+ announce "Tagging SVN with [#{reltag}]"
+ software_dir = File.basename(Dir.pwd)
+ if ENV['RELTEST']
+ announce "Release Task Testing, skipping SVN tagging (in dir #{software_dir})"
+ else
+ sh %{svn copy svn+ssh://rubyforge.org/var/svn/rubygems/trunk svn+ssh://rubyforge.org/var/svn/rubygems/tags/#{reltag}}
+ end
+end
+
+# --------------------------------------------------------------------
+
+begin # rcov
+ require 'rcov/rcovtask'
+
+ Rcov::RcovTask.new do |t|
+ t.libs << "test"
+ t.rcov_opts = ['-xRakefile', '-xrakefile', '-xpublish.rf', '--text-report']
+ t.test_files = FileList[
+ 'test/{functional,test}*.rb'
+ ]
+ t.verbose = true
+ end
+rescue LoadError
+end
+
+# --------------------------------------------------------------------
+# Create a task to build the RDOC documentation tree.
+
+desc "Create the RDOC html files"
+Rake::RDocTask.new("rdoc") { |rdoc|
+ rdoc.rdoc_dir = 'html'
+ rdoc.title = "RubyGems"
+ rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README'
+ rdoc.rdoc_files.include('README', 'TODO', 'LICENSE.txt', 'GPL.txt')
+ rdoc.rdoc_files.include('lib/**/*.rb')
+ rdoc.rdoc_files.include('doc/**/*.rdoc')
+}
+
+desc "Publish the RDOCs on RubyForge"
+task :publish_rdoc => ["html/index.html"] do
+ # NOTE: This task assumes that you have an SSH alias setup for rubyforge.
+ mkdir_p "emptydir"
+ sh "scp -rq emptydir rubyforge:/var/www/gforge-projects/rubygems/rdoc"
+ sh "scp -rq html/* rubyforge:/var/www/gforge-projects/rubygems/rdoc"
+ rm_r "emptydir"
+end
+
+# Wiki Doc Targets
+
+desc "Upload the Hieraki Data"
+task :upload => [:upload_gemdoc]
+
+task :upload_gemdoc => ['scripts/gemdoc.hieraki'] do
+ ruby %{scripts/upload_gemdoc.rb}
+end
+
+desc "Build the Hieraki documentation"
+task :hieraki => ['scripts/gemdoc.hieraki', 'scripts/specdoc.hieraki']
+
+file 'scripts/gemdoc.hieraki' => ['scripts/gemdoc.rb', 'scripts/gemdoc.data'] do
+ chdir('scripts') do
+ ruby %{-I../lib gemdoc.rb <gemdoc.data >gemdoc.hieraki}
+ end
+end
+
+file 'scripts/specdoc.hieraki' =>
+ ['scripts/specdoc.rb', 'scripts/specdoc.data', 'scripts/specdoc.yaml'] do
+ chdir('scripts') do
+ ruby %{-I../lib specdoc.rb >specdoc.hieraki}
+ end
+end
+
+# Package tasks
+
+PKG_FILES = FileList[
+ ".document",
+ "ChangeLog",
+ "GPL.txt",
+ "LICENSE.txt",
+ "README",
+ "Rakefile",
+ "TODO",
+ "bin/*",
+ "doc/release_notes/*",
+ "lib/**/*.rb",
+ "pkgs/**/*",
+ "scripts/*.rb",
+ "setup.rb",
+ "test/**/*"
+]
+
+PKG_FILES.exclude %r(^test/temp(/|$))
+PKG_FILES.exclude %r(\*\.rbc$)
+
+task :package_files do
+ puts PKG_FILES.join("\n")
+end
+
+Rake::PackageTask.new("package") do |p|
+ p.name = PKG_NAME
+ p.version = PKG_VERSION
+ p.need_tar = true
+ p.need_zip = true
+ p.package_files = PKG_FILES
+end
+
+warn_unsigned = true
+
+Spec = Gem::Specification.new do |s|
+ s.name = PKG_NAME + "-update"
+ s.version = PKG_VERSION
+ s.required_ruby_version = Gem::Requirement.new '> 1.8.3'
+ s.summary = "RubyGems Update GEM"
+ s.description = %{RubyGems is a package management framework for Ruby. This Gem
+is a update for the base RubyGems software. You must have a base
+installation of RubyGems before this update can be applied.
+}
+ s.files = PKG_FILES.to_a
+ s.require_path = 'lib'
+ s.authors = ['Jim Weirich', 'Chad Fowler', 'Eric Hodel']
+ s.email = "rubygems-developers@rubyforge.org"
+ s.homepage = "http://rubygems.rubyforge.org"
+ s.rubyforge_project = "rubygems"
+ s.bindir = "bin" # Use these for applications.
+ s.executables = ["update_rubygems"]
+ certdir = ENV['CERT_DIR']
+ if certdir then
+ key = File.join certdir, 'gem-private_key.pem'
+ cert = File.join certdir, 'gem-public_cert.pem'
+
+ if File.exist? key and File.exist? cert then
+ s.signing_key = File.join(certdir, 'gem-private_key.pem')
+ s.cert_chain = [File.join(certdir, 'gem-public_cert.pem')]
+ warn_unsigned = false
+ else
+ warn_unsigned = true
+ end
+ end
+end
+
+# Add console output about signing the Gem
+file "pkg/#{Spec.full_name}.gem" do
+ if warn_unsigned then
+ warn "WARNING: gem will not be signed, no key or certificate found in #{ENV['CERT_DIR']}"
+ else
+ puts "Signed with certificates in '#{ENV['CERT_DIR']}'"
+ end
+end
+
+Rake::GemPackageTask.new(Spec) do |p| end
+
+desc "Build the Gem spec file for the rubygems-update package"
+task :gemspec => "pkg/rubygems-update.gemspec"
+file "pkg/rubygems-update.gemspec" => ["pkg", "Rakefile"] do |t|
+ open(t.name, "w") do |f| f.puts Spec.to_yaml end
+end
+
+desc "Install RubyGems"
+task :install do
+ opts = ENV['SETUP_OPTIONS']
+ ruby "setup.rb #{opts}".strip
+
+ svnversion = `svnversion`.split(':').last.sub(/[^\d]/, '').strip
+
+ unless svnversion.empty? then
+ File.read('lib/rubygems/rubygems_version.rb') =~ /RubyGemsVersion = '(.*)'/
+ current_version = $1.split '.', 4
+ rubygems_version = (current_version[0, 3] << svnversion).join '.'
+ rubygems_version_file = File.join Gem::ConfigMap[:sitelibdir], 'rubygems',
+ 'rubygems_version.rb'
+
+ generate_rubygems_version rubygems_version_file, rubygems_version
+ end
+end
+
+desc "Run local 'gem' e.g. rake rungem -- install -i ~/tmp/gems"
+task :rungem do
+ ARGV.shift
+ exec(Gem.ruby, '-Ilib', 'bin/gem', *ARGV)
+end
+
+# Misc Tasks ---------------------------------------------------------
+
+def egrep(pattern)
+ Dir['{bin,lib,test,util}/**/*.rb'].each do |fn|
+ count = 0
+ open(fn) do |f|
+ while line = f.gets
+ count += 1
+ if line =~ pattern
+ puts "#{fn}:#{count}:#{line}"
+ end
+ end
+ end
+ end
+end
+
+desc "Look for TODO and FIXME tags in the code"
+task :todo do
+ egrep /#.*(FIXME|TODO|TBD)/
+end
+
+desc "Look for Debugging print lines"
+task :dbg do
+ egrep /\bDBG|\bbreakpoint\b/
+end
+
+desc "List all ruby files"
+task :rubyfiles do
+ puts Dir['**/*.rb'].reject { |fn| fn =~ /^pkg/ }
+ puts Dir['bin/*'].reject { |fn| fn =~ /CVS|(~$)|(\.rb$)/ }
+end
+
+task :rf => :rubyfiles
+
+# These tasks expect to have the following directory structure:
+#
+# git/git.rubini.us/code # Rubinius git HEAD checkout
+# svn/ruby/trunk # ruby subversion HEAD checkout
+# svn/rubygems/trunk # RubyGems subversion HEAD checkout
+#
+# If you don't have this directory structure, set RUBY_PATH and/or
+# RUBINIUS_PATH.
+
+diff_options = "-urpN --exclude '*svn*' --exclude '*swp' --exclude '*rbc'"
+rsync_options = "-avP --exclude '*svn*' --exclude '*swp' --exclude '*rbc' --exclude '*.rej' --exclude '*.orig' --exclude 'lib/rubygems/defaults/*'"
+
+rubinius_dir = ENV['RUBINIUS_PATH'] || '../../../git/git.rubini.us/code'
+ruby_dir = ENV['RUBY_PATH'] || '../../ruby/trunk'
+
+desc "Updates Ruby HEAD with the currently checked-out copy of RubyGems."
+task :update_ruby do
+ sh "rsync #{rsync_options} bin/gem #{ruby_dir}/bin/gem"
+ sh "rsync #{rsync_options} lib/ #{ruby_dir}/lib"
+ sh "rsync #{rsync_options} test/ #{ruby_dir}/test/rubygems"
+ sh "rsync #{rsync_options} util/gem_prelude.rb #{ruby_dir}/gem_prelude.rb"
+end
+
+desc "Diffs Ruby HEAD with the currently checked-out copy of RubyGems."
+task :diff_ruby do
+ options = "-urpN --exclude '*svn*' --exclude '*swp' --exclude '*rbc'"
+
+ sh "diff #{diff_options} bin/gem #{ruby_dir}/bin/gem; true"
+ sh "diff #{diff_options} lib/ubygems.rb #{ruby_dir}/lib/ubygems.rb; true"
+ sh "diff #{diff_options} lib/rubygems.rb #{ruby_dir}/lib/rubygems.rb; true"
+ sh "diff #{diff_options} lib/rubygems #{ruby_dir}/lib/rubygems; true"
+ sh "diff #{diff_options} lib/rbconfig #{ruby_dir}/lib/rbconfig; true"
+ sh "diff #{diff_options} test #{ruby_dir}/test/rubygems; true"
+ sh "diff #{diff_options} util/gem_prelude.rb #{ruby_dir}/gem_prelude.rb; true"
+end
+
+desc "Updates Rubinius HEAD with the currently checked-out copy of RubyGems."
+task :update_rubinius do
+ sh "rsync #{rsync_options} bin/gem #{rubinius_dir}/lib/bin/gem"
+ sh "rsync #{rsync_options} lib/ #{rubinius_dir}/lib"
+ sh "rsync #{rsync_options} test/ #{rubinius_dir}/test/rubygems"
+ sh "rsync #{rsync_options} util/gem_prelude.rb #{rubinius_dir}/kernel/core/gem_prelude.rb"
+end
+
+desc "Diffs Rubinius HEAD with the currently checked-out copy of RubyGems."
+task :diff_rubinius do
+ sh "diff #{diff_options} bin/gem #{rubinius_dir}/lib/bin/gem; true"
+ sh "diff #{diff_options} lib/ubygems.rb #{rubinius_dir}/lib/ubygems.rb; true"
+ sh "diff #{diff_options} lib/rubygems.rb #{rubinius_dir}/lib/rubygems.rb; true"
+ sh "diff #{diff_options} lib/rubygems #{rubinius_dir}/lib/rubygems; true"
+ sh "diff #{diff_options} test #{rubinius_dir}/test/rubygems; true"
+ sh "diff #{diff_options} util/gem_prelude.rb #{rubinius_dir}/kernel/core/gem_prelude.rb; true"
+end
View
1  trunk/TODO
@@ -0,0 +1 @@
+* optional dependencies: "semitar can use REXML, but it works better if you have the ruby raptor library installed", or not so optional as in: "you need Ruby/RSS > = 1.0 OR rss > 0.91 for this library to work"
View
28 trunk/bin/gem
@@ -0,0 +1,28 @@
+#!/usr/bin/env ruby
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+require 'rubygems'
+require 'rubygems/gem_runner'
+require 'rubygems/exceptions'
+
+required_version = Gem::Requirement.new "> 1.8.3"
+
+unless required_version.satisfied_by? Gem.ruby_version then
+ abort "Expected Ruby Version #{required_version}, was #{Gem.ruby_version}"
+end
+
+# We need to preserve the original ARGV to use for passing gem options
+# to source gems. If there is a -- in the line, strip all options after
+# it...its for the source building process.
+args = !ARGV.include?("--") ? ARGV.clone : ARGV[0...ARGV.index("--")]
+
+begin
+ Gem::GemRunner.new.run args
+rescue Gem::SystemExitException => e
+ exit e.exit_code
+end
+
View
38 trunk/bin/update_rubygems
@@ -0,0 +1,38 @@
+#!/usr/bin/env ruby
+#--
+# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
+# All rights reserved.
+# See LICENSE.txt for permissions.
+#++
+
+require 'rubygems'
+
+if ARGV.include? '-h' or ARGV.include? '--help' then
+ puts "rubygems_update [options]"
+ puts
+ puts "This will install the latest version of RubyGems."
+ puts
+ puts "\t--version=X.Y\tUpdate rubygems from the X.Y version."
+ exit
+end
+
+unless ARGV.grep(/--version=([\d\.]*)/).empty? then
+ exec "#{Gem.ruby} -S #{$PROGRAM_NAME} _#{$1}_"
+end
+
+update_dir = $LOAD_PATH.find { |fn| fn =~ /rubygems-update/ }
+
+if update_dir.nil?
+ puts "Error: Cannot find RubyGems Update Path!"
+ puts
+ puts "RubyGems has already been updated."
+ puts "The rubygems-update gem may now be uninstalled."
+ puts "E.g. gem uninstall rubygems-update"
+else
+ update_dir = File.dirname(update_dir)
+ Dir.chdir update_dir
+ update_dir =~ /([0-9.]*)$/
+ RGVERSION = $1
+ puts "Installing RubyGems #{RGVERSION}"
+ system "#{Gem.ruby} setup.rb #{ARGV.join(' ')}"
+end
View
29 trunk/doc/release_notes/docs-rubygems-announce.rdoc
@@ -0,0 +1,29 @@
+== Announcing the RubyGems Documentation Site
+
+http://docs.rubygems.org
+
+Concurrent with RubyGems 0.8.7, I am very pleased to announce the
+public release of the RubyGems documentation website. This site is
+built upon the excellent Hieraki application (the same one used to
+document Ruby on Rails).
+
+After fighting with wiki spammers and missing data, the RubyGems team
+decided to move the documentation to something a little more durable
+than a wiki page. The content from the wiki pages have been reviewed,
+reorganized, and moved to the docs.rubygems.org site.
+
+The move is not complete, there is still information on the wiki that
+has not made it into the RubyGems document set yet. But we will
+continue to convert the site as time goes on.
+
+We feel the Hieraki application gives us a much better opportunity to
+provide quality documentation for the RubyGems system. We hope you
+enjoy it.
+
+Thanks to Tobias Lütke for Hieraki and to Bruce Williams for the
+RubyGems icon.
+
+If you are interested in helping with the RubyGems documentation,
+please contact Jim Weirich (jim@weirichhouse.org) or Chad Fowler
+(chad@chadfowler.com) about becoming an RubyGems document author.
+
View
4 trunk/doc/release_notes/rel_0_2_0.rdoc
@@ -0,0 +1,4 @@
+== Release 0.2.0: March 14, 2004
+
+* Initial public release
+
View
21 trunk/doc/release_notes/rel_0_3_0.rdoc
@@ -0,0 +1,21 @@
+== Release 0.3.0: April 30, 2004
+
+* Cleanup of command-line arguments and handling. Most commands accept a
+ --local or --remote modifier.
+* Creation of Application Gems (packages that include executable programs).
+ See http://rubygems.rubyforge.org/wiki/wiki.pl?DeveloperGuide for information
+ on how to use it.
+* Basic functionality for installing binary gems from source (:extensions
+ property of gem specification holds an array of paths to extconf.rb files to
+ be used for compilation)
+* Install library "stub" allowing a normal 'require' to work (which then does
+ the rubygems require and 'require_gem'
+* --run-tests runs the test suite specified by the "test_suite_file" property
+ of a gem specification
+* HTTP Proxy support works. Rewrite of HTTP code.
+* Unit and functional tests added (see Rakefile).
+* Prompt before remote-installing dependencies during gem installation.
+* Config file for storing preferences for 'gem' command usage.
+* Generally improved error messages (still more work to do)
+* Rearranged gem directory structure for cleanliness.
+
View
4 trunk/doc/release_notes/rel_0_4_0.rdoc
@@ -0,0 +1,4 @@
+== Release 0.4.0: May 31, 2004
+
+* Minor bug fixes including Windows compatability issues
+
View
26 trunk/doc/release_notes/rel_0_5_0.rdoc
@@ -0,0 +1,26 @@
+== Release 0.5.0: Jun 6, 2004
+
+* Jim added the ability to specify version constraints to avoid API
+ incompatibilities. This has been the subject of much debate for the past
+ couple of months, with many ideas and code contributed by Eivind Eklund and
+ Mauricio Fernandez. The following set of assertions shows how it works:
+
+ assert_inadequate("1.3", "~> 1.4")
+ assert_adequate( "1.4", "~> 1.4")
+ assert_adequate( "1.5", "~> 1.4")
+ assert_inadequate("2.0", "~> 1.4") # This one is key--the new operator
+ # disallows major version number
+ # differences.
+
+* Group gem search output when multiple versions exist for a given gem:
+
+ activerecord (0.7.8, 0.7.7, 0.7.6, 0.7.5)
+ Implements the ActiveRecord pattern for ORM.
+
+* Add arbitrary RDoc-able files via gemspec (not just Ruby source files) for
+ people who have, for example, README.rdoc in their distributions. Add to
+ gemspec via: spec.extra_rdoc_files = ["list", "of", "files"]. Ruby files are
+ automatically included.
+
+* Some small bug fixes
+
View
16 trunk/doc/release_notes/rel_0_6_0.rdoc
@@ -0,0 +1,16 @@
+== Release 0.6.0: Jun 8, 2004
+
+* Collapse output of --search and --list (and gem_server) operations so that
+ each gem is listed only once, with each of its versions listed on the same
+ line.
+
+* bin/gem: new --upgrade-all option allows one to upgrade every installed gem
+
+* new #required_ruby_version attribute added to gem specification for
+ specifying a dependency on which version of ruby the gem needs. Format it
+ accepts is the same as the Gem::Version::Requirement format:
+
+ spec.required_ruby_version = "> 1.8.0"
+
+* --install-stub defaults to true, so library stubs are created
+
View
4 trunk/doc/release_notes/rel_0_7_0.rdoc
@@ -0,0 +1,4 @@
+== Release 0.7.0: Jul 9, 2004
+
+* See ChangeLog.
+
View
23 trunk/doc/release_notes/rel_0_8_0.rdoc
@@ -0,0 +1,23 @@
+== Release 0.8.0: Sep 12, 2004
+
+* Remove need for library stubs. Set the RUBYOPT environment variable to
+ include "rrubygems", and a normal require will find gem files. Continue to
+ use 'require_gem gem_name, version' to specify gem versions.
+* Deprecated "test_suite_file" gemspec attribute in favor of "test_files" array.
+* Generates rdoc by default on installs.
+* Adopted tar/gzip file format, thanks to Mauricio Fernandez.
+* "gem rdoc" allows generation of rdoc after gem installation (will add a "gem
+ test"
+* Application stubs can now accept an optional parameter of _VERSION_ that will
+ run an arbitrary version of the application requested.
+* Various bug fixes
+* Various platform-independency improvements
+* "gem spec --all" displays spec info for all installed version of a given gem.
+* Dynamic caching of sources
+* Support for user-definable sources on the command line (thanks Assaph Mehr)
+* More intelligent support for platform-dependent gems. Use Platform::CURRENT
+ when building a gem to set its platform to the one you're building on.
+ Installation displays a choice of platform-dependent gems, allowing the user
+ to pick.
+* Added "gem unpack" for "unpacking" a gem to the current directory
+
View
4 trunk/doc/release_notes/rel_0_8_1.rdoc
@@ -0,0 +1,4 @@
+== Release 0.8.1: Sep 14, 2004
+
+* Quick release to capture some bug fixes.
+
View
70 trunk/doc/release_notes/rel_0_8_10.rdoc
@@ -0,0 +1,70 @@
+= Announce: RubyGems Release 0.8.10
+
+Version 0.8.10 is bug fix release. We address two bugs in this
+release, one obscure and the other only slightly annoying.
+
+In multi-user environments, it is common to supply mulitple versions
+of gems (for example Rails), allowing individual users to select the
+version of the gem they desire. This allows a user to be insulated
+from updates to that gem. RubyGems 0.8.10 fixes a problem where gems
+could occasionally become confused about the current versions of
+libraries selected by the user.
+
+The other annoying bug is that if there are any existing
+rubygems-update gems installed, then the "gem update --system" command
+will download a new udpate, but install the latest update prior to the
+download.
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby software
+fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes care
+of the details of installing, not only the gem you requested, but also
+any gems needed by the software you selected.
+
+== RubyGems Statistics
+
+* About 230 different gems available (I say _about_ because I don't
+ think "Bangkok" and "bangkok" are really different gems).
+* Over 30,000 downloads of the RubyGems software
+* 230,075 gem loads
+
+If you are interested in finding out when new gems are released, I
+maintain an RSS feed at http://onestepback.org/gemwatch.rss.
+
+== How can I get RubyGems?
+
+If you have a recent version of RubyGems (0.8.5 or later), then all
+you need to do is:
+
+ $ gem update --system (you might need to be admin/root)
+
+(Note: You may have to run the command twice if you have any previosly
+installed rubygems-update gems).
+
+If you have an older version of RubyGems installed, then you can still
+do it in two steps:
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+If you don't have any gems install, there is still the pre-gem
+approach to getting software ... doing it manually:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+== Thanks
+
+Thanks to Tobias Luetke for reporting the problem and assisting in
+tracking it down.
+
+Keep those gems coming!
+
+-- Jim & Chad (for the RubyGems team)
View
102 trunk/doc/release_notes/rel_0_8_11.rdoc
@@ -0,0 +1,102 @@
+= Announce: RubyGems Release 0.8.11
+
+RubyGems Version 0.8.11 is now available. This release includes a
+number of fixes and enhancements, including the work from the Seattle
+Ruby Brigade's RubyGems codefest.
+
+* Improved performance
+* Ability to sign gems (see http://docs.rubygems.org/read/chapter/21)
+* New Command: gem contents -- List the contents of an installed gem
+* New Command: gem rdoc -- Generate rdoc files from an installed gem
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby software
+fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes care
+of the details of installing, not only the gem you requested, but also
+any gems needed by the software you selected.
+
+== RubyGems Statistics
+
+* About 326 different gems available (Around 100 new gems since the
+ 0.8.10 release)
+* Nearly 64,000 downloads of the RubyGems software
+* Almost 600,000 gem downloads
+
+If you are interested in finding out when new gems are released, I
+maintain an RSS feed at http://onestepback.org/gemwatch.rss.
+
+== How can I get RubyGems?
+
+If you have a recent version of RubyGems (0.8.5 or later), then all
+you need to do is:
+
+ $ gem update --system (you might need to be admin/root)
+
+(Note: You may have to run the command twice if you have any previosly
+installed rubygems-update gems).
+
+If you have an older version of RubyGems installed, then you can still
+do it in two steps:
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+If you don't have any gems install, there is still the pre-gem
+approach to getting software ... doing it manually:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+== Recent Changes
+
+* -y is a synonym for --include-dependencies.
+* Better handling of errors in the top level rescue clause.
+* Package list command (e.g. gem inspect GEM).
+* .gemrc now allows cvsrc-like options to set defaults per subcommand.
+* The autorequire gem spec field will now accept a list.
+* Substituted Time for Date in specs, increasing performance
+ dramatically.
+* Fixed reported bug of gem directories ending in "-" (reported by
+ Erik Hatcher).
+* Fixed but in installer that caused dependency installation to not
+ work.
+* Added Paul Duncan's gem signing patch.
+* Added Mark Hubbart's Framework patch (for better integration with OS
+ X).
+* Added David Glasser's install-from-mirror patch.
+* Additional internal structural cleanup and test reorganization.
+
+== What's Next
+
+We will probably see one more release in the 0.8.x series (hopefully
+soon) where the source index download function will be revised to
+perform better with a large number gems.
+
+After that, the 0.9.x series will start unifying the local and remote
+installers to get more consistent behavior.
+
+== Thanks
+
+Major contributors to this release include:
+
+* Thanks to the Seattle Ruby Brigade (Doug Beaver, Ryan Davis, Pat
+ Eyler, Eric Hodel, Evan Webb, and Aaron Johnson) for the work they
+ did in their code fest.
+
+* Thanks to Paul Duncan for the gem signing patch.
+
+* Thanks to Mark Hubbart for the Mac OS X framework patch.
+
+* Thanks to Doug Kearns for catching some embarassing typos in several
+ error messages.
+
+Keep those gems coming!
+
+-- Jim & Chad (for the RubyGems team)
View
113 trunk/doc/release_notes/rel_0_8_3.rdoc
@@ -0,0 +1,113 @@
+= Announce: RubyGems Release 0.8.3
+
+Wow, over 8000 download of either the RubyGems package or the
+RubyGems-update gem! And over 150 different packages available as a
+gem. Things have really moved foreward.
+
+I am pleased to announce that a new point release of RubyGems is now
+available on RubyForge. This release is mostly a bug fix and code
+cleanup release. But the good news is that there are several really
+annoying issues that have been addressed in 0.8.3.
+
+But first ...
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby
+software fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes
+care of the details of installing, not only the gem you requested, but
+also any gems needed by the software you selected.
+
+So now you are asking ...
+
+== How can I get all this great stuff?
+
+Well, here's how ...
+
+To download and install:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+... or, if you have an existing RubyGem installation ....
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+I bet you are wondering...
+
+== So What's Changed in this Release?
+
+No real earth shattering news here, but there were a number of really
+annoying issues involving other libraries that RubyGems depends upon.
+0.8.3 contains some workarounds for these issues. In particular:
+
+* Added workaround for the null byte in Dir string issue. (see
+ http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121702).
+ (Thanks to Mauricio Fernández for the quick response on this one).
+
+* Added workaround for old version of Zlib on windows that caused
+ Ruwiki to fail to install. (see
+ http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121770)
+
+* Added workaround for large YAML file issues. (We dynamically cut
+ down the size of the source index YAML file and seem to have worked
+ around immediate issues.
+
+There has been some minor usability enhancements and changes ...
+
+* A user specific source index cache can be used when the site-wide
+ cache is unwritable (i.e. because you are running as a non-admin).
+ This *greatly* speeds up gem commands run in non-admin mode when the
+ site-wide cache is out of date.
+
+* The gem command now used an HTTP HEAD command to detect if the
+ server's source index needs to be downloaed.
+
+* gem check gemname --test will run unit tests on installed gems that
+ have unit tests.
+
+* Multiple gem names are allowed on the gem install command line.
+ This means you can do:
+
+ gem install rake rails needle postgres-pr pimki
+
+ (Ok, you get the idea)
+
+* Multiple authors my be specified in a Gem spec.
+
+* Switched to using setup.rb (rather than a custom install script) for
+ the installation of RubyGems itself. If you have installed RubyGems
+ before, double check the installation instructions and make sure you
+ use setup.rb instead of install.rb.
+
+* Ryan Davis has provided a patch so you can use an env variable
+ (GEM_SKIP), to tell loadpath_manager not to load gems of those
+ names. This was useful for him while testing libs that he had in
+ development.
+
+And finally there have been a number of internal changes, enhancements
+and just general cleanup. A lot of work has been done in the remote
+installer area (some of which you can see in the caching changes noted
+above) in preparation for unifying the local and remote logic so that
+there is less difference in installing local gems and remote gems. In
+particular, we want to be able to satisfy dependencies from locally
+available gem files. We are not there yet, but we are working on it.
+
+== Summary
+
+Thanks to everyone for the great feedback we have been getting.
+Please continue to let us know what you think and what you want. Many
+minor changes in this release were initiated/requested by folks other
+than the core gems team. That's great.
+
+And most of all, keep making and releasing those gems!
+
+-- Jim (for the RubyGems team)
+
View
51 trunk/doc/release_notes/rel_0_8_4.rdoc
@@ -0,0 +1,51 @@
+= Announce: RubyGems Release 0.8.4
+
+Hello and Happy New Year! We've now surpassed 10,000 downloads of RubyGems and are starting to see a real rhythm of new gems being published. Thanks to the efforts of many dedicated Rubyists, 2005 will be remembered as the year everything took shape in the world of ruby package distribution.
+
+We have just released RubyGems 0.8.4. 0.8.4 is a small release, but it fixes some fairly major installation issues (thanks Ryan Davis) and addresses some speed issues with requires (thanks Eric Hodel, Gavin Sinclair, and Jim Weirich).
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby
+software fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes
+care of the details of installing, not only the gem you requested, but
+also any gems needed by the software you selected.
+
+So now you are asking ...
+
+== How can I get all this great stuff?
+
+Well, here's how ...
+
+To download and install:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+... or, if you have an existing RubyGem installation ....
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+I bet you are wondering...
+
+== So What's Changed in this Release?
+
+* Rubygems 0.8.3's installer was broken unless you already had an older version of RubyGems installed. That's fixed.
+
+* Change in the way Gem::Specification internally deals with lazy attributes and defaults, bringing (with some loadpath_manager changes) a fairly significant increase in speed.
+
+* Support for lower-cased Gem file names (for you, Paul Duncan :)
+
+* Erik Veenstra's patch for making Gem versions sortable.
+
+Keep those gems coming!
+
+-- Chad (for the RubyGems team)
+
View
117 trunk/doc/release_notes/rel_0_8_5.rdoc
@@ -0,0 +1,117 @@
+= Announce: RubyGems Release 0.8.5
+
+Hello one and all. It is time for another RubyGems update. But first
+the numbers.
+
+Counting both the tarfile/zipfile download and the rubygem-update gem,
+we have exceed 20,000 downloads of the RubyGems software, and this
+doesn't count the number of RubyGems packages were downloaded as part of
+the Windows one-click installer. New gems are being published all the
+time. It was just a week or so ago when we saw the 200th gem released,
+and already we have more 213 unique gems available for download.
+
+We have just released RubyGems 0.8.5. This latest version of RubyGems
+has some new functionality, fixes a few bugs and makes some things look
+prettier. There are more changes in the works, but we wanted to get the
+new stuff out as fast as possible.
+
+== Faster Source Cache
+
+Do you know how you used to dread getting the following message while
+installing gems?
+
+ Updating Gem source index for: http://gems.rubyforge.org
+
+It could take up to 30 seconds (on my machine, even worse on others) for
+that crazy source index to update.
+
+This latest release of RubyGems speeds that wait time up considerably.
+The following table gives the following times for installing RedCloth
+with a required source index update on three system we had available to
+us. No RDoc generation was included in the following times.
+
+ RubyGems Linux Mac OSX Windows
+ 0.8.4 33 secs 73 secs 58 secs
+ 0.8.5 8 secs 14 secs 21 secs
+
+The new caching code is at least 3x faster than previous versions. Woo
+Hoo!
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby software
+fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes care
+of the details of installing, not only the gem you requested, but also
+any gems needed by the software you selected.
+
+So now you are asking ...
+
+== How can I get all this great stuff?
+
+Well, here's how ...
+
+To download and install:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+... or, if you have an existing RubyGem installation ....
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+== So What's Changed in this Release?
+
+* Fixed a bug where, during installation, partial matches on gem names
+ overshadowed an exact match on the gem name. Exact matches are now
+ required.
+
+* Applied Austin Ziegler/Kasper Schiess's patch to fix unit test running
+ bug.
+
+* Applied Lyle Johnson's patch to fix a problem with multiple require
+ paths.
+
+* "gem update" now accepts a list of gems and only updates the gems
+ listed on the command line. If no list is given then all gems are
+ updated (which is the bahvior of the previousversion.
+
+* gem_server has been updated with a very nice looking template. Thanks
+ to Martin Ankerl.
+
+* RubyGems now actively requires Ruby version 1.8.0 or better. Folks
+ trying to run RubyGems on OSX with the default Ruby installation will
+ now get a meaning error message (rather than mysteriously not
+ working).
+
+* Local source index caching is now /much/ faster. It now using Marshal
+ rather than Yaml.
+
+* The update command now supports a --system option to update the
+ RubyGems software its self. After installing 0.8.5, updating RubyGems
+ will be a one step process.
+
+* Dropped that really irritating warning about generating RDocs for
+ packages that didn't specify it had an RDoc. No one really cared
+ about the message and it was confusing to new users.
+
+* Errors encountered while using require now corrctly reported.
+
+* Misc. bug fixes. See the ChangeLog file for details.
+
+== Thanks
+
+I wish to give a special thanks to Lyle Johnson, Austing Ziegler, and
+Ksaper Schiess for the patches they provided. And a big thanks to
+Martin Ankerl for the HTML template upgrade to the gem_server package.
+It looks really great.
+
+Keep those gems coming!
+
+-- Jim & Chad (for the RubyGems team)
View
135 trunk/doc/release_notes/rel_0_8_7.rdoc
@@ -0,0 +1,135 @@
+= Announce: RubyGems Release 0.8.7
+
+Time passes quickly, and so does software development. Release 0.8.7
+of RubyGems is availble for public release. Although another point
+release, you will find a number of very nice new features.
+
+First the numbers, 220 different gems available, over 25,000
+downloads of RubyGems, and nearly 190,000 gems downloads. Thanks to
+everyone for their support.
+
+== What's New
+
+Even though it has only been a few weeks since that last release,
+there are quite a number of new features in 0.8.7. A complete list of
+new features will be given below, but here is a summary of the hot
+items.
+
+* The bug that prevented some users from installing rails has been
+ squashed. A big thanks to Bill Guindon (aGorilla) for helping track
+ that one down.
+
+There are several new commands available on the gem command:
+
+* gem cleanup GEMNAME -- Cleanup (uninstall) all the old versions of
+ gem. If the gem name is omitted, the entire repository is cleaned.
+
+* gem dependency GEMNAME -- Show the dependencies for the named gems.
+ This is really helpful when trying to figure out what gem needs what
+ other gem.
+
+There changes to the existing commands as well.
+
+* gem uninstall is much smarter about removing gems from the
+ repository. Lists of gems are now uninstalled in proper dependency
+ order (ie. if A depends on B, A is uninstalled first). Also,
+ warnings about broken dependencies occur only when removing the
+ *last* gem that supports a dependency is removed.
+
+Both gem install and gem uninstall support some new command line
+options that can reduce the amount of yes/no queries given the user.
+For install we have:
+
+* --ignore-dependencies -- Only install requests gems, no
+ dependendecies are automatically installed.
+* --include-dependencies -- Automatically install dependencies,
+ without confirmation.
+
+For gem uninstall, the new options are:
+
+* --all -- Uninstall all matching gems without confirmation.
+* --ignore-dependencies -- Uninstall, even if dependencies are broken.
+* --executables -- Remove executables without confirmation
+
+Under general cleanup, gems will not, by default, run RDoc on packages
+that do not have the RDoc flag set.
+
+And finally there is a new library file 'gemconfigure' to aid in
+writing version sensitive applications (without undue dependencies on
+RubyGems); and 'gemwhich', a short script to locate libraries in the
+file system. You can read more about them here:
+
+* gemconfigure: http://docs.rubygems.org/read/chapter/4#page73
+* gemwhich: http://docs.rubygems.org/read/chapter/17
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby software
+fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes care
+of the details of installing, not only the gem you requested, but also
+any gems needed by the software you selected.
+
+== How can I get all this great stuff?
+
+Well, here's how ...
+
+To download and install:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+... or, if you have RubyGems version 0.8.5 or later ....
+
+ $ gem update --system (again, might need to be admin/root)
+
+... If you don't have a recent RubyGems, you can still do the two-step ....
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+== Detailed Change List
+
+This list touches on most of the user visible changes in the RubyGems
+change log. See the change log file for even more details.
+
+* Fixed bug in cache manager that caused the cache to be reread every
+ time on Windows.
+
+* Removed annoying message about not finding .gemrc.
+
+* Uninstall command will now accept the following options:
+ * --all (uninstall all matches without query),
+ * --ignore-dependencies (ignore dependency constraints while
+ uninstalling),
+ * --executables (remove the executables without querying).
+
+* New command: "gem cleanup" will remove all old versions of the list
+ gems (or the entire repository).
+
+* Uninstalling now will only query if removing a gem actually will
+ cause a dependency to be unfulfilled.
+
+* A new library file "gemconfigure.rb" makes is easy to take advantage
+ of dynamic versioning without becoming tied to using RubyGems.
+
+* Source URIs given to the --source option will now assume an
+ "http://" prefix if one is not given.
+
+* New Command: "gem dependency" will show the dependency requirements
+ of any installed gem. Reverse dependencies are also supported.
+
+== Thanks
+
+Thanks to David Heinemeier Hansson for a number of suggestions that
+made it into this release. Also thanks go to Bill Guindon (aGorilla)
+and Jim Freeze for feedback and testing of intermediate versions.
+
+Keep those gems coming!
+
+-- Jim & Chad (for the RubyGems team)
View
109 trunk/doc/release_notes/rel_0_9_0.rdoc
@@ -0,0 +1,109 @@
+= Announce: RubyGems Release 0.9.0
+
+Finally, the much anticipated RubyGems version 0.9.0 is now available.
+This release includes a number of new features and bug fixes. The
+number one change is that we can now download the gem index
+incrementally. This will greatly speed up the gem command when only a
+few gems are out of date.
+
+Major Enhancments include:
+
+* The gem index is now downloaded incrementally, only updating entries
+ that are out of date. If more than 50 entries are out of date, we
+ revert back to a bulk download.
+* Several patches related to allowing RubyGems to work with
+ authenticating proxies (from Danie Roux and Anatol Pomozov). Just
+ put the user and password in the proxy URL (e.g. -p
+ http://user:password@proxy.address.com:8080) or use the
+ HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables.
+* The gem unpack command can now accept a file path rather than just a
+ install gem name.
+* Both RI and RDOC documents are now generated by default.
+* A gemri command is included to read gem RI docs (only needed for
+ Ruby 1.8.4 or earlier).
+
+Minor enhancements include:
+
+* Verison 0.0.0 is now a valid gem version.
+* Better detection of missing SSL functionality.
+* SSL is not required if the security policy does not require
+ signature checking.
+* Rake built extensions are now supported (Tilman Sauerbeck).
+* Several autorequire bug fixes.
+* --traceback is now an alias for --backtrace (I can never remember
+ which one it is).
+* SAFE=1 compatibility fixes.
+* .rbw is now a supported suffix for RubyGem's custom require.
+* Several Ruby 1.9 compatibility fixes (Eric Hodel).
+
+Bug Fixes:
+
+* Added dashes to gemspecs generated in Ruby 1.8.3. This solves some
+ cross-Ruby version compatibility issues.
+* Fixed bug where the wrong executables could be uninstalled (Eric
+ Hodel).
+* Fixed bug where gem unpack occasionally unpacked the wrong gem.
+* Fixed bug where a fatal error occured when permissions on .gemrc
+ were too restrictive (reported by Luca Pireddu).
+* Fixed prefix handling for native expressions (patch by Aaron Patterson).
+* Fixed several Upgrade => Update typos.
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby software
+fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes care
+of the details of installing, not only the gem you requested, but also
+any gems needed by the software you selected.
+
+== RubyGems Statistics
+
+* About 780 different gems are available from RubyForge
+* Over 350 thousand downloads of the RubyGems software
+* Over 4 million gem downloads
+
+If you are interested in finding out when new gems are released, I
+maintain an RSS feed at http://onestepback.org/gemwatch.rss.
+
+== How can I get RubyGems?
+
+If you have a recent version of RubyGems (0.8.5 or later), then all
+you need to do is:
+
+ $ gem update --system (you might need to be admin/root)
+
+(Note: You may have to run the command twice if you have any previosly
+installed rubygems-update gems).
+
+If you have an older version of RubyGems installed, then you can still
+do it in two steps:
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+If you don't have any gems install, there is still the pre-gem
+approach to getting software ... doing it manually:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+== What's Next
+
+The next big thing on the plate is to integrate the local/remote gem
+logic and make the whole thing more consistent.
+
+== Thanks
+
+Major contributors to this release include:
+
+* Danie Roux, Anatol Pomozov, Eric Hodel, Luca Pireddu, and Tilman
+ Sauerbeck.
+
+Keep those gems coming!
+
+-- Jim & Chad (for the RubyGems team)
View
69 trunk/doc/release_notes/rel_0_9_2.rdoc
@@ -0,0 +1,69 @@
+= Announce: RubyGems Release 0.9.2
+
+Release 0.9.2 is a maintenance release of RubyGems that fix some minor
+bugs in the 0.9.1 release.
+
+Bug Fixes Include:
+
+* The "unpack" command now works properly.
+* User name and password are now passed properly to the authenticating
+ proxy when downloading gems.
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby software
+fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes care
+of the details of installing, not only the gem you requested, but also
+any gems needed by the software you selected.
+
+== RubyGems Statistics
+
+* About 1300 different gems are available from RubyForge
+* Over 500 thousand downloads of the RubyGems software
+* Over 8.5 million gem downloads
+
+If you are interested in finding out when new gems are released, I
+maintain an RSS feed at http://onestepback.org/gemwatch.rss.
+
+== How can I get RubyGems?
+
+If you have a recent version of RubyGems (0.8.5 or later), then all
+you need to do is:
+
+ $ gem update --system (you might need to be admin/root)
+
+(Note: You may have to run the command twice if you have any previosly
+installed rubygems-update gems).
+
+If you have an older version of RubyGems installed, then you can still
+do it in two steps:
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+If you don't have any gems install, there is still the pre-gem
+approach to getting software ... doing it manually:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+== What's Next
+
+The next big thing on the plate is to integrate the local/remote gem
+logic and make the whole thing more consistent.
+
+== Thanks
+
+Major contributors to this release include:
+
+* Anatol Pomozov
+
+Keep those gems coming!
+
+-- Jim & Chad (for the RubyGems team)
View
66 trunk/doc/release_notes/rel_0_9_3.rdoc
@@ -0,0 +1,66 @@
+= Announce: RubyGems Release 0.9.3
+
+Release 0.9.3 is a maintenance release of RubyGems that fixes a problem
+with ZLib on Windows playforms.
+
+If you are experiencing "Buffer Error" problems with RubyGems, we
+recommend upgrading to RubyGems 0.9.3.
+
+Bug Fixes Include:
+
+The ZLib library on Windows will occasionally complains about a buffer
+error when unpacking gems. The Gems software has a workaround for
+that problem, but the workaround was only enabled for versions of ZLib
+1.2.1 or earlier. We have received several reports of the error
+occuring with ZLib 1.2.3, so we have permanently enabled the work
+around on all versions.
+
+== What is RubyGems?
+
+RubyGems is a package management system for Ruby applications and
+libraries. RubyGems one command download makes installing Ruby
+software fun and enjoyable again. (Ok, not really.)
+
+Many gems are available for download from the RubyForge site. Browse
+the list of gems with a "gem list --remote" command and download what
+you need with a simple "gem install <name-of-gem>". RubyGems takes
+care of the details of installing, not only the gem you requested, but
+also any gems needed by the software you selected.
+
+== How can I get RubyGems?
+
+If you have a recent version of RubyGems (0.8.5 or later), then all
+you need to do is:
+
+ $ gem update --system (you might need to be admin/root)
+
+(Note: You may have to run the command twice if you have any previosly
+installed rubygems-update gems).
+
+If you have an older version of RubyGems installed, then you can still
+do it in two steps:
+
+ $ gem install rubygems-update (again, might need to be admin/root)
+ $ update_rubygems (... here too)
+
+If you don't have any gems install, there is still the pre-gem
+approach to getting software ... doing it manually:
+
+1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
+2. UNPACK INTO A DIRECTORY AND CD THERE
+3. INSTALL WITH: ruby setup.rb all (you may need admin/root privilege)
+
+== What's Next
+
+The next big thing on the plate is to integrate the local/remote gem
+logic and make the whole thing more consistent.
+
+== Thanks
+
+Major contributors to this release include:
+
+* Jamis Buck (for discovering the ZLib problem).
+
+Keep those gems coming!
+
+-- Jim & Chad (for the RubyGems team)
View
67 trunk/doc/release_notes/rel_0_9_4.rdoc
@@ -0,0 +1,67 @@
+= Announce: RubyGems Release 0.9.4
+
+Release 0.9.4 is a maintenance release of RubyGems that fixes a number of small bugs.
+
+If you are experiencing problems with the source index (e.g. strange
+"No Method" errors), or problems with zlib (e.g. "Buffer Error"
+messsage), we recommend upgrading to RubyGems 0.9.4.
+
+Bug Fixes Include:
+
+* Several people have been experiencing problems with no method errors
+ on the source index cache. The source index cache is now a bit more
+ self healing. Furthermore, if the source index cache is
+ irreparable, then it is automatically dropped and reloaded.
+
+* The source cache files may now be dropped with the "gem sources
+ --clear-all" command. (This command may require root is the system
+ source cache is in a root protected area).
+
+* Several sub-commands were accidently dropped from the "gem" command.
+ These commands have been restored.