# ChangeLog for dev-ruby/crack
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/crack/ChangeLog,v 1.13 2010/03/03 11:11:57 phajdan.jr Exp $

  03 Mar 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> crack-0.1.6.ebuild:
  Mark ~x86 wrt bug #302963 (required dependency)

  03 Mar 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> crack-0.1.7.ebuild:
  Mark ~x86 wrt bug #302560

  22 Feb 2010; Hans de Graaff <graaff@gentoo.org> +crack-0.1.6.ebuild:
  Resurrected crack-0.1.6 because httparty explicitly depends on it.

*crack-0.1.7 (21 Feb 2010)

  21 Feb 2010; Diego E. Pettenò <flameeyes@gentoo.org> -crack-0.1.4.ebuild,
  -crack-0.1.5.ebuild, -crack-0.1.6.ebuild, +crack-0.1.7.ebuild:
  Version bump and old versions' cleanup.

*crack-0.1.6 (01 Feb 2010)

  01 Feb 2010; Diego E. Pettenò <flameeyes@gentoo.org> +crack-0.1.6.ebuild:
  Version bump.

*crack-0.1.5 (28 Jan 2010)

  28 Jan 2010; Diego E. Pettenò <flameeyes@gentoo.org> +crack-0.1.5.ebuild:
  Version bump, introduce tests and enable for jruby.

*crack-0.1.4-r1 (11 Jan 2010)

  11 Jan 2010; Alex Legler <a3li@gentoo.org> +crack-0.1.4-r1.ebuild:
  Revbump, migrating to ruby-fakegem. Tests restricted due to an unpackaged
  github gem.

  29 Nov 2009; Alex Legler <a3li@gentoo.org> crack-0.1.4.ebuild:
  Fix HOMEPAGE, remanifest due to gemcutter

  22 Aug 2009; Hans de Graaff <graaff@gentoo.org> -crack-0.1.2.ebuild,
  -crack-0.1.3.ebuild:
  Remove old versions.

*crack-0.1.4 (24 Jul 2009)

  24 Jul 2009; Hans de Graaff <graaff@gentoo.org> +crack-0.1.4.ebuild:
  Version bump.

*crack-0.1.3 (18 Jul 2009)

  18 Jul 2009; Hans de Graaff <graaff@gentoo.org> +crack-0.1.3.ebuild:
  Version bump.

  21 May 2009; Brent Baude <ranger@gentoo.org> crack-0.1.2.ebuild:
  keyworded ~arch for ppc, bug 270038

*crack-0.1.2 (10 May 2009)

  10 May 2009; Hans de Graaff <graaff@gentoo.org> +metadata.xml,
  +crack-0.1.2.ebuild:
  Initial import. New dependency for dev-ruby/httparty.

