Merge pull request #1128 from voxik/patch-1
[rubygems] / History.txt
1 # coding: UTF-8
2
3 === 2.4.5 / 2014-12-03
4
5 Bug fixes:
6
7 * Improved speed of requiring gems.  (Around 25% for a 60 gem test).  Pull
8   request #1060 by unak.
9 * RubyGems no longer attempts to look up gems remotely with the --local flag.
10   Pull request #1084 by Jeremy Evans.
11 * Executable stubs use the correct gem version when RUBYGEMS_GEMDEPS is
12   active.  Issue #1072 by Michael Kaiser-Nyman.
13 * Fixed handling of pinned gems in lockfiles with versions.  Issue #1078 by
14   Ian Ker-Seymer.
15 * Fixed handling of git@example:gem.git URIs.  Issue #1054 by Mogutan Mogu.
16 * Fixed handling of platforms retrieved from the dependencies API.  Issue
17   #1058 and patch suggestion by tux-mind.
18 * RubyGems now suggests a copy-pasteable `gem pristine` command when
19   extensions are missing.  Pull request #1057 by Shannon Skipper.
20 * Improved errors for long file names when packaging.  Pull request #1016 by
21   Piotrek Bator.
22 * `gem pristine` now skips gems cannot be found remotely.  Pull request #1064
23   by Tuomas Kareinen.
24 * `gem pristine` now caches gems to the proper directory.  Pull request #1064
25   by Tuomas Kareinen.
26 * `gem pristine` now skips bundled gems properly.  Pull request #1064 by
27   Tuomas Kareinen.
28 * Improved interoperability of Vagrant with RubyGems.  Pull request #1057 by
29   Vít Ondruch.
30 * Renamed CONTRIBUTING to CONTRIBUTING.rdoc to allow markup.  Pull request
31   #1090 by Roberto Miranda.
32 * Switched from #partition to #reject as only one collection is used.  Pull
33   request #1074 by Tuomas Kareinen.
34 * Fixed installation of gems on systems using memory-mapped files.  Pull
35   request #1038 by Justin Li.
36 * Fixed bug in Gem::Text#min3 where `a == b < c`.  Pull request #1026 by
37   fortissimo1997.
38 * Fixed uninitialized variable warning in BasicSpecification.  Pull request
39   #1019 by Piotr Szotkowski.
40 * Removed unneeded exception handling for cyclic dependencies.  Pull request
41   #1043 by Jens Wille.
42 * Fixed grouped expression warning.  Pull request #1081 by André Arko.
43 * Fixed handling of platforms when writing lockfiles.
44
45 === 2.4.4 / 2014-11-12
46
47 Bug fixes:
48
49 * Add alternate Root CA for upcoming certificate change. Fixes #1050 by
50   Protosac
51
52 === 2.4.3 / 2014-11-10
53
54 Bug fixes:
55
56 * Fix redefine MirrorCommand issue. Pull request #1044 by @akr.
57 * Fix typo in platform= docs.  Pull request #1048 by @jasonrclark
58 * Add root SSL certificates for upcoming certificate change.  Fixes #1050 by
59   Protosac
60
61 === 2.4.2 / 2014-10-01
62
63 This release was sponsored by Ruby Central.
64
65 Bug fixes:
66
67 * RubyGems now correctly matches wildcard no_proxy hosts.  Issue #997 by
68   voelzemo.
69 * Added support for missing git_source method in the gem dependencies API.
70 * Fixed handling of git gems with an alternate install directory.
71 * Lockfiles will no longer be truncated upon resolution errors.
72 * Fixed messaging for `gem owner -a`.  Issue #1004 by Aaron Patterson, Ryan
73   Davis.
74 * Removed meaningless ensure.  Pull request #1003 by gogotanaka.
75 * Improved wording of --source option help.  Pull request #989 by Jason Clark.
76 * Empty build_info files are now ignored.  Issue #903 by Adan Alvarado.
77 * Gem::Installer ignores dependency checks when installing development
78   dependencies.  Issue #994 by Jens Willie.
79 * `gem update` now continues after dependency errors.  Issue #993 by aaronchi.
80 * RubyGems no longer warns about semantic version dependencies for the 0.x
81   range.  Issue #987 by Jeff Felchner, pull request #1006 by Hsing-Hui Hsu.
82 * Added minimal lock to allow multithread installation of gems.  Issue #982
83   and pull request #1005 by Yorick Peterse
84 * RubyGems now considers prerelease dependencies as it did in earlier versions
85   when --prerelease is given.  Issue #990 by Jeremy Tryba.
86 * Updated capitalization in README.  Issue #1010 by Ben Bodenmiller.
87 * Fixed activating gems from a Gemfile for default gems.  Issue #991 by khoan.
88 * Fixed windows stub script generation for Cygwin.  Issue #1000 by Brett
89   DiFrischia.
90 * Allow gem bindir and ruby.exe to live in separate diretories.  Pull request
91   #942 by Ian Flynn.
92 * Fixed handling of gemspec in gem dependencies files to match Bundler
93   behavior.  Issue #1020 by Michal Papis.
94 * Fixed `gem update` when updating to prereleases.  Issue #1028 by Santiago
95   Pastorino.
96 * RubyGems now fails immediately when a git reference cannot be found instead
97   of spewing git errors.  Issue #1031 by Michal Papis
98
99 === 2.4.1 / 2014-07-17
100
101 Bug fixes:
102
103 * RubyGems can now be updated on Ruby implementations that do not support
104   vendordir in RbConfig::CONFIG.  Issue #974 by net1957.
105
106 === 2.4.0 / 2014-07-16
107
108 Minor enhancements:
109
110 * The contents command now supports a --show-install-dir option that shows
111   only the directory the gem is installed in.  Feature request #966 by Akinori
112   MUSHA.
113 * Added a --build-root option to the install command for packagers.  Pull
114   request #965 by Marcus Rückert.
115 * Added vendor gem support to RubyGems.  Package managers may now install gems
116   in Gem.vendor_dir with the --vendor option to gem install.  Issue #943 by
117   Marcus Rückert.
118
119 Bug fixes:
120
121 * Kernel#gem now respects the prerelease flag when activating gems.
122   Previously this behavior was undefined which could lead to bugs when a
123   prerelease version was unintentionally activated.  Bug #938 by Joe Ferris.
124 * RubyGems now prefers gems from git over installed gems.  This allows gems
125   from git to override an installed gem with the same name and version.  Bug
126   #944 by Thomas Kriechbaumer.
127 * Fixed handling of git gems in a lockfile with unversioned dependencies.  Bug
128   #940 by Michael Kaiser-Nyman.
129 * The ruby directive in a gem dependencies file is ignored when installing.
130   Bug #941 by Michael Kaiser-Nyman.
131 * Added open to list of builtin commands (`gem open` now works).  Reported by
132   Espen Antonsen.
133 * `gem open` now works with command-line editors.  Pull request #962 by Tim
134   Pope.
135 * `gem install -g` now respects `--conservative`.  Pull request #950 by Jeremy
136   Evans.
137 * RubyGems releases announcements now now include checksums.  Bug #939 by
138   Alexander E. Fischer.
139 * RubyGems now expands ~ in $PATH when checking if installed executables will
140   be runnable.  Pull request #945 by Alex Talker.
141 * Fixed `gem install -g --explain`.  Issue #947 by Luis Lavena.  Patch by
142   Hsing-Hui Hsu.
143 * RubyGems locks less during gem activation.  Pull request #951 by Aaron
144   Patterson and Justin Searls, #969 by Jeremy Tryba.
145 * Kernel#gem is now thread-safe.  Pull request #967 by Aaron Patterson.
146 * RubyGems now handles spaces in directory names for some parts of extension
147   building.  Pull request #949 by Tristan Hill.
148 * RubyGems no longer defines an empty Date class.  Pull Request #948 by Benoit
149   Daloze.
150 * RubyGems respects --document options for `gem update` again.  Bug 946 by
151   jonforums.  Patch by Hsing-Hui Hsu.
152 * RubyGems generates documentation again with --ignore-dependencies.  Bug #961
153   by Pulfer.
154 * RubyGems can install extensions across partitions now.  Pull request #970 by
155   Michael Scherer.
156 * `-s` is now short for `--source` which resolves an ambiguity with
157   --no-suggestions.  Pull request #955 by Alexander Kahn.
158 * Added extra test for ~> for 0.0.X versions.  Pull request #958 by Mark
159   Lorenz.
160 * Fixed typo in gem updated help.  Pull request #952 by Per Modin.
161 * Clarified that the gem description should not be excessively long.  Part of
162   bug #956 by Renier Morales.
163 * Hid documentation of outdated test_files related methods in Specification.
164   Guides issue #90 by Emil Soman.
165 * RubyGems now falls back to the old index if the rubygems.org API fails
166   during gem resolution.
167
168
169 === 2.3.0 / 2014-06-10
170
171 Minor enhancements:
172
173 * Added the `open` command which allows you to inspect the source of a gem
174   using your editor.
175   Issue #789 by Mike Perham. Pull request #804 by Vitali F.
176 * The `update` command shows a summary of which gems were and were not
177   updated.  Issue #544 by Mark D. Blackwell.
178   Pull request #777 by Tejas Bubane.
179 * Improved "could not find 'gem'" error reporting.  Pull request #913 by
180   Richard Schneeman.
181 * Gem.use_gemdeps now accepts an argument specifying the path of the gem
182   dependencies file.  When the file is not found an ArgumentError is raised.
183 * Writing a .lock file for a gem dependencies file is now controlled by the
184   --[no-]lock option.  Pull reuqest #774 by Jeremy Evans.
185 * Suggestion of alternate names and spelling corrections during install can be
186   suppressed with the --no-suggestions option.  Issue #867 by Jimmy Cuadra.
187 * Added mswin64 support.  Pull request #881 by U. Nakamura.
188 * A gem is installable from an IO again (as in RubyGems 1.8.x and older).
189   Pull request #716 by Xavier Shay.
190 * RubyGems no longer attempts to build extensions during activation.  Instead
191   a warning is issued instructing you to run `gem pristine` which will build
192   the extensions for the current platform.  Issue #796 by dunric.
193 * Added Gem::UserInteraction#verbose which prints when the --verbose option is
194   given.  Pull request #811 by Aaron Patterson.
195 * RubyGems can now fetch gems from private repositories using S3.  Pull
196   request #856 by Brian Palmer.
197 * Added Gem::ConflictError subclass of Gem::LoadError so you can distinguish
198   conflicts from other problems.  Pull request #841 by Aaron Patterson.
199 * Cleaned up unneeded load_yaml bootstrapping in Rakefile.  Pull request #815
200   by Zachary Scott.
201 * Improved performance of conflict resolution.  Pull request #842 by Aaron
202   Patterson.
203 * Add documentation of "~> 0" to Gem::Version.  Issue #896 by Aaron Suggs.
204 * Added CONTRIBUTING file.  Pull request #849 by Mark Turner.
205 * Allow use of bindir in windows_stub_script in .bat
206   Pull request #818 by @unak and @nobu
207 * Use native File::PATH_SEPARATOR and remove $ before gem env on
208   Gem::Dependency#to_specs. Pull request #915 by @parkr
209 * RubyGems recommends SPDX IDs for licenses now.  Pull request #917 by
210   Benjamin Fleischer.
211
212 Bug fixes:
213
214 * RubyGems now only fetches the latest specs to find misspellings which speeds
215   up gem suggestions.  Pull request #808 by Aaron Patterson.
216 * The given .gem is installed again when multiple versions of the same gem
217   exist in the current directory.  Bug #875 by Prem Sichanugrist.
218 * Local gems are preferred by name over remote gems again.  Bug #834 by
219   jonforums.
220 * RubyGems can install local prerelease gems again.  Pull request #866 by
221   Aaron Patterson.  Issue #813 by André Arko.
222 * RubyGems installs development dependencies correctly again.  Issue #893 by
223   Jens Wille.
224 * RubyGems only installs prerelease versions when they are requested again.
225   Issue #853 by Seth Vargo, special thanks to Zachary Scott and Ben Moss.
226   Issue #884 by Nathaniel Bibler.
227 * Fixed RubyGems list and search command help.  Pull request #905 and #928 by
228   Gabriel Gilder.
229 * The list of gems to uninstall is always sorted now.  Bug #918 by postmodern.
230 * The update command only updates exactly matching gem names now.  Bug #919 by
231   postmodern.
232 * Gem::Server now supports prerelease versions.  Bug #857 by Marcelo Alvim.
233 * RubyGems no longer raises an exception immediately when gems are missing
234   with RUBYGEMS_GEMDEPS.  A warning is printed instead.  Issue #886 by Michael
235   Kaiser-Nyman.
236 * Commands using the rubygems.org API no longer try to sign-in when a
237   non-rubygems API key has been chosen.  Bug #826 by Ben Sedat.
238 * Updated documentation of Gem::Specification#executables to indicate that
239   only ruby scripts are allowed.  Bug #830 by Geoff Nixon.
240 * Gem dependency API supports multiple platforms for #platform and #platforms
241   now.  Bug #821 by johnny5-.
242 * Gem dependency API supports lockfiles without explicit sources.  Bug #820 by
243   johnny5-.
244 * Gem dependency API supports lockfiles with multiple sources.  Bug #822 by
245   johnny5-, bug #851 by sumit shah.
246 * Gem dependency API supports lockfiles with git sources using branch, tag and
247   ref.  Bug #822 by johnny5-, #931 by Christoph Blank.
248 * Gem dependency API no longer raises an exception when a gem does not exist
249   in one of the configured sources.  Bug #897 by Michael Kaiser-Nyman.
250 * Gem dependency API no longer lists development dependencies in the lockfile.
251   Bug #768 by Diego Viola, #916 by Santiago Pastorino.
252 * SSL configuration entries in ~/.gemrc are properly round-tripped.  Bug #837
253   by Noah Luck Easterly.
254 * The environment command now shows the system configuration directory where
255   the all-users gemrc lives.  Bug #827 by Ben Langfeld.
256 * Improved speed of conflict checking when activating gems.  Pull request #843
257   by Aaron Patterson.
258 * Improved speed of levenshtein distance for gem suggestion misspellings.
259   Pull requests #809, #812 by Aaron Patterson.
260 * Restored persistent connections.  Pull request #869 by Aaron Patterson.
261 * Reduced requests when fetching gems with the bundler API.  Pull request #773
262   by Charlie Somerville.
263 * Reduced dependency prefetching to improve install speed.  Pull requests
264   #871, #872 by Matthew Draper.
265 * RubyGems now avoids net/http auto-proxy detection.  Issue #824 by HINOHARA
266   Hiroshi.
267 * Removed conversion of Gem::List (used for debugging installs) to unless
268   necessary.  Pull request #870 by Aaron Patterson.
269 * RubyGems now prints release notes from the current release.  Bug #814 by
270   André Arko.
271 * RubyGems allows installation of unsigned gems again with -P MediumSecurity
272   and lower.  Bug #859 by Justin S. Collins.
273 * Fixed typo in Jim Weirich's name.  Ruby pull request #577 by Mo Khan.
274 * Fixed typo in Gem.datadir documentation.  Pull request #868 by Patrick
275   Jones.
276 * Fixed File.exists? warnings.  Pull request #829 by SHIBATA Hiroshi.
277 * Fixed show_release_notes test for LANG=C.  Issue #862 by Luis Lavena.
278 * Fixed Gem::Package from IO tests on windows.  Patch from issue #861 by Luis
279   Lavena.
280 * Check for nil extensions as BasicSpecification does not initialize them.
281   Pull request #882 by André Arko.
282 * Fixed Gem::BasicSpecification#require_paths receives a String for
283   @require_paths. Pull requrest #904 by @danielpclark
284 * Fixed circular require warnings.  Bug #908 by Zachary Scott.
285 * Gem::Specification#require_paths can no longer accidentally be an Array.
286   Pull requests #904, #909 by Daniel P. Clark.
287 * Don't build extensions if `build_dir/extensions` isn't writable.
288   Pull request #912 by @dunric
289 * Gem::BasicSpecification#require_paths respects default_ext_dir_for now.  Bug
290   #852 by Vít Ondruch.
291
292 === 2.2.2 / 2014-02-05
293
294 Bug fixes:
295
296 * Fixed ruby tests when BASERUBY is not set.  Patch for #778 by Nobuyoshi
297   Nakada.
298 * Removed double requests in RemoteFetcher#cache_update_path to improve remote
299   install speed.  Pull request #772 by Charlie Somerville.
300 * The mkmf.log is now placed next to gem_make.out when building extensions.
301 * `gem install -g --local` no longer accesses the network.  Bug #776 by Jeremy
302   Evans.
303 * RubyGems now correctly handles URL passwords with encoded characters.  Pull
304   request #781 by Brian Fletcher.
305 * RubyGems now correctly escapes URL characters.  Pull request #788 by Brian
306   Fletcher.
307 * RubyGems can now unpack tar files where the type flag is not given.  Pull
308   request #790 by Cody Russell.
309 * Typo corrections.  Pull request ruby/ruby#506 by windwiny.
310 * RubyGems now uses both the default certificates and ssl_ca_cert instead of
311   one or the other.  Pull request #795 by zebardy.
312 * RubyGems can now use the bundler API against hosted gem servers in a
313   directory.  Pull request #801 by Brian Fletcher.
314 * RubyGems bin stubs now ignore non-versions.  This allows RubyGems bin stubs
315   to list file names like "_foo_".  Issue #799 by Postmodern.
316 * Restored behavior of Gem::Version::new when subclassed.  Issue #805 by
317   Sergio Rubio.
318
319 === 2.2.1 / 2014-01-06
320
321 Bug fixes:
322
323 * Platforms in the Gemfile.lock GEM section are now handled correctly.  Bug
324   #767 by Diego Viola.
325 * RubyGems now displays which gem couldn't be uninstalled from the home
326   directory.  Pull request #757 by Michal Papis.
327 * Removed unused method Gem::Resolver#find_conflict_state.  Pull request #759
328   by Smit Shah.
329 * Fixed installing gems from local files without dependencies.  Issue #760 by
330   Arash Mousavi, pull request #764 by Tim Moore.
331 * Removed TODO about syntax that works in Ruby 1.8.7.  Pull request #765 by
332   Benjamin Fleischer.
333 * Switched Gem.ruby_api_version to use RbConfig::CONFIG['ruby_version'] which
334   has the same value but is overridable by packagers through
335   --with-ruby-version= when configuring ruby.  Bug #770 by Jeremy Evans.
336 * RubyGems now prefers the bundler API for `gem install` to reduce HTTP
337   requests.  (This change was intended for RubyGems 2.2.0 but was missed.)
338   This should address bug #762 by Dan Peterson and bug #766 by mipearson.
339 * Added Gem::BasicSpecification#source_paths so documentation or analysis
340   tools can work properly as require_paths no longer returns extension source
341   directories.  Bug #758 Vít Ondruch.
342 * Gem.read_binary can read read-only files again.  This caused file://
343   repositories to stop working.  Bug #761 by John Anderson.
344 * Fixed specification file sorting for Ruby 1.8.7 compatibility.  Pull
345   request #763 by James Mead
346
347 === 2.2.0 / 2013-12-26
348
349 Special thanks to Vít Ondruch and Michal Papis for testing and finding bugs in
350 RubyGems as it was prepared for the 2.2.0 release.
351
352 Major enhancements:
353
354 * RubyGems can check for gem dependencies files (gem.deps.rb or Gemfile) when
355   rubygems executables are started and uses the found dependencies.  This
356   means `rake` will work similar to `bundle exec rake`.  To enable this set
357   the `RUBYGEMS_GEMDEPS` environment variable to the location of your
358   dependencies file.
359
360   See Gem::use_gemdeps for further details.
361
362 * A RubyGems directory may now be shared amongst multiple ruby versions.  Upon
363   activation RubyGems will automatically compile missing extensions for the
364   current platform when the built objects are missing.  Issue #596 by Michal
365   Papis
366
367   By default different platforms do not share gem install locations so this
368   must be configured by setting GEM_HOME to a common directory.  Some gems use
369   fixed paths for requiring extensions and are not compatible with sharing gem
370   directories.
371
372   The default sharing location may be configured by RubyGems packagers through
373   Gem.default_ext_dir_for.  Pull Request #744 by Vít Ondruch.
374
375 Minor enhancements:
376
377 * RubyGems checks the 'allowed_push_host' metadata value when pushing a gem to
378   prevent an accidental push to a public repository (such as rubygems.org).
379   If you have private gems you should set this value in your gem specification
380   metadata.  Pull request #603 by Seamus Abshere.
381 * `gem list` now shows results for multiple arguments.  Pull request #604 by
382   Zach Rabinovich.
383 * `gem pristine --extensions` will restore only gems with extensions.  Issue
384   #619 by Postmodern.
385 * Gem::Specification#files is now sorted.  Pull request #612 by Justin George.
386 * For `gem list` and friends, "LOCAL" and "REMOTE" headers are omitted if
387   only local or remote gem information is requested with --quiet.  Pull
388   request #615 by Michal Papis.
389 * Added Gem::Specification#full_require_paths which is like require_paths, but
390   returns a fully-qualified results.  Pull request #632 by Vít Ondruch.
391 * RubyGems now looks for the https_proxy environment variable for https://
392   sources.  RubyGems will fall back to http_proxy if there is no https_proxy.
393   Issue #610 by mkristian.
394 * RubyGems now creates directories in .gem files.  Issue #631 by marksolaris.
395 * RubyGems raises an exception when a specification includes its gem.  Issue
396   #623 by notEthan.
397 * RubyGems now displays relevant release note information when updating
398   RubyGems.  Issue #647 by Trevor Wennblom.
399 * Deprecated Gem::Installer::ExtensionBuildError in favor of
400   Gem::Ext::BuildError.  The old constant is an alias for the new constant.
401 * When extensions are built the gem_make.out file is always written now, even
402   on success.  This will help with debugging bad builds that report success.
403 * If a specification fails to validate RubyGems shows a link to the
404   specification reference guide.  Issue #656 by Markus Heiler.
405 * When using `gem install -g`, RubyGems now detects the presence of an
406   Isolate, Gemfile or gem.deps.rb file.
407 * Added Gem::StubSpecification#stubbed? to help determine if a user should run
408   `gem pristine` to speed up gem loading.  Pull request #694 and #701 by Jon
409   Leighton.
410 * RubyGems now warns when a gem has a pessimistic version dependency that may
411   be too strict.
412 * RubyGems now warns when a gem has an open-ended dependency.
413 * RubyGems now raises an exception when a dependency for a gem is defined
414   twice.
415 * Marked the license specification attribute as recommended.  Pull request
416   #713 by Benjamin Fleischer.
417 * RubyGems uses io/console instead of `stty` when available.  Pull request
418   #740 by Nobuyoshi Nakada
419 * Relaxed Gem.ruby tests for platforms that override where ruby lives.  Pull
420   Request #755 by strzibny.
421
422 Bug fixes:
423
424 * RubyGems now returns an error status when any file given to `gem which`
425   cannot be found.  Ruby bug #9004 by Eugene Vilensky.
426 * Fixed command escaping when building rake extensions.  Pull request #721 by
427   Dmitry Ratnikov.
428 * Fixed uninstallation of gems when GEM_HOME is a relative directory.  Issue
429   #708 by Ryan Davis.
430 * Default gems are now ignored by Gem::Validator#alien.  Issue #717 by David
431   Bahar.
432 * Fixed typos in RubyGems.  Pull requests #723, #725, #731 by Akira Matsuda,
433   pull request #736 by Leo Gallucci, pull request #746 by DV Suresh.
434 * RubyGems now holds exclusive locks on cached gem files to prevent incorrect
435   updates.  Pull Request #737 by Smit Shah
436 * Improved speed of `gem install --ignore-dependencies`.  Patch by Terence
437   Lee.
438
439 === 2.1.11 / 2013-11-12
440
441 Bug fixes:
442
443 * Gem::Specification::remove_spec no longer checks for existence of the spec
444   to be removed.  Issue #698 by Tiago Macedo.
445 * Restored wildcard handling when installing gems.  Issue #697 by Chuck Remes.
446 * Added DigiCert High Assurance EV Root CA certificate for the cloudfront.net
447   certificate change.
448 * The Gem::RemoteFetcher tests now choose the test server port more reliably.
449   Pull Request #706 by akr.
450
451 === 2.1.10 / 2013-10-24
452
453 Bug fixes:
454
455 * Use class check instead of :version method check when creating Gem::Version
456   objects.  Fixes #674 by jkanywhere.
457 * Fail during `gem update` when an error occurs checking for newer versions.
458   This means RubyGems no longer reports "nothing to update" when it cannot
459   communicate with the server.  Issue #688 by Jimmy Dee.
460 * Allow installation of gems when the home directory does not exist.  Issue
461   #689 by Laurence Rowe
462 * Fix updating gems which have multiple platforms.  Issue #693 by Ookami
463   Kenrou.
464 * The gem server now uses user-provided directories.  Issue #696 by Marcelo
465   Alvim.
466 * Improved resolution of gems when specific versions have conflicting
467   dependencies.
468 * RubyGems installs local gems regardless of platform again.  Issue #695
469 * The --ignore-dependencies option for gem installation works again.  Issue
470   #695
471
472 === 2.1.9 / 2013-10-14
473
474 Bug fixes:
475
476 * Reduce sorting when fetching specifications.  This speeds up the update and
477   outdated commands, and others.  Issue #657 by windwiny.
478 * Proxy usernames and passwords are now escaped properly.  Ruby Bug #8979 by
479   Masahiro Tomita, Issue #668 by Kouhei Sutou.
480
481 === 2.1.8 / 2013-10-10
482
483 Bug fixes:
484
485 * Fixed local installation of platform gem files.  Issue #664 by Ryan Melton.
486 * Files starting with "." in the root directory are installed again.  Issue
487   #680 by Ivo Wever, Pull Request #681 by Jeremy Evans.
488 * The index generator no longer indexes default gems.  Issue #661 by
489   Jeremy Hinegardner.
490
491 === 2.1.7 / 2013-10-09
492
493 Bug fixes:
494
495 * `gem sources --list` now displays a list of sources.  Pull request #672 by
496   Nathan Marley.
497 * RubyGems no longer alters Gem::Specification.dirs when installing.  Pull
498   Request #670 by Vít Ondruch
499 * Use RFC 2616-compatible time in HTTP headers.  Pull request #655 by Larry
500   Marburger.
501 * RubyGems now gives a more descriptive message for missing licenses on
502   validation.  Issue #656 by Markus Heiler.
503 * Expand unpack destination directory.  This fixes problems when File.realpath
504   is missing and $GEM_HOME contains "..".  Issue #679 by Charles Nutter.
505
506 === 2.1.6 / 2013-10-08
507
508 Bug fixes:
509
510 * Added certificates to follow the s3.amazonaws.com certificate change.  Fixes
511   #665 by emeyekayee.  Fixes #671 by jonforums.
512 * Remove redundant built-in certificates not needed for https://rubygems.org
513   Fixes #654 by Vít Ondruch.
514 * Added test for missing certificates for https://s3.amazonaws.com or
515   https://rubygems.org.  Pull request #673 by Hannes Georg.
516 * RubyGems now allows a Pathname for Kernel#require like the built-in
517   Kernel#require.  Pull request #663 by Aaron Patterson.
518 * Required rbconfig in Gem::ConfigFile for Ruby 1.9.1 compatibility.  (Ruby
519   1.9.1 is no longer receiving security fixes, so please update to a newer
520   version.)  Issue #676 by Michal Papis.  Issue wayneeseguin/rvm#2262 by
521   Thomas Sänger.
522
523 === 2.1.5 / 2013-09-24
524
525 Security fixes:
526
527 * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a
528   backtracking in Gem::Version validation.  See CVE-2013-4363 for full details
529   including vulnerable APIs.  Fixed versions include 2.1.5, 2.0.10, 1.8.27 and
530   1.8.23.2 (for Ruby 1.9.3).
531
532 === 2.1.4 / 2013-09-17
533
534 Bug fixes:
535
536 * `gem uninstall foo --all` now force-uninstalls all versions of foo.  Issue
537   #650 by Kyle (remkade).
538 * Fixed uninstalling gems installed in the home directory (as in
539   `--user-install`).  Issue #653 by Lin Jen-Shin.
540
541 === 2.1.3 / 2013-09-12
542
543 Bug fixes:
544
545 * Gems with files entries starting with "./" no longer install 0 files.  Issue
546   #644 by Darragh Curran, #645 by Brandon Turner, #646 by Alex Tambellini
547
548 === 2.1.2 / 2013-09-11
549
550 Bug fixes:
551
552 * Restore concurrent requires following the fix for ruby bug #8374.  Pull
553   request #637 and issue #640 by Charles Nutter.
554 * Gems with extensions are now installed correctly when the --install-dir
555   option is used.  Issue #642 by Lin Jen-Shin.
556 * Gem fetch now fetches the newest (not oldest) gem when --version is given.
557   Issue #643 by Brian Shirai.
558
559 === 2.1.1 / 2013-09-10
560
561 Bug fixes:
562
563 * Only matching gems matching your local platform are considered for
564   installation.  Issue #638 by José M. Prieto, issue #639 by sawanoboly.
565
566 === 2.1.0 / 2013-09-09
567
568 Security fixes:
569
570 * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a
571   backtracking in Gem::Version validation.  See CVE-2013-4287 for full details
572   including vulnerable APIs.  Fixed versions include 2.0.8, 1.8.26 and
573   1.8.23.1 (for Ruby 1.9.3).  Issue #626 by Damir Sharipov.
574
575 Major enhancements:
576
577 * RubyGems uses a new dependency resolver for gem installation which works
578   similar to the bundler resolver.  The new resolver can resolve conflicts the
579   previous resolver could not and offers improved diagnostics when conflicts
580   are discovered.
581
582 Minor enhancements:
583
584 * RubyGems now has improved platform matching for the ARM architecture.  Gems
585   built with a CPU of "arm" will match any specific ARM CPU.  See `gem help
586   platform` for further details.  Fixes #532 by Kim Burgestrand.
587 * The --version option now accepts compound requirements the same as in a gem
588   dependency.  The following invocation will install rails between 4.0.0.beta
589   and 4.2:
590
591     gem install rails -v '>= 4.0.0.beta, < 4.2'
592
593   Fixes #531 by Gary S. Weaver
594 * `gem clean` now allows `-n` as an alias for `--dryrun`.  Pull Request #517
595   by Gastón Ramos
596 * Added `gem update --system` to `gem help`.  Pull Request #514 by Vince
597   Wadhwani
598 * Added PATH to `gem env` output.  Pull Request #490 by Michal Papis
599 * Added --host option to `gem owner` to match other commands using the
600   gemcutter API.  Pull Request #462 and issue #461 by Hugo Lopes Tavares
601 * Added --abort-on-dependent to `gem uninstall`.  This will abort instead of
602   asking to uninstall a gem that is depended upon by another gem.  Pull
603   request #549 by Philip Arndt.
604 * RubyGems no longer alters Gem::Specification.dirs when installing.  Based on
605   Pull Request #452 by Vít Ondruch
606 * RubyGems uses ENV['MAKE'] or ENV['make'] over rbconfig.rb's make if present.
607   Pull Request #443 by Erik Hollensbe
608 * RubyGems can now save remote source cache files in an alternate directory
609   controlled by `ENV["GEM_SPEC_CACHE"]`.  Pull Request #489 by Michal Papis
610 * Generated private keys are now encrypted.  Pull Request #453 by pietro
611 * Separated Gem::Request from Gem::RemoteFetcher.  Pull Request #283 by Steve
612   Klabnik.
613 * RubyGems indicates when a .gem's content is corrupt while verifying.  Bug
614   #519 by William T Nelson.
615 * Refactored common installer setup.  Pull request #520 by Gastón Ramos
616 * Moved activation tests to Gem::Specification.  Pull request #521 by Gastón
617   Ramos
618 * When a --version option with a prerelease version is given RubyGems
619   automatically enables prerelease versions but only the last version is
620   used.  If the first version is a prerelease version this is no longer sticky
621   unless an explicit --[no-]prerelease was also given.  Fixes part of #531.
622 * RubyGems now supports an SSL client certificate.  Pull request #550 by
623   Robert Kenny.
624 * RubyGems now suggests how to fix permission errors.  Pull request #553 by
625   Odin Dutton.
626 * Added support for installing a gem as default gems for alternate ruby
627   implementations.  Pull request #566 by Charles Nutter.
628 * Improved performance of Gem::Specification#load by caching the loaded
629   gemspec.  Pull request #569 by Charlie Somerville.
630 * RubyGems now warns when an unsigned gem is verified if -P was given during
631   installation even if the security policy allows unsigned gems and warns when
632   an untrusted certificate is seen even if the security policy allows
633   untrusted certificates.  Issue #474 by Grant Olson
634 * RubyGems can now rewrite executables with or without a shebang of
635   /usr/bin/env via <code>gem pristine --all --only-executables
636   --env-[no-]shebang</code>.  Issue #579 by Paul Annesley.
637 * RubyGems can now run its tests without OpenSSL.  Ruby Bug #8557 by nobu.
638 * Improved performance by caching Gem::Version objects and avoiding
639   method_missing in Gem::Specification.  Pull request #447 by Jon Leighton.
640 * Files in a .gem now preserve their modification times.  Pull request #582 by
641   Jesse Bowes
642 * Improved speed of looking up dependencies in SpecFetcher through
643   Array#bsearch (when present).  Pull request #595 by Andras Suller
644 * Added `--all` option to `gem uninstall` which removes all gems in GEM_HOME.
645   Pull request #584 by Shannon Skipper.
646 * Added Gem.find_latest_files which is equivalent to Gem.find_files but only
647   returns matching files from the latest version of each gem.  Issue #186 by
648   Ryan Davis.
649 * Improved performance of `gem outdated` by reducing duplicate work (it is
650   still slow, but I see a near 50% improvement for 250 gems on a fast
651   connection).  See also Gem::Specification::outdated_and_latest_version
652
653 Bug fixes:
654
655 * rubygems_plugin.rb files are now only loaded from the latest installed gem.
656 * Fixed Gem.clear_paths when Security is defined at top-level.  Pull request
657   #625 by elarkin
658 * Fixed credential creation for `gem push` when `--host` is not given.  Pull
659   request #622 by Arthur Nogueira Neves
660
661 === 2.0.14 / 2013-11-12
662
663 Bug fixes:
664
665 * Gem::Specification::remove_spec no longer checks for existence of the spec
666   to be removed.  Issue #698 by Tiago Macedo.
667 * Restored wildcard handling when installing gems.  Issue #697 by Chuck Remes.
668 * Added DigiCert High Assurance EV Root CA certificate for the cloudfront.net
669   certificate change.
670 * The Gem::RemoteFetcher tests now choose the test server port more reliably.
671   Pull Request #706 by akr.
672
673 === 2.0.13 / 2013-10-24
674
675 Bug fixes:
676
677 * Use class check instead of :version method check when creating Gem::Version
678   objects.  Fixes #674 by jkanywhere.
679 * Allow installation of gems when the home directory does not exist.  Issue
680   #689 by Laurence Rowe
681 * Fix updating gems which have multiple platforms.  Issue #693 by Ookami
682   Kenrou.
683
684 === 2.0.12 / 2013-10-14
685
686 Bug fixes:
687
688 * Proxy usernames and passwords are now escaped properly.  Ruby Bug #8979 by
689   Masahiro Tomita, Issue #668 by Kouhei Sutou.
690
691 === 2.0.11 / 2013-10-08
692
693 Bug fixes:
694
695 * Added certificates to follow the s3.amazonaws.com certificate change.  Fixes
696   #665 by emeyekayee.  Fixes #671 by jonforums.
697 * Remove redundant built-in certificates not needed for https://rubygems.org
698   Fixes #654 by Vít Ondruch.
699 * Added test for missing certificates for https://s3.amazonaws.com or
700   https://rubygems.org.  Pull request #673 by Hannes Georg.
701 * RubyGems now allows a Pathname for Kernel#require like the built-in
702   Kernel#require.  Pull request #663 by Aaron Patterson.
703 * Required rbconfig in Gem::ConfigFile for Ruby 1.9.1 compatibility.  (Ruby
704   1.9.1 is no longer receiving security fixes, so please update to a newer
705   version.)  Issue #676 by Michal Papis.  Issue wayneeseguin/rvm#2262 by
706   Thomas Sänger.
707
708 === 2.0.10 / 2013-09-24
709
710 Security fixes:
711
712 * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a
713   backtracking in Gem::Version validation.  See CVE-2013-4363 for full details
714   including vulnerable APIs.  Fixed versions include 2.1.5, 2.0.10, 1.8.27 and
715   1.8.23.2 (for Ruby 1.9.3).
716
717 === 2.0.9 / 2013-09-13
718
719 Bug fixes:
720
721 * Gem fetch now fetches the newest (not oldest) gem when --version is given.
722   Issue #643 by Brian Shirai.
723 * Fixed credential creation for `gem push` when `--host` is not given.  Pull
724   request #622 by Arthur Nogueira Neves
725
726 === 2.0.8 / 2013-09-09
727
728 Security fixes:
729
730 * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a
731   backtracking in Gem::Version validation.  See CVE-2013-4287 for full details
732   including vulnerable APIs.  Fixed versions include 2.0.8, 1.8.26 and
733   1.8.23.1 (for Ruby 1.9.3).  Issue #626 by Damir Sharipov.
734
735 Bug fixes:
736
737 * Fixed Gem.clear_paths when Security is defined at top-level.  Pull request
738   #625 by elarkin
739
740 === 2.0.7 / 2013-08-15
741
742 Bug fixes:
743
744 * Extensions may now be built in parallel (therefore gems may be installed in
745   parallel).  Bug #607 by Hemant Kumar.
746 * Changed broken link to RubyGems Bookshelf to point to RubyGems guides.  Ruby
747   pull request #369 by 謝致邦.
748 * Fixed various test failures due to platform differences or poor tests.
749   Patches by Yui Naruse and Koichi Sasada.
750 * Fixed documentation for Kernel#require.
751
752 === 2.0.6 / 2013-07-24
753
754 Bug fixes:
755
756 * Fixed the `--no-install` and `-I` options to `gem list` and friends.  Bug
757   #593 by Blargel.
758 * Fixed crash when installing gems with extensions under the `-V` flag.  Bug
759   #601 by Nick Hoffman.
760 * Fixed race condition retrieving HTTP connections in Gem::Request on JRuby.
761   Bug #597 by Hemant Kumar.
762 * Fixed building extensions on ruby 1.9.3 under mingw.  Bug #594 by jonforums,
763   Bug #599 by Chris Riesbeck
764 * Restored default of remote search to `gem search`.
765
766 === 2.0.5 / 2013-07-11
767
768 * Fixed building of extensions that run ruby in their makefiles.  Bug #589 by
769   Zachary Salzbank.
770
771 === 2.0.4 / 2013-07-09
772
773 Bug fixes:
774
775 * Fixed error caused by gem install not finding the right platform for your
776   platform. Bug #576 by John Anderson
777 * Fixed pushing gems with the default host.  Bug #495 by Utkarsh Kukreti
778 * Improved unhelpful error message from `gem owner --remove`.  Bug #488 by
779   Steve Klabnik
780 * Fixed typo in `gem spec` help.  Pull request #563 by oooooooo
781 * Fixed creation of build_info with --install-dir.  Bug #457 by Vít Ondruch.
782 * RubyGems converts non-string dependency names to strings now.  Bug #505 by
783   Terence Lee
784 * Outdated prerelease versions are now listed in `gem outdated`.
785 * RubyGems now only calls fsync() on the specification when installing, not
786   every file from the gem.  This improves the performance of gem installation
787   on some systems.  Pull Request #556 by Grzesiek Kolodziejczyk
788 * Removed surprise search term anchoring in `gem search` to restore 1.8-like
789   search behavior while still defaulting to --remote.  Pull request #562 by
790   Ben Bleything
791 * Fixed handling of DESTDIR when building extensions.  Pull request #573 by
792   Akinori MUSHA
793 * Fixed documentation of `gem pristine` defaults (--all is not a default).
794   Pull request #577 by Shannon Skipper
795 * Fixed a windows extension-building test failure.  Pull request #575 by
796   Hiroshi Shirosaki
797 * Fixed issue with `gem update` where it would attempt to use a Version
798   instead of a Requirement to find the latest gem.  Fixes #570 by Nick Cox.
799 * RubyGems now ignores an empty but set RUBYGEMS_HOST environment variable.
800   Based on pull request #558 by Robin Dupret.
801 * Removed duplicate creation of gem subdirectories in
802   Gem::DependencyInstaller.  Pull Request #456 by Vít Ondruch
803 * RubyGems now works with Ruby built with `--with-ruby-version=''`.  Pull
804   Request #455 by Vít Ondruch
805 * Fixed race condition when two threads require the same gem.  Ruby bug report
806   #8374 by Joel VanderWerf
807 * Cleaned up siteconf between extension build and extension install.  Pull
808   request #587 by Dominic Cleal
809 * Fix deprecation warnings when converting gemspecs to yaml.  Ruby commit
810   r41148 by Yui Naruse
811
812 === 2.0.3 / 2013-03-11
813
814 * Bug fixes:
815   * Reverted automatic upgrade to HTTPS as it breaks RubyGems APIs.  Fixes
816     #506 by André Arko
817   * Use File.realpath to remove extra / while checking if files are
818     installable.  Issue #508 by Jacob Evans.
819   * When installing RubyGems on JRuby, the standard library is no longer
820     deleted.  Fixes #504 by Juan Sanchez, #507 by Charles Oliver Nutter.
821   * When building extconf.rb extensions use the intermediate destination
822     directory.  This addresses further issues with C extension building.
823   * Use the absolute path to the generated siteconf in case the extension
824     changes directories to run extconf.rb (like memcached).  Fixes #498 by
825     Chris Morris.
826   * Fixed default gem key and cert locations.  Pull request #511 by Samuel
827     Cochran.
828
829 === 2.0.2 / 2013-03-06
830
831 * Bug fixes:
832   * HTTPS URLs are preferred over HTTP URLs.  RubyGems will now attempt to
833     upgrade any HTTP source to HTTPS.  Credit to Alex Gaynor.
834   * SSL Certificates are now installed properly.  Fixes #491 by hemanth.hm
835   * Fixed HTTP to HTTPS upgrade for rubygems.org.
836
837 === 2.0.1 / 2013-03-05
838
839 * Bug fixes:
840   * Lazily load RubyGems.org API credentials to avoid failure during
841     RubyGems installation.  Bug #465 by Isaac Sanders.
842   * RubyGems now picks the latest prerelease to install.  Fixes bug #468 by
843     Santiago Pastorino.
844   * Improved detection of missing Zlib::GzipReader encoding support.  Works
845     around JRuby-only bug #472 by Matt Beedle.
846   * "Done installing documentation" is no longer displayed when documentation
847     generation is disabled.  Fixes bug #469 by Jeff Sandberg
848   * The existing executable check now respects --format-executable.  Pull
849     request #471 by Jeremy Evans.
850   * RubyGems no longer creates gem subdirectories when fetching gems.  Fixes
851     #482 by Loren Segal.
852   * RubyGems does not require OpenSSL like RubyGems 1.8, but still prefers it.
853     Fixes #481 by André Arko.
854   * RubyGems only fetches specs for list, search and query commands when
855     needed like RubyGems 1.x.  Fixes bug #487 by bitbuerster, Ruby bug #8019
856     by Ike Miller.
857   * Allow specification of mode for gem subdirectory creation.
858     Ruby bug #7713 by nobu
859   * Fix tests when an 'a.rb' exists.  Ruby bug #7749 by nobu.
860
861 === 2.0.0 / 2013-02-24
862
863 RubyGems 2.0 includes several new features and many breaking changes.  Some of
864 these changes will cause existing software to break.  These changes are a
865 result of improvements to the internals of RubyGems that make it more
866 maintainable and improve APIs for RubyGems users.
867
868 If you are using bundler be sure to install a 1.3.0.prerelease version or
869 newer.  Older versions of bundler will not work with RubyGems 2.0.
870
871 Changes since RubyGems 1.8.25 (including past pre-releases):
872
873 * Breaking changes:
874
875   * Deprecated Gem.unresolved_deps in favor of
876     Gem::Specification.unresolved_deps
877   * Merged Gem::Builder into Gem::Package.  Use Gem::Package.build(spec)
878     instead of Gem::Builder.new(spec).build
879   * Merged Gem::Format into Gem::Package.  Use Gem::Package.new instead
880     of Gem::Format.from_file_by_path
881   * Moved Gem::OldFormat to Gem::Package::Old.  Gem::Package will
882     automatically detect old gems for you, so there is no need to refer to it.
883   * Removed Gem::DocManager, replaced by Gem::RDoc and done_installing hook
884   * Removed Gem::Package::TarInput in favor of Gem::Package
885   * Removed Gem::Package::TarOutput in favor of Gem::Package
886   * Removed Gem::RemoteFetcher#open_uri_or_path. (steveklabnik)
887   * Removed Gem::SSL in favor of using OpenSSL directly
888   * Removed Gem.loaded_path
889   * Removed RSS generation from the gem indexer
890   * Removed benchmark option from .gemrc
891   * Removed broken YAML gemspec support in `gem build`
892   * Removed support for Ruby 1.9.1
893   * Removed many deprecated methods
894
895 * Major enhancements:
896
897   * Improved support for default gems shipping with ruby 2.0.0+
898   * A gem can have arbitrary metadata through Gem::Specification#metadata
899   * `gem search` now defaults to --remote and is anchored like gem list.  Fixes
900     #166
901   * Added --document to replace --rdoc and --ri.  Use --no-document to disable
902     documentation, --document=rdoc to only generate rdoc.
903   * Only ri-format documentation is generated by default.
904   * `gem server` uses RDoc::Servlet from RDoc 4.0 to generate HTML
905     documentation.
906   * Add ability to install gems directly from a compatible gemdep
907     file (Gemfile, Isolate, gem.deps.rb)
908     <code>gem install --file path</code>
909   * Add ability to load gem activation information from a gemdeps
910     file (Gemfile, Isolate, gem.deps.rb).
911     Set RUBYGEMS_GEMDEPS=path to have it loaded. Use - as the path
912     to autodetect (current and parent directories are searched).
913
914 * Minor enhancements:
915   * Added `gem check --doctor` to clean up after failed uninstallation.  Bug
916     #419 by Erik Hollensbe
917   * RubyGems no longer defaults to uninstalling gems if a dependency would be
918     broken.  Now you must manually say "yes".  Pull Request #406 by Shannon
919     Skipper.
920   * Gem::DependencyInstaller now passes build_args down to the installer.
921     Pull Request #412 by Sam Rawlins.
922   * Added a cmake builder.  Pull request #265 by Allan Espinosa.
923   * Removed rubyforge page from gem list output
924   * Added --only-executables option to `gem pristine`.  Fixes #326
925   * Added -I flag for 'gem query' to exclude installed items
926   * Added Gem.install(name, version=default) for interactive sessions
927   * Added Gem::FilePermissionError#directory
928   * Added Gem::rubygems_version which is like Gem::ruby_version
929   * Added RUBYGEMS_HOST documentation to `gem env`
930   * Added a post_installs hook that runs after Gem::DependencyInstaller
931     finishes installing a set of gems
932   * Added a usage method for Gem::Commands::OwnerCommand. (ffmike)
933   * Added an optional type parameter to Gem::Specification#doc_dir.
934   * Added announcements url and clarified how to file tickets
935   * Added guidance for how to use rdoc and ri in setup command. (jjb)
936   * Attempting to install multiple gems with --version is now an error.  You
937     can specify per-gem versions like <code>rake:0.9.5</code>
938   * Clarified Gem::CommandManager example code to avoid multi load problems.
939     (baroquebobcat)
940   * Corrupt or bad cached specs are now re-downloaded. (cookrn)
941   * Extension build arguments are saved from install and reused for pristine
942   * If the OS allows it, documentation is built in a forked background
943     process. (alexch)
944   * Imported gem yank from the gemcutter gem.  Fixes #177, #343
945   * Packaged gems now contain and verify SHA1 checksums
946   * Removed commas from gem update summary so you can paste it back to
947     cleanup.  (amatsuda)
948   * RubyGems will now warn when building gems with prerelease dependencies.
949     Fixes #255
950   * The RUBYGEMS_HOST environment variable is used to determine appropriate
951     API key for pushing or yanking gems
952   * Uninstall is now performed in reverse topological order.
953   * Users are told what to type when they try to uninstall a gem outside
954     GEM_HOME
955   * When building gems with non-world-readable files a warning is shown.
956
957 * Bug fixes:
958   * Gem.refresh now maintains the active gem list.  Clearing the list would
959     cause double-loads which would cause other bugs.  Pull Request #427 by
960     Jeremy Evans
961   * RubyGems now refuses to read the gem push credentials file if it has
962     insecure permissions.  Pull Request #438 by Shannon Skipper
963   * RubyGems now requires a local gem name to end in '.gem'.  Issue #407 by
964     Santiago Pastorino.
965   * Do not allow old-format gems to be installed with a security policy that
966     verifies data.
967   * Gem installation will fail if RubyGems cannot load the specification from
968     the gem.  Bug #419 by Erik Hollensbe
969   * RubyGems tests now run in FIPS mode.  Issue #365 by Vít Ondruch
970   * Only update the spec cache when we have permission.  Ruby Bug #7509
971   * gem install now ignores directories and non .gem files that match the gem
972     to install.  Bug #407 by Santiago Pastorino.
973   * Added PID to setup bin_file while installing RubyGems to protect against
974     errors. Fixes #328 by ConradIrwin
975   * Added missing require in Gem::Uninstaller when format_executable is set.
976     (sakuro)
977   * Exact gem command name matches are now chosen even if a longer command
978     overlaps the exact name
979   * Fixed Gem.loaded_path? with a Pathname instance. (mattetti)
980   * Fixed Gem::Dependency.new mismatch with rubygems.org checks
981   * Fixed SecurityError in Gem::Specification.load when $SAFE=1. (ged)
982   * Fixed SystemStackError with "gem list -r -a" on 1.9 (cldwalker)
983   * Fixed `gem owners` command so that exceptions don't stop the rest of the
984     command from completing
985   * Fixed `gem unpack uninstalled_gem` default version picker.
986   * Fixed defunct rubyforge urls in gem command line help
987   * Fixed documentation for the various hooks collections
988   * Fixed documentation generation on setup when the gem directory does not
989     exist.  Fixes #253
990   * Fixed documentation to reflect where defaults overrides are loaded from.
991     (ferrous26)
992   * Fixed editing of a Makefile with 8-bit characters.  Fixes #181
993   * Fixed gem loading issue caused by dependencies not resolving.
994   * Fixed independent testing of test_gem_package_tar_output.  Ruby Bug #4686
995     by Shota Fukumori
996   * Fixed typo in uninstall message. (sandal)
997   * Gem::Requirement#<=> returns nil on non-requirement arg.
998   * Gem::Requirement.satisfied_by? raises ArgumentError if given a non-version
999     argument
1000   * Gem::Version#initialize no longer modifies its parameter. (miaout17)
1001   * Group-writable permissions are now allowed for gem repositories. (ctcherry)
1002   * Memoized values in Gem::Specification are now reset the version or
1003     platform changes. Fixes #78
1004   * More specific errors are raised for bad requirements. (arsduo)
1005   * Removed reference to 'sources' gem in documentation
1006   * Removed unused block arguments to avoid creating Proc objects. (k-tsj)
1007   * RubyGems now asks before overwriting executable wrappers.  Ruby Bug #1800
1008   * The bindir is now created with mkdir_p during install. (voxik)
1009   * URI scheme matching is no longer case-sensitive.  Fixes #322
1010   * ext/builder now checks $MAKE as well as $make (okkez)
1011
1012 Changes since RubyGems 2.0.0.rc.2:
1013
1014 * Bug fixes:
1015   * Gem.gzip and Gem.gunzip now return strings with BINARY encoding.  Issue
1016     #450 by Jeremy Kemper
1017   * Fixed placement of executables with --user-install.  Ruby bug #7779 by Jon
1018     Forums.
1019   * Fixed `gem update` with --user-install.  Ruby bug #7779 by Jon Forums.
1020   * Fixed test_initialize_user_install for windows.  Ruby bug #7885 by Luis
1021     Lavena.
1022   * Create extension destination directory before building extensions.  Ruby
1023     Bug #7897 and patch by Kenta Murata.
1024   * Fixed verification of gems at LowSecurity due to missing signature.
1025     Thanks to André Arko.
1026
1027 === 2.0.0.rc.2 / 2013-02-08
1028
1029 * Bug fixes:
1030   * Fixed signature verification of gems which was broken only on master.
1031     Thanks to Brian Buchanan.
1032   * Proper exceptions are raised when verifying an unsigned gem.  Thanks to
1033     André Arko.
1034
1035 === 2.0.0.rc.1 / 2013-01-08
1036
1037 * Minor enhancements:
1038   * This release of RubyGems can push gems to rubygems.org.  Ordinarily
1039     prerelease versions of RubyGems cannot push gems.
1040   * Added `gem check --doctor` to clean up after failed uninstallation.  Bug
1041     #419 by Erik Hollensbe
1042
1043 * Bug fixes:
1044   * Fixed exception raised when attempting to push gems to rubygems.org.  Bug
1045     #418 by André Arko
1046   * Gem installation will fail if RubyGems cannot load the specification from
1047     the gem.  Bug #419 by Erik Hollensbe
1048
1049 === 2.0.0.preview2.2 / 2012-12-14
1050
1051 * Minor enhancements:
1052   * Added a cmake builder.  Pull request #265 by Allan Espinosa.
1053   * Removed rubyforge page from gem list output
1054
1055 * Bug fixes:
1056   * Restored RubyGems 1.8 packaging behavior of omitting directories.  Bug
1057     #413 by Jeremy Kemper.
1058
1059 === 2.0.0.preview2.1 / 2012-12-08
1060
1061 * Minor enhancements:
1062   * Gem::DependencyInstaller now passes build_args down to the installer.
1063     Pull Request #412 by Sam Rawlins.
1064   * RubyGems no longer defaults to uninstalling gems if a dependency would be
1065     broken.  Now you must manually say "yes".  Pull Request #406 by Shannon
1066     Skipper.
1067
1068 * Bug fixes:
1069   * RubyGems tests now run in FIPS mode.  Issue #365 by Vít Ondruch
1070   * Fixed Gem::Specification#base_dir for default gems.  Ruby Bug #7469
1071   * Only update the spec cache when we have permission.  Ruby Bug #7509
1072   * Restored order of version marking.  Fixes an issue with bundler.  Thanks
1073     to Aaron Patterson and Terence Lee.
1074   * Gem cleanup now skips default gems.  Pull Request #409 by Kouhei Sutou
1075   * gem list, search and query can show remote gems again.  Bug #410 by
1076     Henry Maddocks
1077   * gem install now ignores directories that match the gem to install.  Bug
1078     #407 by Santiago Pastorino.
1079
1080 === 2.0.0.preview2 / 2012-12-01
1081
1082 This release contains two commits not present in Ruby 2.0.0.preview2.  One
1083 commit is for ruby 1.8.7 support, the second allows RubyGems to work under
1084 $SAFE=1.  There is no functional difference compared to Ruby 2.0.0.preview2
1085
1086 * Breaking changes:
1087
1088   * Deprecated Gem.unresolved_deps in favor of
1089     Gem::Specification.unresolved_deps
1090   * Merged Gem::Builder into Gem::Package.  Use Gem::Package.build(spec)
1091     instead of Gem::Builder.new(spec).build
1092   * Merged Gem::Format into Gem::Package.  Use Gem::Package.new instead
1093     of Gem::Format.from_file_by_path
1094   * Moved Gem::OldFormat to Gem::Package::Old.  Gem::Package will
1095     automatically detect old gems for you, so there is no need to refer to it.
1096   * Removed Gem::DocManager, replaced by Gem::RDoc and done_installing hook
1097   * Removed Gem::Package::TarInput in favor of Gem::Package
1098   * Removed Gem::Package::TarOutput in favor of Gem::Package
1099   * Removed Gem::RemoteFetcher#open_uri_or_path. (steveklabnik)
1100   * Removed Gem::SSL in favor of using OpenSSL directly
1101   * Removed Gem.loaded_path
1102   * Removed RSS generation from the gem indexer
1103   * Removed benchmark option from .gemrc
1104   * Removed broken YAML gemspec support in `gem build`
1105   * Removed support for Ruby 1.9.1
1106   * Removed many deprecated methods
1107
1108 * Major enhancements:
1109
1110   * Improved support for default gems shipping with ruby 2.0.0+
1111   * A gem can have arbitrary metadata through Gem::Specification#metadata
1112   * `gem search` now defaults to --remote and is anchored like gem list.  Fixes
1113     #166
1114   * Added --document to replace --rdoc and --ri.  Use --no-document to disable
1115     documentation, --document=rdoc to only generate rdoc.
1116   * Only ri-format documentation is generated by default.
1117   * `gem server` uses RDoc::Servlet from RDoc 4.0 to generate HTML
1118     documentation.
1119   * Add ability to install gems directly from a compatible gemdep
1120     file (Gemfile, Isolate, gem.deps.rb)
1121     <code>gem install --file path</code>
1122   * Add ability to load gem activation information from a gemdeps
1123     file (Gemfile, Isolate, gem.deps.rb).
1124     Set RUBYGEMS_GEMDEPS=path to have it loaded. Use - as the path
1125     to autodetect (current and parent directories are searched).
1126
1127 * Minor enhancements:
1128
1129   * Added --only-executables option to `gem pristine`.  Fixes #326
1130   * Added -I flag for 'gem query' to exclude installed items
1131   * Added Gem.install(name, version=default) for interactive sessions
1132   * Added Gem::FilePermissionError#directory
1133   * Added Gem::rubygems_version which is like Gem::ruby_version
1134   * Added RUBYGEMS_HOST documentation to `gem env`
1135   * Added a post_installs hook that runs after Gem::DependencyInstaller
1136     finishes installing a set of gems
1137   * Added a usage method for Gem::Commands::OwnerCommand. (ffmike)
1138   * Added an optional type parameter to Gem::Specification#doc_dir.
1139   * Added announcements url and clarified how to file tickets
1140   * Added guidance for how to use rdoc and ri in setup command. (jjb)
1141   * Attempting to install multiple gems with --version is now an error.  You
1142     can specify per-gem versions like <code>rake:0.9.5</code>
1143   * Clarified Gem::CommandManager example code to avoid multi load problems.
1144     (baroquebobcat)
1145   * Corrupt or bad cached specs are now re-downloaded. (cookrn)
1146   * Extension build arguments are saved from install and reused for pristine
1147   * If the OS allows it, documentation is built in a forked background
1148     process. (alexch)
1149   * Imported gem yank from the gemcutter gem.  Fixes #177, #343
1150   * Packaged gems now contain and verify SHA1 checksums
1151   * Removed commas from gem update summary so you can paste it back to
1152     cleanup.  (amatsuda)
1153   * RubyGems will now warn when building gems with prerelease dependencies.
1154     Fixes #255
1155   * The RUBYGEMS_HOST environment variable is used to determine appropriate
1156     API key for pushing or yanking gems
1157   * Uninstall is now performed in reverse topological order.
1158   * Users are told what to type when they try to uninstall a gem outside
1159     GEM_HOME
1160   * When building gems with non-world-readable files a warning is shown.
1161
1162 * Bug fixes:
1163
1164   * Added PID to setup bin_file while installing RubyGems to protect against
1165     errors. Fixes #328 by ConradIrwin
1166   * Added missing require in Gem::Uninstaller when format_executable is set.
1167     (sakuro)
1168   * Exact gem command name matches are now chosen even if a longer command
1169     overlaps the exact name
1170   * Fixed Gem.loaded_path? with a Pathname instance. (mattetti)
1171   * Fixed Gem::Dependency.new mismatch with rubygems.org checks
1172   * Fixed SecurityError in Gem::Specification.load when $SAFE=1. (ged)
1173   * Fixed SystemStackError with "gem list -r -a" on 1.9 (cldwalker)
1174   * Fixed `gem owners` command so that exceptions don't stop the rest of the
1175     command from completing
1176   * Fixed `gem unpack uninstalled_gem` default version picker.
1177   * Fixed defunct rubyforge urls in gem command line help
1178   * Fixed documentation for the various hooks collections
1179   * Fixed documentation generation on setup when the gem directory does not
1180     exist.  Fixes #253
1181   * Fixed documentation to reflect where defaults overrides are loaded from.
1182     (ferrous26)
1183   * Fixed editing of a Makefile with 8-bit characters.  Fixes #181
1184   * Fixed gem loading issue caused by dependencies not resolving.
1185   * Fixed independent testing of test_gem_package_tar_output.  Ruby Bug #4686
1186     by Shota Fukumori
1187   * Fixed typo in uninstall message. (sandal)
1188   * Gem::Requirement#<=> returns nil on non-requirement arg.
1189   * Gem::Requirement.satisfied_by? raises ArgumentError if given a non-version
1190     argument
1191   * Gem::Version#initialize no longer modifies its parameter. (miaout17)
1192   * Group-writable permissions are now allowed for gem repositories. (ctcherry)
1193   * Memoized values in Gem::Specification are now reset the version or
1194     platform changes. Fixes #78
1195   * More specific errors are raised for bad requirements. (arsduo)
1196   * Removed reference to 'sources' gem in documentation
1197   * Removed unused block arguments to avoid creating Proc objects. (k-tsj)
1198   * RubyGems now asks before overwriting executable wrappers.  Ruby Bug #1800
1199   * The bindir is now created with mkdir_p during install. (voxik)
1200   * URI scheme matching is no longer case-sensitive.  Fixes #322
1201   * ext/builder now checks $MAKE as well as $make (okkez)
1202
1203 === 1.8.29 / 2013-11-23
1204
1205 Bug fixes:
1206
1207 * Fixed installation when the LANG environment variable is empty.
1208 * Added DigiCert High Assurance EV Root CA to the default SSL certificates for
1209   cloudfront.
1210
1211 === 1.8.28 / 2013-10-08
1212
1213 Bug fixes:
1214
1215 * Added the Verisign Class 3 Public Primary Certification Authority G5
1216   certificate and its intermediary to follow the s3.amazonaws.com certificate
1217   change.  Fixes #665 by emeyekayee.  Fixes #671 by jonforums.
1218 * Remove redundant built-in certificates not needed for https://rubygems.org
1219   Fixes #654 by Vít Ondruch.
1220 * Added test for missing certificates for https://s3.amazonaws.com or
1221   https://rubygems.org.  Pull request #673 by Hannes Georg.
1222
1223 === 1.8.27 / 2013-09-24
1224
1225 Security fixes:
1226
1227 * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a
1228   backtracking in Gem::Version validation.  See CVE-2013-4363 for full details
1229   including vulnerable APIs.  Fixed versions include 2.1.5, 2.0.10, 1.8.27 and
1230   1.8.23.2 (for Ruby 1.9.3).
1231
1232 === 1.8.26 / 2013-09-09
1233
1234 Security fixes:
1235
1236 * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a
1237   backtracking in Gem::Version validation.  See CVE-2013-4287 for full details
1238   including vulnerable APIs.  Fixed versions include 2.0.8, 1.8.26 and
1239   1.8.23.1 (for Ruby 1.9.3).  Issue #626 by Damir Sharipov.
1240
1241 Bug fixes:
1242
1243 * Fixed editing of a Makefile with 8-bit characters.  Fixes #181
1244
1245 === 1.8.25 / 2013-01-24
1246
1247 * Bug fixes:
1248   * Added 11627 to setup bin_file location to protect against errors. Fixes
1249     #328 by ConradIrwin
1250   * Specification#ruby_code didn't handle Requirement with multiple
1251   * Fix error on creating a Version object with a frozen string.
1252   * Fix incremental index updates
1253   * Fix missing load_yaml in YAML-related requirement.rb code.
1254   * Manually backport encoding-aware YAML gemspec
1255
1256 === 1.8.24 / 2012-04-27
1257
1258 * 1 bug fix:
1259
1260   * Install the .pem files properly. Fixes #320
1261   * Remove OpenSSL dependency from the http code path
1262
1263 === 1.8.23.2 / 2013-09-24
1264
1265 Security fixes:
1266
1267 * RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a
1268   backtracking in Gem::Version validation.  See CVE-2013-4363 for full details
1269   including vulnerable APIs.  Fixed versions include 2.1.5, 2.0.10, 1.8.27 and
1270   1.8.23.2 (for Ruby 1.9.3).
1271
1272 === 1.8.23.1 / 2013-09-09
1273
1274 Security fixes:
1275
1276 * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a
1277   backtracking in Gem::Version validation.  See CVE-2013-4287 for full details
1278   including vulnerable APIs.  Fixed versions include 2.0.8, 1.8.26 and
1279   1.8.23.1 (for Ruby 1.9.3).  Issue #626 by Damir Sharipov.
1280
1281 === 1.8.23 / 2012-04-19
1282
1283 This release increases the security used when RubyGems is talking to
1284 an https server. If you use a custom RubyGems server over SSL, this
1285 release will cause RubyGems to no longer connect unless your SSL cert
1286 is globally valid.
1287
1288 You can configure SSL certificate usage in RubyGems through the
1289 :ssl_ca_cert and :ssl_verify_mode options in ~/.gemrc and /etc/gemrc.
1290 The recommended way is to set :ssl_ca_cert to the CA certificate for
1291 your server or a certificate bundle containing your CA certification.
1292
1293 You may also set :ssl_verify_mode to 0 to completely disable SSL
1294 certificate checks, but this is not recommended.
1295
1296
1297 * 2 security fixes:
1298   * Disallow redirects from https to http
1299   * Turn on verification of server SSL certs
1300
1301 * 1 minor feature:
1302   * Add --clear-sources to fetch
1303
1304 * 2 bug fixes:
1305   * Use File.identical? to check if two files are the same.
1306   * Fixed init_with warning when using psych
1307
1308 === 1.8.22 / 2012-04-13
1309
1310 * 4 bug fixes:
1311
1312   * Workaround for psych/syck YAML date parsing issue
1313   * Don't trust the encoding of ARGV. Fixes #307
1314   * Quiet default warnings about missing spec variables
1315   * Read a binary file properly (windows fix)
1316
1317 === 1.8.21 / 2012-03-22
1318
1319 * 2 bug fixes:
1320
1321   * Add workaround for buggy yaml output from 1.9.2
1322   * Force 1.9.1 to remove it's prelude code. Fixes #305
1323
1324 === 1.8.20 / 2012-03-21
1325
1326 * 4 bug fixes:
1327
1328   * Add --force to `gem build` to skip validation. Fixes #297
1329   * Gracefully deal with YAML::PrivateType objects in Marshal'd gemspecs
1330   * Treat the source as a proper url base. Fixes #304
1331   * Warn when updating the specs cache fails. Fixes #300
1332
1333 === 1.8.19 / 2012-03-14
1334
1335 * 3 bug fixes:
1336
1337   * Handle loading psych vs syck properly. Fixes #298
1338   * Make sure Date objects don't leak in via Marshal
1339   * Perform Date => Time coercion on yaml loading. Fixes #266
1340
1341 === 1.8.18 / 2012-03-11
1342
1343 * 4 bug fixes:
1344
1345   * Use Psych API to emit more compatible YAML
1346   * Download and write inside `gem fetch` directly. Fixes #289
1347   * Honor sysconfdir on 1.8. Fixes #291
1348   * Search everywhere for a spec for `gem spec`. Fixes #288
1349   * Fix Gem.all_load_path. Fixes #171
1350
1351 === 1.8.17 / 2012-02-17
1352
1353 * 2 minor enhancements:
1354
1355   * Add MacRuby to the list of special cases for platforms (ferrous26)
1356   * Add a default for where to install rubygems itself
1357
1358 * 3 bug fixes:
1359
1360   * Fixed gem loading issue caused by dependencies not resolving.
1361   * Fixed umask error when stdlib is required and unresolved dependencies exist.
1362   * Shebang munging would only take one arg after the cmd
1363   * Define SUCKAGE better, ie only MRI 1.9.2
1364   * Propagate env-shebang to the pristine command if set for install.
1365
1366 === 1.8.16 / 2012-02-12
1367
1368 * 3 bug fixes:
1369
1370   * Fix gem specification loading when encoding is not UTF-8. #146
1371   * Allow group writable if umask allows it already.
1372   * Uniquify the spec list based on directory order priority
1373
1374 === 1.8.15 / 2012-01-06
1375
1376 * 1 bug fix:
1377
1378   * Don't eager load yaml, it creates a bad loop. Fixes #256
1379
1380 === 1.8.14 / 2012-01-05
1381
1382 * 2 bug fixes:
1383
1384   * Ignore old/bad cache data in Version
1385   * Make sure our YAML workarounds are loaded properly. Fixes #250.
1386
1387 === 1.8.13 / 2011-12-21
1388
1389 * 1 bug fix:
1390
1391   * Check loaded_specs properly when trying to satisfy a dep
1392
1393 * 2 minor enhancements:
1394
1395   * Remove using #loaded_path? for performance
1396   * Remove Zlib workaround for Windows build.
1397
1398 === 1.8.12 / 2011-12-02
1399
1400 * Bug fix:
1401   * Handle more cases where Syck's DefaultKey showed up in requirements
1402     and wasn't cleaned out.
1403
1404 === 1.8.11 / 2011-10-03
1405
1406 * Bug fix:
1407   * Deprecate was moved to Gem::Deprecate to stop polluting the top-level
1408     namespace.
1409
1410 === 1.8.10 / 2011-08-25
1411
1412 RubyGems 1.8.10 contains a security fix that prevents malicious gems from
1413 executing code when their specification is loaded.  See
1414 https://github.com/rubygems/rubygems/pull/165 for details.
1415
1416 * 5 bug fixes:
1417
1418   * RubyGems escapes strings in ruby-format specs using #dump instead of #to_s
1419     and %q to prevent code injection.  Issue #165 by Postmodern
1420   * RubyGems attempt to activate the psych gem now to obtain bugfixes from
1421     psych.
1422   * Gem.dir has been restored to the front of Gem.path.  Fixes remaining
1423     problem with Issue #115
1424   * Fixed Syck DefaultKey infecting ruby-format specifications.
1425   * `gem uninstall a b` no longer stops if gem "a" is not installed.
1426
1427 === 1.8.9 / 2011-08-23
1428
1429 * Bug fixes:
1430
1431   * Fixed uninstalling multiple gems using `gem uninstall`
1432   * Gem.use_paths splatted to take multiple paths!  Issue #148
1433
1434 === 1.8.8 / 2011-08-11
1435
1436 * Bug fix:
1437   * The encoding of a gem's YAML spec is now UTF-8.  Issue #149
1438
1439 === 1.8.7 / 2011-08-04
1440
1441 * Bug fixes:
1442   * Added missing require for `gem uninstall --format-executable`
1443   * The correct name of the executable being uninstalled is now displayed with
1444     --format-executable
1445   * Fixed `gem unpack uninstalled_gem` default version picker
1446   * RubyGems no longer claims a nonexistent gem can be uninstalled
1447   * `gem which` no longer claims directories are requirable files
1448   * `gem cleanup` continues cleaning up gems if one can't be uninstalled due
1449     to permissions.  Issue #82
1450   * Gem repository directories are no longer created world-writable.  Patch by
1451     Sakuro OZAWA.  Ruby Bug #4930
1452
1453 === 1.8.6 / 2011-07-25
1454
1455 * 1 minor enhancement:
1456
1457   * Add autorequires and delay startup of RubyGems until require is called.
1458     See Ruby bug #4962
1459
1460 * 9 bug fixes:
1461
1462   * Restore behavior of Gem::Specification#loaded?  Ruby Bug #5032
1463   * Clean up SourceIndex.add_specs to not be so damn noisy. (tadman)
1464   * Added missing APPLE_GEM_HOME in paths.
1465   * Extend YAML::Syck::DefaultKey fixing to `marshal_dump` as well.
1466   * Fix #29216: check correct bin_dir in check_that_user_bin_dir_is_in_path.
1467   * Revert Gem.latest_load_paths to working order (PathSupport revert).
1468   * Restore normalization of GEM_HOME.
1469   * Handle the Syck DefaultKey problem once and for all.
1470   * Fix SystemStackError occurring with "gem list -r -a" on 1.9.
1471
1472 === 1.8.5 / 2011-05-31
1473
1474 * 2 minor enhancement:
1475
1476   * The -u option to 'update local source cache' is official deprecated.
1477   * Remove has_rdoc deprecations from Specification.
1478
1479 * 2 bug fixes:
1480
1481   * Handle bad specs more gracefully.
1482   * Reset any Gem paths changed in the installer.
1483
1484 === 1.8.4 / 2011-05-25
1485
1486 * 1 minor enhancement:
1487
1488   * Removed default_executable deprecations from Specification.
1489
1490 === 1.8.3 / 2011-05-19
1491
1492 * 4 bug fixes:
1493
1494   * Fix independent testing of test_gem_package_tar_output.  Ruby Bug #4686 by
1495     Shota Fukumori
1496   * Fix test failures for systems with separate ruby versions.  Ruby Bug #3808
1497     by Jeremy Evans
1498   * Fixed some bad calls left behind after rolling out some refactorings.
1499   * Syck has a parse error on (good) times output from Psych. (dazuma, et al)
1500
1501 === 1.8.2 / 2011-05-11
1502
1503 * 2 minor enhancements:
1504
1505   * Moved #outdated from OutdatedCommand to Specification (for Isolate).
1506   * Print out a warning about missing executables.
1507
1508 * 3 bug fixes:
1509
1510   * Added missing requires to fix various upgrade issues.
1511   * `gem pristine` respects multiple gem repositories.
1512   * setup.rb now execs with --disable-gems when possible
1513
1514 === 1.8.1 / 2011-05-05
1515
1516 * 1 minor enhancement:
1517
1518   * Added Gem::Requirement#specific? and Gem::Dependency#specific?
1519
1520 * 4 bug fixes:
1521
1522   * Typo on Indexer rendered it useless on Windows
1523   * gem dep can fetch remote dependencies for non-latest gems again.
1524   * gem uninstall with multiple versions no longer crashes with ArgumentError
1525   * Always use binary mode for File.open to keep Windows happy
1526
1527 === 1.8.0 / 2011-04-34
1528
1529 This release focused on properly encapsulating functionality.  Most of this
1530 work focused on moving functionality out of Gem::SourceIndex and
1531 Gem::GemPathSearcher into Gem::Specification where it belongs.
1532
1533 After installing RubyGems 1.8.0 you will see deprecations when loading your
1534 exsting gems.  Run `gem pristine --all --no-extensions` to regenerate your
1535 gem specifications safely.
1536
1537 Currently RubyGems does not save the build arguments used to build gems with
1538 extensions.  You will need to run `gem pristine gem_with_extension --
1539 --build-arg` to regenerate a gem with an extension where it requires special
1540 build arguments.
1541
1542 * 24(+) Deprecations (WOOT!):
1543
1544   * DependencyList.from_source_index deprecated the source_index argument.
1545   * Deprecated Dependency.new(/regex/).
1546   * Deprecated Gem.searcher.
1547   * Deprecated Gem.source_index and Gem.available?
1548   * Deprecated Gem: activate_dep, activate_spec, activate,
1549     report_activate_error, and required_location.
1550   * Deprecated Gem::all_partials
1551   * Deprecated Gem::cache_dir
1552   * Deprecated Gem::cache_gem
1553   * Deprecated Gem::default_system_source_cache_dir
1554   * Deprecated Gem::default_user_source_cache_dir
1555   * Deprecated Platform#empty?
1556   * Deprecated Specification.cache_gem
1557   * Deprecated Specification.installation_path
1558   * Deprecated Specification.loaded, loaded?, and loaded=
1559   * Deprecated all of Gem::SourceIndex.
1560   * Deprecated all of Gem::GemPathSearcher.
1561   * Deprecated Gem::Specification#default_executable.
1562
1563 * 2 major enhancements:
1564
1565   * Gem::SourceIndex functionality has been moved to Gem::Specification.
1566     Gem::SourceIndex is completely disconnected from Gem::Specification
1567   * Refactored GemPathSearcher entirely out. RIPMF
1568
1569 * 41 minor enhancements:
1570
1571   * Added CommandManager#unregister_command
1572   * Added Dependency#matching_specs + to_specs.
1573   * Added Dependency#to_spec
1574   * Added Gem.pre_reset_hook/s and post_reset_hook/s.
1575   * Added GemCommand.reset to reinitialize the singleton
1576   * Added Specification#activate.
1577   * Added Specification#activated, activated=, and activated?
1578   * Added Specification#base_dir.
1579   * Added Specification#bin_dir and bin_file.
1580   * Added Specification#cache_dir and cache_file. Aliased cache_gem.
1581   * Added Specification#doc_dir and ri_dir.
1582   * Added Specification#find(name_or_dep, *requirements).
1583   * Added Specification#gem_dir and gems_dir.
1584   * Added Specification#spec_dir and spec_file.
1585   * Added Specification.add_spec, add_specs, and remove_spec.
1586   * Added Specification.all=. If you use this, we will light you on fire.
1587   * Added Specification.all_names.
1588   * Added Specification.dirs and dirs=. dirs= resets.
1589   * Added Specification.find_all_by_name(name, *reqs)
1590   * Added Specification.latest_specs. SO TINY!
1591   * Added TestCase#all_spec_names to help clean up tests
1592   * Added TestCase#assert_path_exists and refute_path_exists. Will move to
1593     minitest.
1594   * Gem.sources no longer tries to load sources gem. Only uses default_sources.
1595   * Installer no longer accepts a source_index option.
1596   * More low-level integration.
1597   * Removed Gem::FileOperations since it is a dummy class
1598   * Removed a comment because I am dumb
1599   * Removed pkgs/sources/lib/sources.rb
1600   * Revamped indexer to mostly not use SourceIndex (legacy index requires it).
1601   * Rewrote our last functional test suite to be happy and fast
1602   * RubyGems is now under the Ruby License or the MIT license
1603   * Specification#== now only checks name, version, and platform.
1604   * Specification#authors= now forcefully flattens contents (bad rspec! no
1605     cookie!)
1606   * Specification#eql? checks all fields.
1607   * Specification#installation_path no longer raises if it hasn't been
1608     activated.
1609   * Specification#validate now ensures that authors is not empty.
1610   * TestCase.util_setup_spec_fetcher no longer returns a SourceIndex.
1611   * Uninstaller no longer passes around SourceIndex instances
1612   * Warn on loading bad spec array values (ntlm-http gem has nil in its cert
1613     chain)
1614   * `gem pristine` now accepts --no-executables to skip restoring gems with
1615     extensions.
1616   * `gem pristine` can now restore multiple gems.
1617
1618 * 6 bug fixes:
1619
1620   * DependencyInstaller passed around a source_index instance but used
1621     Gem.source_index.
1622   * Fixed Platform#== and #hash so instances may be used as hash keys.
1623   * Fixed broken Specification#original_platform. It should never be nil.
1624   * Gem::Text#format_text now strips trailing whitespace
1625   * Normalize LOAD_PATH with File.expand_path
1626   * `gem build` errors should exit 1.
1627   * `gem pristine` can now restore non-latest gems where the cached gem was
1628     removed.
1629
1630 === 1.7.1 / 2011-03-32
1631
1632 * 1 bug fix:
1633   * Fixed missing file in Manifest.txt.  (Also a bug in hoe was fixed where
1634     `rake check_manifest` showing a diff would not exit with an error.)
1635
1636 === 1.7.0 / 2011-03-32
1637
1638 * 16 Deprecations (woot!)
1639   * Deprecated Gem.all_load_paths, latest_load_paths, promote_load_path, and
1640     cache.
1641   * Deprecated RemoteFetcher#open_uri_or_path.
1642   * Deprecated SourceIndex#all_gems.
1643   * Deprecated SourceIndex#initialize(hash_of_specs).
1644   * Deprecated SourceIndex.from_installed_gems, from_gems_in, and
1645     load_specification.
1646   * Deprecated Specification#has_rdoc, default_executable, and
1647     test_suite_file(=).
1648   * Deprecated Specification#has_rdoc= and default_executable=
1649
1650 * 26 minor enhancements:
1651   * Added stupid simple deprecation module.
1652   * Added --spec option to `gem unpack` to output a gem's original metadata
1653   * Added packaging option to Specification#validate
1654   * Gem.bin_path requires the exec_name argument.
1655   * Read from cached specs if fetch fails for some reason
1656   * Refactored Specification#assign_defaults into #initialize.
1657   * RemoteFetcher#fetch_path now dispatches dynamically to 'fetch_<uri.schema>'
1658   * Removed Specification @@gather.
1659   * Removed Specification.attribute.
1660   * Removed Specification.attribute_alias_singular.
1661   * Removed Specification.attribute_defaults.
1662   * Removed Specification.attributes
1663   * Removed Specification.overwrite_accessor.
1664   * Removed Specification.read_only.
1665   * Removed Specification.required_attribute.
1666   * Removed Specification::SPECIFICATION_VERSION_HISTORY and turned into rdoc
1667   * Removed blanket rescue in default_executable. Hope it doesn't blow up! :P
1668   * Removed nearly all metaprogramming from Specification. Yay for
1669     attr_accessor!
1670   * SourceIndex#initialize changed to prefer an array of spec dirs, defaulting
1671     to none.
1672   * SourceIndex.new is now the preferred way to create SourceIndex instances.
1673     *gasp*
1674   * Specification#validate now checks that array attribs are indeed arrays.
1675   * Specification.default_value is now an instance method.
1676   * Switched Specification::TODAY to be proper midnight @ UTC
1677   * Update Gem::RemoteFetcher\'s User-Agent to handle RUBY_ENGINE and
1678     RUBY_REVISION when patchlevel is -1
1679   * UpdateCommand#gems_to_update now returns (name, version) pairs.
1680   * UpdateCommand#which_to_update now takes an optional system argument.
1681
1682 * 11 bug fixes:
1683   * Added missing remote fetcher require to pristine command (aarnell)
1684   * Building gems now checks to ensure all required fields are non-nil
1685   * Fix option parser when summary is nil.
1686   * Fixed `gem contents` to work with the lightweight specifications
1687   * Fixed `gem update --system x.y.z` where x.y.z == latest version. (MGPalmer)
1688   * Fixed gem contents sorting and tests. (MGPalmer)
1689   * Fixed intermittant problem in `gem fetch` with --platform specified (quix)
1690   * Fixed lightweight specifications so `gem rdoc` will generate proper
1691     documentation
1692   * MockGemUI#terminate_interaction should not raise Gem::SystemExitException.
1693     (MGPalmer)
1694   * RubyGems now raises a better error for broken .gem files.  Bug #29067 by
1695     Elias Baixas
1696   * `gem update` now uniq's command line arguments.
1697
1698 === 1.6.2 / 2011-03-08
1699
1700 Bug Fixes:
1701
1702 * require of an activated gem could cause activation conflicts.  Fixes
1703   Bug #29056 by Dave Verwer.
1704 * `gem outdated` now works with up-to-date prerelease gems.
1705
1706 === 1.6.1 / 2011-03-03
1707
1708 Bug Fixes:
1709
1710 * Installation no longer fails when a dependency from a version that won't be
1711   installed is unsatisfied.
1712 * README.rdoc now shows how to file tickets and get help.  Pull Request #40 by
1713   Aaron Patterson.
1714 * Gem files are cached correctly again.  Patch #29051 by Mamoru Tasaka.
1715 * Tests now pass with non-022 umask.  Patch #29050 by Mamoru Tasaka.
1716
1717 === 1.6.0 / 2011-02-29
1718
1719 4 Deprecations:
1720
1721 * RubyGems no longer requires 'thread'.  Rails < 3 will need to add require
1722   'thread' to their applications.
1723 * Gem.cache is deprecated.  Use Gem.source_index.
1724 * RbConfig.datadir is deprecated.  Use Gem.datadir.
1725 * Gem::LoadError#version_requirements has been removed.  Use
1726   Gem::LoadError#requirement.
1727
1728 2 Major Enhancements:
1729
1730 * Rewrote how Gem::activate (gem and require) resolves dependencies.
1731 * Gem::LoadError#version_requirement has been removed. Use
1732   Gem::LoadError#requirement.
1733
1734 17 Minor Enhancments:
1735
1736 * Added --key to `gem push` for setting alternate API keys.
1737 * Added --format-executable support to gem uninstall.
1738 * Added Gem::DependencyList#clear.
1739 * Added Gem::DependencyList#remove_specs_unsatisfied_by
1740 * Added Gem.latest_spec_for, latest_version_for, and latest_rubygems_version.
1741 * Added Gem::Dependency#merge which merges requirements for two
1742   dependencies.
1743 * Added Gem::TestCase#util_spec for faster tests.
1744 * Added Gem::Specification#dependent_specs.
1745 * Added Gem::TestCase#new_spec and Gem::TestCase#install_specs.
1746 * Added flag to include prerelease gems in Gem::SourceIndex#latest_specs.
1747 * Gem.cache_dir always references the proper cache dir.
1748   Pass true to support a user path.
1749 * Gem.cache_gem, given a filename always references the cache gem.
1750   Pass true to support a user path.
1751 * Added Gem::Specification#conflicts
1752 * Removed rdoc gem/require from test_case.rb.
1753 * Rubygems will no longer let you push if you're using beta or unreleased
1754   rubygems.
1755 * Save RAM / GC churn by removing spec.files and rdoc options from
1756   locally cached gem specifications.
1757 * SpecFetcher.fetch_spec can now take a string source_uri.
1758
1759 10 Bug Fixes:
1760
1761 * Added missing require of Gem::RemoteFetcher to the unpack command.
1762 * RubyGems now completely removes a previous install when reinstalling.
1763 * Fixed Gem::Installer#generate_bin to only chmod files that exist.
1764 * Fixed handling of Windows style file:/// uris.
1765 * Fixed requires in tests. (shota)
1766 * Fixed script generation on Windows.
1767 * Fixed test issues if you have older rubygems installed.
1768 * Gem::DependencyInstaller tests use Gem::Security, add the missing require.
1769 * Gem::Security used FileUtils but didn't require it.  Reported by Elia Schito.
1770 * Gem::Uninstaller now respects --format-executable.
1771
1772 === 1.5.3 / 2011-02-26
1773
1774 Bug Fixes:
1775
1776 * Fix for a bug in Syck which causes install failures for gems packaged with
1777   Psych.  Bug #28965 by Aaron Patterson.
1778
1779 === 1.5.2 / 2011-02-10
1780
1781 Bug Fixes:
1782
1783 * Fixed <tt>gem update --system</tt>.  RubyGems can now update itself again.
1784
1785 === 1.5.1 / 2011-02-09
1786
1787 ==== NOTE: `gem update --system` is broken. See UPGRADING.rdoc.
1788
1789 Minor Enhancement:
1790
1791 * Added ability to do gem update --system X.Y.Z.
1792
1793 Bug Fixes:
1794
1795 * Scrub !!null YAML from 1.9.2 (install and build).
1796 * Added missing requires for user_interaction.
1797 * Wrote option processing tests for gem update.
1798 * Updated upgrading doco for new gem update --system option.
1799 * Fixed SilentUI for cygwin; try /dev/null first then fall back to NUL.
1800 * RubyGems now enforces ruby 1.8.7 or newer.
1801
1802 === 1.5.0 / 2011-01-31
1803
1804 ==== NOTE: `gem update --system` is broken. See UPGRADING.rdoc.
1805
1806 Major Enhancements:
1807
1808 * Finally fixed all known 1.9.x issues. Upgrading is now possible!
1809 * Merged huge 1.3.7/ruby-core changes to master.
1810
1811 Minor Enhancements:
1812
1813 * Added UPGRADING.rdoc to help deal with 1.9 issues.
1814 * Gem::Format now gives better errors for corrupt gem files and includes paths
1815 * Pre-install hooks can now abort gem installation by returning false
1816 * Move shareable TestCase classes to lib/ to help plugin authors with tests.
1817 * Add post-build hooks that can cancel the gem install
1818 * Always require custom_require now that require_gem is gone
1819 * Added GemInstaller accessors for @options so plugins can reference them.
1820 * Optimized Gem.find_files. ~10% faster than 1.4.2. ~40% faster than ruby 1.9.
1821 * Gem::SilentUI now behaves like Gem::StreamUI for asking questions.  Patch by
1822   Erik Hollensbe.
1823
1824 Bug Fixes:
1825
1826 * `gem update` was implicitly doing --system.
1827 * 1.9.3: Fixed encoding errors causing gem installs to die during rdoc phase.
1828 * Add RubyForge URL to README. Closes #28825
1829 * 1.9.3: Use chdir {} when building extensions to prevent warnings. Fixes #4337
1830 * 1.9.2: Fix circular require warning.
1831 * Make requiring openssl even lazier at request of NaHi
1832 * `gem unpack` will now download the gem if it is not in the cache. Patch by
1833   Erik Hollensbe.
1834 * rubygems-update lists its development dependencies again
1835
1836 === 1.4.2 / 2011-01-06
1837
1838 Bug fixes:
1839
1840 * Gem::Versions: "1.b1" != "1.b.1", but "1.b1" eql? "1.b.1". Fixes gem indexing.
1841 * Fixed Gem.find_files.
1842 * Removed otherwise unused #find_all_dot_rb. Only 6 days old and hella buggy.
1843
1844 === 1.4.1 / 2010-12-31
1845
1846 Since apparently nobody reads my emails, blog posts or the README:
1847
1848 DO NOT UPDATE RUBYGEMS ON RUBY 1.9! See UPGRADING.rdoc for details.
1849
1850 Bug fix:
1851
1852 * Specification#load was untainting a frozen string (via `gem build *.spec`)
1853
1854 === 1.4.0 / 2010-12-30
1855
1856 NOTE: In order to better maintain rubygems and to get it in sync with
1857 the world (eg, 1.9's 1.3.7 is different from our 1.3.7), rubygems is
1858 switching to a 4-6 week release schedule. This release is the
1859 precursor to that process and as such may be a bit on the wild side!
1860 You have been warned!
1861
1862 NOTE: We've switched to git/github. See README.rdoc for details.
1863
1864 New features:
1865
1866 * Added --launch option to `gem server`. (gthiesfeld)
1867 * Added fuzzy name matching on install failures. (gstark/presidentbeef)
1868 * Allow searching w/ file extensions: gem which fileutils.rb
1869 * Progress indicator during download (Ryan Melton)
1870 * Speed up Gem::Version#<=> by 2-3x in common cases. (raggi)
1871 * --source is now additive with your current sources.
1872   Use --clear-sources first to maintain previous behavior.
1873
1874 Bug fixes:
1875
1876 * Dependency "~>"s now respect lower-bound prerelease versions.
1877 * Ensure the gem directories exist on download.
1878 * Expand Windows user home candidates for Ruby 1.8. Bug #28371 & #28494
1879 * Fix find_files to order by version.
1880 * Fix ivar typo. [Josh Peek]
1881 * Normalized requires and made many of them lazy.
1882   Do not depend on rubygems to require stdlib stuff for you. (raggi/tmm1)
1883 * Treat 1.0.a10 like 1.0.a.10 for sorting, etc. Fixes #27903. (dchelimsky)
1884
1885 === 1.3.7 / 2010-05-13
1886
1887 NOTE:
1888
1889 http://rubygems.org is now the default source for downloading gems.
1890
1891 You may have sources set via ~/.gemrc, so you should replace
1892 http://gems.rubyforge.org with http://rubygems.org
1893
1894 http://gems.rubyforge.org will continue to work for the forseeable future.
1895
1896 New features:
1897
1898 * `gem` commands
1899   * `gem install` and `gem fetch` now report alternate platforms when a
1900     matching one couldn't be found.
1901   * `gem contents` --prefix is now the default as specified in --help.  Bug
1902     #27211 by Mamoru Tasaka.
1903   * `gem fetch` can fetch of old versions again.  Bug #27960 by Eric Hankins.
1904   * `gem query` and friends output now lists platforms.  Bug #27856 by Greg
1905     Hazel.
1906   * `gem server` now allows specification of multiple gem dirs for
1907     documentation.  Bug #27573 by Yuki Sonoda.
1908   * `gem unpack` can unpack gems again.  Bug #27872 by Timothy Jones.
1909   * `gem unpack` now unpacks remote gems.
1910   * --user-install is no longer the default.  If you really liked it, see
1911     Gem::ConfigFile to learn how to set it by default.  (This change was made
1912     in 1.3.6)
1913 * RubyGems now has platform support for IronRuby.  Patch #27951 by Will Green.
1914
1915 Bug fixes:
1916
1917 * Require rubygems/custom_require if --disable-gem was set.  Bug #27700 by
1918   Roger Pack.
1919 * RubyGems now protects against exceptions being raised by plugins.
1920 * rubygems/builder now requires user_interaction.  Ruby Bug #1040 by Phillip
1921   Toland.
1922 * Gem::Dependency support #version_requirements= with a warning.  Fix for old
1923   Rails versions.  Bug #27868 by Wei Jen Lu.
1924 * Gem::PackageTask depends on the package dir like the other rake package
1925   tasks so dependencies can be hooked up correctly.
1926
1927 === 1.3.6 / 2010-02-17
1928
1929 New features:
1930
1931 * `gem` commands
1932   * Added `gem push` and `gem owner` for interacting with modern/Gemcutter
1933     sources
1934   * `gem dep` now supports --prerelease.
1935   * `gem fetch` now supports --prerelease.
1936   * `gem server` now supports --bind.  Patch #27357 by Bruno Michel.
1937   * `gem rdoc` no longer overwrites built documentation.  Use --overwrite
1938     force rebuilding.  Patch #25982 by Akinori MUSHA.
1939 * Captial letters are now allowed in prerelease versions.
1940
1941 Bug fixes:
1942
1943 * Development deps are no longer added to rubygems-update gem so older
1944   versions can update sucessfully.
1945 * Installer bugs:
1946   * Prerelease gems can now depend on non-prerelease gems.
1947   * Development dependencies are ignored unless explicitly needed.  Bug #27608
1948     by Roger Pack.
1949 * `gem` commands
1950   * `gem which` now fails if no paths were found.  Adapted patch #27681 by
1951     Caio Chassot.
1952   * `gem server` no longer has invalid markup.  Bug #27045 by Eric Young.
1953   * `gem list` and friends show both prerelease and regular gems when
1954     --prerelease --all is given
1955 * Gem::Format no longer crashes on empty files.  Bug #27292 by Ian Ragsdale.
1956 * Gem::GemPathSearcher handles nil require_paths. Patch #27334 by Roger Pack.
1957 * Gem::RemoteFetcher no longer copies the file if it is where we want it.
1958   Patch #27409 by Jakub Šťastný.
1959
1960 Deprecation Notices:
1961
1962 * lib/rubygems/timer.rb has been removed.
1963 * Gem::Dependency#version_requirements is deprecated and will be removed on or
1964   after August 2010.
1965 * Bulk index update is no longer supported.
1966 * Gem::manage_gems was removed in 1.3.3.
1967 * Time::today was removed in 1.3.3.
1968
1969 === 1.3.5 / 2009-07-21
1970
1971 Bug fixes:
1972
1973 * Fix use of prerelease gems.
1974 * Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458.
1975
1976 Deprecation Notices:
1977
1978 * Bulk index update is no longer supported (the code currently remains, but not
1979   the tests)
1980 * Gem::manage_gems was removed in 1.3.3.
1981 * Time::today was removed in 1.3.3.
1982
1983 === 1.3.4 / 2009-05-03
1984
1985 Bug Fixes:
1986
1987 * Fixed various warnings
1988 * Gem::ruby_version works correctly for 1.8 branch and trunk
1989 * Prerelease gems now show up in `gem list` and can be used
1990 * Fixed option name for `gem setup --format-executable`
1991 * RubyGems now matches Ruby > 1.9.1 gem paths
1992 * Gem::RemoteFetcher#download now works for explicit Windows paths across
1993   drives.  Bug #25882 by Lars Christensen
1994 * Fix typo in Gem::Requirement#parse.  Bug #26000 by Mike Gunderloy.
1995
1996 Deprecation Notices:
1997
1998 * Bulk index update is no longer supported (the code currently remains, but not
1999   the tests)
2000 * Gem::manage_gems was removed in 1.3.3.
2001 * Time::today was removed in 1.3.3.
2002
2003 === 1.3.3 / 2009-05-04
2004
2005 New Features:
2006
2007 * `gem server` allows port names (from /etc/services) with --port.
2008 * `gem server` now has search that jumps to RDoc.  Patch #22959 by Vladimir
2009   Dobriakov.
2010 * `gem spec` can retrieve single fields from a spec (like `gem spec rake
2011   authors`).
2012 * Gem::Specification#has_rdoc= is deprecated and ignored (defaults to true)
2013 * RDoc is now generated regardless of Gem::Specification#has_rdoc?
2014
2015 Bug Fixes:
2016
2017 * `gem clean` now cleans up --user-install gems.  Bug #25516 by Brett
2018   Eisenberg.
2019 * Gem.bin_path now escapes paths with spaces.
2020 * Rake extension builder uses explicit correctly loads rubygems when invoking
2021   rake.
2022 * Prerelease versions now match "~>" correctly.  Patch #25759 by Yossef
2023   Mendelssohn.
2024 * Check bindir for executables, not root when validating.  Bug reported by
2025   David Chelimsky.
2026 * Remove Time.today, no way to override it before RubyGems loads.  Bug #25564
2027   by Emanuele Vicentini
2028 * Raise Gem::Exception for #installation_path when not installed.  Bug #25741
2029   by Daniel Berger.
2030 * Don't raise in Gem::Specification#validate when homepage is nil.  Bug #25677
2031   by Mike Burrows.
2032 * Uninstall executables from the correct directory.  Bug #25555 by Brett
2033   Eisenberg.
2034 * Raise Gem::LoadError if Kernel#gem fails due to previously-loaded gem.  Bug
2035   reported by Alf Mikula.
2036
2037 Deprecation Notices:
2038
2039 * Gem::manage_gems has been removed.
2040 * Time::today has been removed early.  There was no way to make it warn and be
2041   easy to override with user code.
2042
2043 === 1.3.2 / 2009-04-15
2044
2045 Select New Features:
2046
2047 * RubyGems now loads plugins from rubygems_plugin.rb in installed gems.
2048   This can be used to add commands (See Gem::CommandManager) or add
2049   install/uninstall hooks (See Gem::Installer and Gem::Uninstaller).
2050 * Gem::Version now understands prerelease versions using letters. (eg.
2051   '1.2.1.b')  Thanks to Josh Susser, Alex Vollmer and Phil Hagelberg.
2052 * RubyGems now includes a Rake task for creating gems which replaces rake's
2053   Rake::GemPackageTask.  See Gem::PackageTask.
2054 * Gem::find_files now returns paths in $LOAD_PATH.
2055 * Added Gem::promote_load_path for use with Gem::find_files
2056 * Added Gem::bin_path to make finding executables easier.  Patch #24114 by
2057   James Tucker.
2058 * Various improvements to build arguments for installing gems.
2059 * `gem contents` added --all and --no-prefix.
2060 * Gem::Specification
2061   * #validate strips directories and errors on not-files.
2062   * #description no longer removes newlines.
2063   * #name must be a String.
2064   * FIXME and TODO are no longer allowed in various fields.
2065   * Added support for a license attribute.  Feature #11041 (partial).
2066   * Removed Gem::Specification::list, too much process growth.  Bug #23668 by
2067     Steve Purcell.
2068 * `gem generate_index`
2069   * Can now generate an RSS feed.
2070   * Modern indicies can now be updated incrementally.
2071   * Legacy indicies can be updated separately from modern.
2072
2073 Select Bugs Fixed:
2074
2075 * Better gem activation error message. Patch #23082.
2076 * Kernel methods are now private.  Patch #20801 by James M. Lawrence.
2077 * Fixed various usability issues with `gem check`.
2078 * `gem update` now rescues InstallError and continues.  Bug #19268 by Gabriel
2079   Wilkins.
2080 * Allow 'https', 'file' as a valid schemes for --source.  Patch #22485.
2081 * `gem install`
2082   * Now removes existing path before installing.  Bug #22837.
2083   * Uses Gem::bin_path in executable stubs to work around Kernel#load bug in
2084     1.9.
2085   * Correctly handle build args (after --) via the API.  Bug #23210.
2086 * --user-install
2087   * `gem install --no-user-install` now works.  Patch #23573 by Alf Mikula.
2088   * `gem uninstall` can now uninstall from ~/.gem.  Bug #23760 by Roger Pack.
2089 * setup.rb
2090   * Clarify RubyGems RDoc installation location.  Bug #22656 by Gian Marco
2091     Gherardi.
2092   * Allow setup to run from read-only location.  Patch #21862 by Luis Herrera.
2093   * Fixed overwriting ruby executable when BASERUBY was not set.  Bug #24958
2094     by Michael Soulier.
2095   * Ensure we're in a RubyGems dir when installing.
2096   * Deal with extraneous quotation mark when autogenerating .bat file on MS
2097     Windows.  Bug #22712.
2098
2099 Deprecation Notices:
2100
2101 * Gem::manage_gems has been removed.
2102 * Time::today will be removed in RubyGems 1.4.
2103
2104 Special thanks to Chad Wooley for backwards compatibility testing and Luis
2105 Lavena and Daniel Berger for continuing windows support.
2106
2107 === 1.3.1 / 2008-10-28
2108
2109 Bugs fixed:
2110
2111 * Disregard ownership of ~ under Windows while creating ~/.gem.  Fixes
2112   issues related to no uid support under Windows.
2113 * Fix requires for Gem::inflate, Gem::deflate, etc.
2114 * Make Gem.dir respect :gemhome value from config.  (Note: this feature may be
2115   removed since it is hard to implement on 1.9.)
2116 * Kernel methods are now private.  Patch #20801 by James M. Lawrence.
2117 * Gem::location_of_caller now behaves on Windows.  Patch by Daniel Berger.
2118 * Silence PATH warning.
2119
2120 Deprecation Notices:
2121
2122 * Gem::manage_gems will be removed on or after March 2009.
2123
2124 === 1.3.0 / 2008-09-25
2125
2126 New features:
2127
2128 * RubyGems doesn't print LOCAL/REMOTE titles for `gem query` and friends if
2129   stdout is not a TTY, except with --both.
2130 * Added Gem.find_files, allows a gem to discover features provided by other
2131   gems.
2132 * Added pre/post (un)install hooks for packagers of RubyGems.  (Not for gems
2133   themselves).
2134 * RubyGems now installs gems into ~/.gem if GEM_HOME is not writable.  Use
2135   --no-user-install command-line switch to disable this behavior.
2136 * Fetching specs for update now uses If-Modified-Since requests.
2137 * RubyGems now updates the ri cache when the rdoc gem is installed and
2138   documentation is generated.
2139
2140 Deprecation Notices:
2141
2142 * Gem::manage_gems now warns when called.  It will be removed on or after March
2143   2009.
2144
2145 Bugs Fixed:
2146
2147 * RubyGems 1.3.0+ now updates when no previous rubygems-update is installed.
2148   Bug #20775 by Hemant Kumar.
2149 * RubyGems now uses the regexp we already have for `gem list --installed`.  Bug
2150   #20876 by Nick Hoffman.
2151 * Platform is now forced to Gem::Platform::RUBY when nil or blank in the
2152   indexer.  Fixes various uninstallable gems.
2153 * Handle EINVAL on seek.  Based on patch in bug #20791 by Neil Wilson.
2154 * Fix HTTPS support.  Patch #21072 by Alex Arnell.
2155 * RubyGems now loads all cache files even if latest has been loaded.  Bug
2156   #20776 by Uwe Kubosch.
2157 * RubyGems checks for support of development dependencies for #to_ruby.  Bug
2158   #20778 by Evan Weaver.
2159 * Now specifications from the future can be loaded.
2160 * Binary script uninstallation fixed.  Bug #21234 by Neil Wilson.
2161 * Uninstallation with -i fixed.  Bug #20812 by John Clayton.
2162 * Gem::Uninstaller#remove_all now calls Gem::Uninstaller#uninstall_gem so hooks
2163   get called.  Bug #21242 by Neil Wilson.
2164 * Gem.ruby now properly escaped on windows.  Fixes problem with extension
2165   compilation.
2166 * `gem lock --strict` works again.  Patch #21814 by Sven Engelhardt.
2167 * Platform detection for Solaris was improved.  Patch #21911 by Bob Remeika.
2168
2169 Other Changes Include:
2170
2171 * `gem help install` now describes _version_ argument to executable stubs
2172 * `gem help environment` describes environment variables and ~/.gemrc and
2173   /etc/gemrc
2174 * On-disk gemspecs are now read in UTF-8 and written with a UTF-8 magic comment
2175 * Rakefile
2176   * If the SETUP_OPTIONS environment variable is set, pass its contents as
2177     arguments to setup.rb
2178 * lib/rubygems/platform.rb
2179   * Remove deprecated constant warnings and really deprecate them.  (WIN32,
2180     etc).
2181 * lib/rubygems/remote_fetcher.rb
2182   * Now uses ~/.gem/cache if the cache dir in GEM_HOME is not writable.
2183 * lib/rubygems/source_index.rb
2184   * Deprecate options to 'search' other than Gem::Dependency instances and
2185     issue warning until November 2008.
2186 * setup.rb
2187   * --destdir folder structure now built using Pathname, so it works for
2188     Windows platforms.
2189 * test/*
2190   * Fixes to run tests when under test/rubygems/.  Patch by Yusuke ENDOH
2191     [ruby-core:17353].
2192 * test/test_ext_configure_builder.rb
2193   * Locale-free patch by Yusuke Endoh [ruby-core:17444].
2194
2195 === 1.2.0 / 2008-06-21
2196
2197 New features:
2198
2199 * RubyGems no longer performs bulk updates and instead only fetches the gemspec
2200   files it needs.  Alternate sources will need to upgrade to RubyGems 1.2 to
2201   allow RubyGems to take advantage of the new metadata updater.  If a pre 1.2
2202   remote source is in the sources list, RubyGems will revert to the bulk update
2203   code for compatibility.
2204 * RubyGems now has runtime and development dependency types.  Use
2205   #add_development_dependency and #add_runtime_dependency.  All typeless
2206   dependencies are considered to be runtime dependencies.
2207 * RubyGems will now require rubygems/defaults/operating_system.rb and
2208   rubygems/defaults/#{RBX_ENGINE}.rb if they exist.  This allows packagers and
2209   ruby implementers to add custom behavior to RubyGems via these files.  (If
2210   the RubyGems API is insufficient, please suggest improvements via the
2211   RubyGems list.)
2212 * /etc/gemrc (and windows equivalent) for global settings
2213 * setup.rb now handles --vendor and --destdir for packagers
2214 * `gem stale` command that lists gems by last access time
2215
2216 Bugs Fixed:
2217
2218 * File modes from gems are now honored, patch #19737
2219 * Marshal Gem::Specification objects from the future can now be loaded.
2220 * A trailing / is now added to remote sources when missing, bug #20134
2221 * Gems with legacy platforms will now be correctly uninstalled, patch #19877
2222 * `gem install --no-wrappers` followed by `gem install --wrappers` no longer
2223   overwrites executables
2224 * `gem pristine` now forces reinstallation of gems, bug #20387
2225 * RubyGems gracefully handles ^C while loading .gemspec files from disk, bug
2226   #20523
2227 * Paths are expanded in more places, bug #19317, bug #19896
2228 * Gem::DependencyInstaller resets installed gems every install, bug #19444
2229 * Gem.default_path is now honored if GEM_PATH is not set, patch #19502
2230
2231 Other Changes Include:
2232
2233 * setup.rb
2234   * stub files created by RubyGems 0.7.x and older are no longer removed.  When
2235     upgrading from these ancient versions, upgrade to 1.1.x first to clean up
2236     stubs.
2237   * RDoc is no longer required until necessary, patch #20414
2238 * `gem server`
2239   * Now completely matches the output of `gem generate_index` and
2240     has correct content types
2241   * Refreshes from source directories for every hit.  The server will no longer
2242     need to be restarted after installing gems.
2243 * `gem query --details` and friends now display author, homepage, rubyforge url
2244   and installed location
2245 * `gem install` without -i no longer reinstalls dependencies if they are in
2246   GEM_PATH but not in GEM_HOME
2247 * Gem::RemoteFetcher now performs persistent connections for HEAD requests,
2248   bug #7973
2249
2250 === 1.1.1 / 2008-04-11
2251
2252 Bugs Fixed:
2253
2254 * Gem.prefix now returns non-nil only when RubyGems was installed outside
2255   sitelibdir or libdir.
2256 * The `gem server` gem list now correctly links to gem details.
2257 * `gem update --system` now passes --no-format-executable to setup.rb.
2258 * Gem::SourceIndex#refresh! now works with multiple gem repositories.
2259 * Downloaded gems now go into --install-dir's cache directory.
2260 * Various fixes to downloading gem metadata.
2261 * `gem install --force` now ignores network errors too.
2262 * `gem pristine` now rebuilds extensions.
2263 * `gem update --system` now works on virgin Apple ruby.
2264 * Gem::RemoteFetcher handles Errno::ECONNABORTED.
2265 * Printing of release notes fixed.
2266
2267 === 1.1.0 / 2008-03-29
2268
2269 New features:
2270
2271 * RubyGems now uses persistent connections on index updates.  Index updates are
2272   much faster now.
2273 * RubyGems only updates from a latest index by default, cutting candidate gems
2274   for updates to roughly 1/4 (at present).  Index updates are even faster
2275   still.
2276   * `gem list -r` may only show the latest version of a gem, add --all to see
2277     all gems.
2278 * `gem spec` now extracts specifications from .gem files.
2279 * `gem query --installed` to aid automation of checking for gems.
2280
2281 Bugs Fixed:
2282
2283 * RubyGems works with both Config and RbConfig now.
2284 * Executables are now cleaned upon uninstall.
2285 * You can now uninstall from a particular directory.
2286 * Updating from non-default sources fixed.
2287 * Executable stubs now use ruby install name in shebang.
2288 * `gem unpack` checks every directory in Gem.path now.
2289 * `gem install` now exits with non-zero exit code when appropriate.
2290 * `gem update` only updates gems that need updates.
2291 * `gem update` doesn't force remote-only updates.
2292 * `gem update` handles dependencies properly when updating.
2293 * Gems are now loaded in Gem.path order.
2294 * Gem stub scripts on windows now work outside Gem.bindir.
2295 * `gem sources -r` now works without network access.
2296
2297 Other Changes Include:
2298
2299 * RubyGems now requires Ruby > 1.8.3.
2300 * Release notes are now printed upon installation.
2301 * `gem env path` now prints a usable path.
2302 * `gem install` reverts to local-only installation upon network error.
2303 * Tar handling code refactoring and cleanup.
2304 * Gem::DependencyInstaller's API has changed.
2305
2306 For a full list of changes to RubyGems, see the ChangeLog file.
2307
2308 === 1.0.1 / 2007-12-20
2309
2310 Bugs Fixed:
2311
2312 * Installation on Ruby 1.8.3 through 1.8.5 fixed
2313 * `gem build` on 1.8.3 fixed
2314
2315 Other Changes Include:
2316
2317 * Since RubyGems 0.9.5, RubyGems is no longer supported on Ruby 1.8.2 or older,
2318   this is official in RubyGems 1.0.1.
2319
2320 === 1.0.0 / 2007-12-20
2321
2322 Major New Features Include:
2323
2324 * RubyGems warns about various problems with gemspecs during gem building
2325 * More-consistent versioning for the RubyGems software
2326
2327 Other Changes Include:
2328
2329 * Fixed various bugs and problems with installing gems on Windows
2330 * Fixed using `gem server` for installing gems
2331 * Various operations are even more verbose with --verbose
2332 * Built gems are now backwards compatible with 0.9.4
2333 * Improved detection of RUBYOPT loading rubygems
2334 * `ruby setup.rb` now has a --help option
2335 * Gem::Specification#bindir is now respected on installation
2336 * Executable stubs can now be installed to match ruby's name, so if ruby is
2337   installed as 'ruby18', foo_exec will be installed as 'foo_exec18'
2338 * `gem unpack` can now unpack into a specific directory with --target
2339 * OpenSSL is no longer required by default
2340
2341 Deprecations and Deletions:
2342
2343 * Kernel#require_gem has been removed
2344 * Executables without a shebang will not be wrapped in a future version, this
2345   may cause such executables to fail to operate on installation
2346 * Gem::Platform constants other than RUBY and CURRENT have been removed
2347 * Gem::RemoteInstaller was removed
2348 * Gem::Specification#test_suite_file and #test_suite_file= are deprecated in
2349   favor of #test_file and #test_file=
2350 * Gem::Specification#autorequire= has been deprecated
2351 * Time::today will be removed in a future version
2352
2353 === 0.9.5 / 2007-11-19
2354
2355 Major New Features Include:
2356
2357 * Platform support
2358 * Automatic installation of platform gems
2359 * New bandwidth and memory friendlier index file format
2360 * "Offline" mode (--no-update-sources)
2361 * Bulk update threshold can be specified (-B, --bulk-threshold)
2362 * New `gem fetch` command
2363 * `gem` now has "really verbose" output when you specify -v
2364 * Improved stubs and `gem.bat` on mswin, including better compatiblity
2365   with the One-Click Installer.
2366
2367 Other Changes Include:
2368
2369 * Time::today is deprecated and will be removed at a future date
2370 * Gem::manage_gems is deprecated and will be removed at a future date
2371 * `gem install --include-dependencies` (-y) is now deprecated since it is the
2372   default, use --ignore-dependencies to turn off automatic dependency
2373   installation
2374 * Multi-version diamond dependencies only are installed once
2375 * Processing a YAML bulk index update takes less memory
2376 * `gem install -i` makes sure all depenencies are installed
2377 * `gem update --system` reinstalls into the prefix it was originally installed
2378   in
2379 * `gem update --system` respects --no-rdoc and --no-ri flags
2380 * HTTP basic authentication support for proxies
2381 * Gem::Specification#platforms should no longer be a String, use
2382   Gem::Platform::CURRENT when building binary gems instead
2383 * `gem env` has more diagnostic information
2384 * require 'rubygems' loads less code
2385 * sources.gem is gone, RubyGems now uses built-in defaults
2386 * `gem install --source` will no longer add --source by default, use `gem
2387   sources --add` to make it a permanent extra source
2388 * `gem query` (list) no longer prints details by default
2389 * Exact gem names are matched in various places
2390 * mkrf extensions are now supported
2391 * A gem can depend on a specific RubyGems version
2392 * `gem_server` is now `gem server`
2393 * `gemlock` is now `gem lock`
2394 * `gem_mirror` is now `gem mirror`
2395 * `gemwhich` is now `gem which`
2396 * `gemri` is no longer included with RubyGems
2397 * `index_gem_repository.rb` is now `gem generate_index`
2398 * `gem` performs more validation of parameters
2399 * Custom rdoc styles are now supported
2400 * Gem indexer no longer removes quick index during index creation
2401 * Kernel#require only rescues a LoadError for the file being required now
2402 * `gem dependencies` can now display some information for remote gems
2403 * Updating RubyGems now works with RUBYOPT=-rubygems
2404
2405 Special thanks to:
2406
2407 * Daniel Berger
2408 * Luis Lavena
2409 * Tom Copeland
2410 * Wilson Bilkovich
2411
2412 === 0.9.4 / 2007-05-23
2413
2414 If you are experiencing problems with the source index (e.g. strange
2415 "No Method" errors), or problems with zlib (e.g. "Buffer Error"
2416 messsage), we recommend upgrading to RubyGems 0.9.4.
2417
2418 Bug Fixes Include:
2419
2420 * Several people have been experiencing problems with no method errors
2421   on the source index cache.  The source index cache is now a bit more
2422   self healing.  Furthermore, if the source index cache is
2423   irreparable, then it is automatically dropped and reloaded.
2424 * The source cache files may now be dropped with the "gem sources
2425   --clear-all" command.  (This command may require root is the system
2426   source cache is in a root protected area).
2427 * Several sub-commands were accidently dropped from the "gem" command.
2428   These commands have been restored.
2429
2430 === 0.9.3 / 2007-05-10
2431
2432 Bug Fixes Include:
2433
2434 The ZLib library on Windows will occasionally complains about a buffer error
2435 when unpacking gems.  The Gems software has a workaround for that problem, but
2436 the workaround was only enabled for versions of ZLib 1.2.1 or earlier.  We
2437 have received several reports of the error occuring with ZLib 1.2.3, so we
2438 have permanently enabled the work around on all versions.
2439
2440 === 0.9.2 / 2007-02-05
2441
2442 Bug Fixes Include:
2443
2444 * The "unpack" command now works properly.
2445 * User name and password are now passed properly to the authenticating
2446   proxy when downloading gems.
2447
2448 === 0.9.1 / 2007-01-16
2449
2450 See ChangeLog
2451
2452 === 0.9.0 / 2006-06-28
2453
2454 Finally, the much anticipated RubyGems version 0.9.0 is now available.
2455 This release includes a number of new features and bug fixes.  The
2456 number one change is that we can now download the gem index
2457 incrementally.  This will greatly speed up the gem command when only a
2458 few gems are out of date.
2459
2460 Major Enhancments include:
2461
2462 * The gem index is now downloaded incrementally, only updating entries
2463   that are out of date.  If more than 50 entries are out of date, we
2464   revert back to a bulk download.
2465 * Several patches related to allowing RubyGems to work with
2466   authenticating proxies (from Danie Roux and Anatol Pomozov).  Just
2467   put the user and password in the proxy URL (e.g. -p
2468   http://user:password@proxy.address.com:8080) or use the
2469   HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables.
2470 * The gem unpack command can now accept a file path rather than just a
2471   install gem name.
2472 * Both RI and RDOC documents are now generated by default.
2473 * A gemri command is included to read gem RI docs (only needed for
2474   Ruby 1.8.4 or earlier).
2475
2476 Minor enhancements include:
2477
2478 * Verison 0.0.0 is now a valid gem version.
2479 * Better detection of missing SSL functionality.
2480 * SSL is not required if the security policy does not require
2481   signature checking.
2482 * Rake built extensions are now supported (Tilman Sauerbeck).
2483 * Several autorequire bug fixes.
2484 * --traceback is now an alias for --backtrace (I can never remember
2485   which one it is).
2486 * SAFE=1 compatibility fixes.
2487 * .rbw is now a supported suffix for RubyGem's custom require.
2488 * Several Ruby 1.9 compatibility fixes (Eric Hodel).
2489
2490 Bug Fixes:
2491
2492 * Added dashes to gemspecs generated in Ruby 1.8.3.  This solves some
2493   cross-Ruby version compatibility issues.
2494 * Fixed bug where the wrong executables could be uninstalled (Eric
2495   Hodel).
2496 * Fixed bug where gem unpack occasionally unpacked the wrong gem.
2497 * Fixed bug where a fatal error occured when permissions on .gemrc
2498   were too restrictive (reported by Luca Pireddu).
2499 * Fixed prefix handling for native expressions (patch by Aaron Patterson).
2500 * Fixed several Upgrade => Update typos.
2501
2502 === 0.8.11 / 2005-07-13
2503
2504 * -y is a synonym for --include-dependencies.
2505 * Better handling of errors in the top level rescue clause.
2506 * Package list command (e.g. gem inspect GEM).
2507 * .gemrc now allows cvsrc-like options to set defaults per subcommand.
2508 * The autorequire gem spec field will now accept a list.
2509 * Substituted Time for Date in specs, increasing performance
2510   dramatically.
2511 * Fixed reported bug of gem directories ending in "-" (reported by
2512   Erik Hatcher).
2513 * Fixed but in installer that caused dependency installation to not
2514   work.
2515 * Added Paul Duncan's gem signing patch.
2516 * Added Mark Hubbart's Framework patch (for better integration with OS
2517   X).
2518 * Added David Glasser's install-from-mirror patch.
2519 * Additional internal structural cleanup and test reorganization.
2520
2521 === 0.8.10 / 2005-03-27
2522
2523 * In multi-user environments, it is common to supply mulitple versions of gems
2524   (for example Rails), allowing individual users to select the version of the
2525   gem they desire.  This allows a user to be insulated from updates to that
2526   gem.  RubyGems 0.8.10 fixes a problem where gems could occasionally become
2527   confused about the current versions of libraries selected by the user.
2528 * The other annoying bug is that if there are any existing rubygems-update gems
2529   installed, then the "gem update --system" command will download a new
2530   update, but install the latest update prior to the download.
2531
2532 === 0.8.9
2533
2534 Never released
2535
2536 === 0.8.8 / 2005-03-14
2537
2538 * Moved the master definition of class Requirement back under version.
2539   Kept the body of Requirement under Gem.
2540
2541 === 0.8.7 / 2005-03-14
2542
2543 Even though it has only been a few weeks since that last release,
2544 there are quite a number of new features in 0.8.7.  A complete list of
2545 new features will be given below, but here is a summary of the hot
2546 items.
2547
2548 * The bug that prevented some users from installing rails has been
2549   squashed.  A big thanks to Bill Guindon (aGorilla) for helping track
2550   that one down.
2551
2552 There are several new commands available on the gem command:
2553
2554 * gem cleanup GEMNAME -- Cleanup (uninstall) all the old versions of
2555   gem.  If the gem name is omitted, the entire repository is cleaned.
2556 * gem dependency GEMNAME -- Show the dependencies for the named gems.
2557   This is really helpful when trying to figure out what gem needs what
2558   other gem.
2559
2560 There changes to the existing commands as well.
2561
2562 * gem uninstall is much smarter about removing gems from the
2563   repository.  Lists of gems are now uninstalled in proper dependency
2564   order (ie. if A depends on B, A is uninstalled first).  Also,
2565   warnings about broken dependencies occur only when removing the
2566   *last* gem that supports a dependency is removed.
2567
2568 Both gem install and gem uninstall support some new command line
2569 options that can reduce the amount of yes/no queries given the user.
2570 For install we have:
2571
2572 * --ignore-dependencies -- Only install requests gems, no
2573   dependendecies are automatically installed.
2574 * --include-dependencies -- Automatically install dependencies,
2575   without confirmation.
2576
2577 For gem uninstall, the new options are:
2578
2579 * --all -- Uninstall all matching gems without confirmation.
2580 * --ignore-dependencies -- Uninstall, even if dependencies are broken.
2581 * --executables -- Remove executables without confirmation
2582
2583 Under general cleanup, gems will not, by default, run RDoc on packages
2584 that do not have the RDoc flag set.
2585
2586 And finally there is a new library file 'gemconfigure' to aid in
2587 writing version sensitive applications (without undue dependencies on
2588 RubyGems); and 'gemwhich', a short script to locate libraries in the
2589 file system.  You can read more about them here:
2590
2591 * gemconfigure: http://docs.rubygems.org/read/chapter/4#page73
2592 * gemwhich: http://docs.rubygems.org/read/chapter/17
2593
2594 === 0.8.6 / 2005-02-27
2595
2596 * Fixed a small bug with shebang construction
2597
2598 === 0.8.5 / 2005-02-26
2599
2600 Do you know how you used to dread getting the following message while
2601 installing gems?
2602
2603   Updating Gem source index for: http://gems.rubyforge.org
2604
2605 It could take up to 30 seconds (on my machine, even worse on others) for
2606 that crazy source index to update.
2607
2608 This latest release of RubyGems speeds that wait time up considerably.
2609 The following table gives the following times for installing RedCloth
2610 with a required source index update on three system we had available to
2611 us.  No RDoc generation was included in the following times.
2612
2613   RubyGems    Linux         Mac OSX      Windows
2614   0.8.4       33 secs       73 secs      58 secs
2615   0.8.5        8 secs       14 secs      21 secs
2616
2617 The new caching code is at least 3x faster than previous versions.  Woo
2618 Hoo!
2619
2620 === 0.8.4 / 2005-01-01
2621
2622 * Rubygems 0.8.3's installer was broken unless you already had an older
2623   version of RubyGems installed.  That's fixed.
2624 * Change in the way Gem::Specification internally deals with lazy attributes
2625   and defaults, bringing (with some loadpath_manager changes) a fairly
2626   significant increase in speed.
2627 * Support for lower-cased Gem file names (for you, Paul Duncan :)
2628 * Erik Veenstra's patch for making Gem versions sortable.
2629
2630 === 0.8.3 / 2004-12-07
2631
2632 No real earth shattering news here, but there were a number of really
2633 annoying issues involving other libraries that RubyGems depends upon.
2634 0.8.3 contains some workarounds for these issues.  In particular:
2635
2636 * Added workaround for the null byte in Dir string issue. (see
2637   http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121702).
2638   (Thanks to Mauricio Fernández for the quick response on this one).
2639 * Added workaround for old version of Zlib on windows that caused
2640   Ruwiki to fail to install. (see
2641   http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121770)
2642 * Added workaround for large YAML file issues.  (We dynamically cut
2643   down the size of the source index YAML file and seem to have worked
2644   around immediate issues.
2645
2646 There has been some minor usability enhancements and changes ...
2647
2648 * A user specific source index cache can be used when the site-wide
2649   cache is unwritable (i.e. because you are running as a non-admin).
2650   This *greatly* speeds up gem commands run in non-admin mode when the
2651   site-wide cache is out of date.
2652 * The gem command now used an HTTP HEAD command to detect if the
2653   server's source index needs to be downloaed.
2654 * gem check gemname --test will run unit tests on installed gems that
2655   have unit tests.
2656 * Multiple gem names are allowed on the gem install command line.
2657   This means you can do:
2658
2659     gem install rake rails needle postgres-pr pimki
2660
2661   (Ok, you get the idea)
2662 * Multiple authors my be specified in a Gem spec.
2663 * Switched to using setup.rb (rather than a custom install script) for
2664   the installation of RubyGems itself.  If you have installed RubyGems
2665   before, double check the installation instructions and make sure you
2666   use setup.rb instead of install.rb.
2667 * Ryan Davis has provided a patch so you can use an env variable
2668   (GEM_SKIP), to tell loadpath_manager not to load gems of those
2669   names.  This was useful for him while testing libs that he had in
2670   development.
2671
2672 === 0.8.1 / 2004-09-17
2673
2674 * Quick release to capture some bug fixes.
2675
2676 === 0.8.0 / 2004-09-15
2677
2678 * Remove need for library stubs.  Set the RUBYOPT environment variable to
2679   include "rrubygems", and a normal require will find gem files.  Continue to
2680   use 'require_gem gem_name, version' to specify gem versions.
2681 * Deprecated "test_suite_file" gemspec attribute in favor of "test_files" array.
2682 * Generates rdoc by default on installs.
2683 * Adopted tar/gzip file format, thanks to Mauricio Fernandez.
2684 * "gem rdoc" allows generation of rdoc after gem installation (will add a "gem
2685   test"
2686 * Application stubs can now accept an optional parameter of _VERSION_ that will
2687   run an arbitrary version of the application requested.
2688 * Various bug fixes
2689 * Various platform-independency improvements
2690 * "gem spec --all" displays spec info for all installed version of a given gem.
2691 * Dynamic caching of sources
2692 * Support for user-definable sources on the command line (thanks Assaph Mehr)
2693 * More intelligent support for platform-dependent gems.  Use Platform::CURRENT
2694   when building a gem to set its platform to the one you're building on.
2695   Installation displays a choice of platform-dependent gems, allowing the user
2696   to pick.
2697 * Added "gem unpack" for "unpacking" a gem to the current directory
2698
2699 === 0.7.0 / 2004-07-09
2700
2701 See ChangeLog
2702
2703 === 0.6.1 / 2004-06-08
2704
2705 See ChangeLog
2706
2707 === 0.6.0 / 2004-06-08
2708
2709 * Collapse output of --search and --list (and gem_server) operations so that
2710   each gem is listed only once, with each of its versions listed on the same
2711   line.
2712 * bin/gem: new --upgrade-all option allows one to upgrade every installed gem
2713 * new #required_ruby_version attribute added to gem specification for
2714   specifying a dependency on which version of ruby the gem needs.  Format it
2715   accepts is the same as the Gem::Version::Requirement format:
2716
2717     spec.required_ruby_version = "> 1.8.0"
2718 * --install-stub defaults to true, so library stubs are created
2719
2720 === 0.5.0 / 2004-06-06
2721
2722 * Jim added the ability to specify version constraints to avoid API
2723   incompatibilities.  This has been the subject of much debate for the past
2724   couple of months, with many ideas and code contributed by Eivind Eklund and
2725   Mauricio Fernandez.  The following set of assertions shows how it works:
2726
2727     assert_inadequate("1.3", "~> 1.4")
2728     assert_adequate(  "1.4", "~> 1.4")
2729     assert_adequate(  "1.5", "~> 1.4")
2730     assert_inadequate("2.0", "~> 1.4") # This one is key--the new operator
2731                                        # disallows major version number
2732                                        # differences.
2733 * Group gem search output when multiple versions exist for a given gem:
2734
2735     activerecord (0.7.8, 0.7.7, 0.7.6, 0.7.5)
2736       Implements the ActiveRecord pattern for ORM.
2737 * Add arbitrary RDoc-able files via gemspec (not just Ruby source files) for
2738   people who have, for example, README.rdoc in their distributions.  Add to
2739   gemspec via: spec.extra_rdoc_files = ["list", "of", "files"].  Ruby files are
2740   automatically included.
2741 * Some small bug fixes
2742
2743 === 0.4.0 / 2004-05-30
2744
2745 * Minor bug fixes including Windows compatability issues
2746
2747 === 0.3.0 / 2004-04-30
2748
2749 * Cleanup of command-line arguments and handling.  Most commands accept a
2750   --local or --remote modifier.
2751 * Creation of Application Gems (packages that include executable programs).
2752   See http://rubygems.rubyforge.org/wiki/wiki.pl?DeveloperGuide for information
2753   on how to use it.
2754 * Basic functionality for installing binary gems from source (:extensions
2755   property of gem specification holds an array of paths to extconf.rb files to
2756   be used for compilation)
2757 * Install library "stub" allowing a normal 'require' to work (which then does
2758   the rubygems require and 'require_gem'
2759 * --run-tests runs the test suite specified by the "test_suite_file" property
2760   of a gem specification
2761 * HTTP Proxy support works.  Rewrite of HTTP code.
2762 * Unit and functional tests added (see Rakefile).
2763 * Prompt before remote-installing dependencies during gem installation.
2764 * Config file for storing preferences for 'gem' command usage.
2765 * Generally improved error messages (still more work to do)
2766 * Rearranged gem directory structure for cleanliness.
2767
2768 === 0.2.0 / 2004-03-14
2769
2770 * Initial public release
2771