# ChangeLog for dev-perl/JSON
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-perl/JSON/ChangeLog,v 1.14 2010/01/08 15:43:32 tove Exp $

*JSON-2.17 (08 Jan 2010)

  08 Jan 2010; Torsten Veller <tove@gentoo.org> +JSON-2.17.ebuild:
  Version bump

  24 Dec 2009; Torsten Veller <tove@gentoo.org> -JSON-2.15.ebuild:
  Cleanup

*JSON-2.16 (17 Oct 2009)

  17 Oct 2009; Torsten Veller <tove@gentoo.org> +JSON-2.16.ebuild:
  Version bump

  07 Sep 2009; Torsten Veller <tove@gentoo.org> -JSON-2.14.ebuild:
  Cleanup

*JSON-2.15 (02 Jun 2009)

  02 Jun 2009; Torsten Veller <tove@gentoo.org> +JSON-2.15.ebuild:
  Version bump

  13 Mar 2009; Torsten Veller <tove@gentoo.org> -JSON-2.12.ebuild,
  -JSON-2.13.ebuild:
  Cleanup

*JSON-2.14 (25 Feb 2009)

  25 Feb 2009; Torsten Veller <tove@gentoo.org> +JSON-2.14.ebuild:
  Version bump

*JSON-2.13 (22 Feb 2009)

  22 Feb 2009; Torsten Veller <tove@gentoo.org> +JSON-2.13.ebuild:
  Version bump

  15 Sep 2008; Torsten Veller <tove@gentoo.org> -JSON-1.14.ebuild,
  -JSON-2.04.ebuild, -JSON-2.07.ebuild, -JSON-2.09.ebuild:
  Cleanup

*JSON-2.12 (07 Sep 2008)

  07 Sep 2008; Torsten Veller <tove@gentoo.org> +JSON-2.12.ebuild:
  Version bump

*JSON-2.09 (24 Apr 2008)

  24 Apr 2008; Yuval Yaari <yuval@gentoo.org> +JSON-2.09.ebuild:
  Version bump

*JSON-2.07 (24 Mar 2008)

  24 Mar 2008; Joerg Bornkessel <hd_brummy@gentoo.org> +JSON-2.07.ebuild:
  version bump

*JSON-2.04 (03 Feb 2008)

  03 Feb 2008; Joerg Bornkessel <hd_brummy@gentoo.org> +JSON-2.04.ebuild:
  version bump; thanks to M.Beltrame on bug 206958

*JSON-1.14 (11 Nov 2007)

  11 Nov 2007; Joerg Bornkessel <hd_brummy@gentoo.org> +metadata.xml,
  +JSON-1.14.ebuild:
  initial ebuild, taken from overlay vdr-testing

