# ChangeLog for dev-perl/Tree-Simple
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-perl/Tree-Simple/ChangeLog,v 1.38 2015/06/13 22:08:57 dilfridge Exp $

  13 Jun 2015; Andreas K. Huettel <dilfridge@gentoo.org>
  Tree-Simple-1.180.0-r1.ebuild, Tree-Simple-1.250.0.ebuild:
  Module::Build is no longer part of core Perl and has been moved to dev-perl

*Tree-Simple-1.250.0 (21 Feb 2015)

  21 Feb 2015; Patrice Clement <monsieurp@gentoo.org>
  +Tree-Simple-1.250.0.ebuild:
  Version bump. Add Test-Memory-Cycle to test dependencies.

*Tree-Simple-1.180.0-r1 (23 Aug 2014)

  23 Aug 2014; Ian Stakenvicius (_AxS_) <axs@gentoo.org>
  +Tree-Simple-1.180.0-r1.ebuild, -Tree-Simple-1.180.0.ebuild:
  bumped EAPI to 5; committed directly to stable as no other changes present and
  revbump helps stable systems to keep from dieing on perl-5.18 upgrade

  24 Jun 2012; Torsten Veller <tove@gentoo.org> metadata.xml:
  Update CPAN upstream info

  31 Mar 2012; Torsten Veller <tove@gentoo.org> -Tree-Simple-1.17.ebuild:
  Cleanup

  25 Mar 2012; Raúl Porcel <armin76@gentoo.org> Tree-Simple-1.17.ebuild,
  Tree-Simple-1.180.0.ebuild:
  Drop ia64/sparc keywords

  09 Mar 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org>
  Tree-Simple-1.180.0.ebuild:
  x86 stable wrt bug #400251

  24 Feb 2012; Agostino Sarubbo <ago@gentoo.org> Tree-Simple-1.180.0.ebuild:
  Stable for amd64, wrt bug #400251

  04 Sep 2011; Torsten Veller <tove@gentoo.org> -Tree-Simple-1.18.ebuild:
  Cleanup

*Tree-Simple-1.180.0 (28 Aug 2011)

  28 Aug 2011; Torsten Veller <tove@gentoo.org> +Tree-Simple-1.180.0.ebuild:
  Change version scheme

  18 Nov 2008; Torsten Veller <tove@gentoo.org> Tree-Simple-1.17.ebuild,
  Tree-Simple-1.18.ebuild:
  New virtuals: module-build

  30 Sep 2008; Torsten Veller <tove@gentoo.org> -Tree-Simple-1.14.ebuild,
  -Tree-Simple-1.16.ebuild:
  Cleanup

*Tree-Simple-1.18 (18 Jul 2008)

  18 Jul 2008; Torsten Veller <tove@gentoo.org> +Tree-Simple-1.18.ebuild:
  Version bump

  05 Mar 2007; Andrej Kacian <ticho@gentoo.org> Tree-Simple-1.17.ebuild:
  Stable on x86, bug #169152.

  22 Jan 2007; Bryan Østergaard <kloeri@gentoo.org>
  Tree-Simple-1.17.ebuild:
  Stable on IA64.

  08 Jan 2007; Michael Cummings <mcummings@gentoo.org>
  -Tree-Simple-1.15.ebuild:
  Cleaning up

  08 Jan 2007; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.17.ebuild:
  marking sparc stable

  08 Jan 2007; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.17.ebuild:
  marking amd64 stable

*Tree-Simple-1.17 (06 Nov 2006)

  06 Nov 2006; Michael Cummings <mcummings@gentoo.org>
  +Tree-Simple-1.17.ebuild:
  Version bump

  15 Oct 2006; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.14.ebuild, Tree-Simple-1.15.ebuild, Tree-Simple-1.16.ebuild:
  Marking amd64, sparc stable

  18 Aug 2006; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.16.ebuild:
  Marking amd64 stable

  06 Aug 2006; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.14.ebuild, Tree-Simple-1.15.ebuild, Tree-Simple-1.16.ebuild:
  Adding perl dep; fixed DEPEND

  18 Jul 2006; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.16.ebuild:
  Forcing mb version

  10 Jul 2006; Aron Griffis <agriffis@gentoo.org> Tree-Simple-1.16.ebuild:
  Mark 1.16 stable on ia64

  05 Jul 2006; Christian Hartmann <ian@gentoo.org> Tree-Simple-1.14.ebuild,
  Tree-Simple-1.15.ebuild, Tree-Simple-1.16.ebuild:
  Fixed RDEPEND wrt bug #134781

  24 Jun 2006; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.16.ebuild:
  Marking sparc stable

*Tree-Simple-1.16 (01 May 2006)

  01 May 2006; <mcumming@gentoo.org> +Tree-Simple-1.16.ebuild:
  Version bump

  30 Mar 2006; Aron Griffis <agriffis@gentoo.org> Tree-Simple-1.15.ebuild:
  Mark 1.15 ~ia64

  13 Feb 2006; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.14.ebuild, Tree-Simple-1.15.ebuild:
  Virtuals for perl-core

*Tree-Simple-1.15 (13 Jan 2006)

  13 Jan 2006; Michael Cummings <mcummings@gentoo.org>
  +Tree-Simple-1.15.ebuild:
  Version bump upstream

  25 May 2005; Michael Cummings <mcummings@gentoo.org>
  Tree-Simple-1.14.ebuild:
  dev-perl/Test-Simple => perl-core/Test-Simple migration

  21 May 2005; Simon Stelling <blubb@gentoo.org> Tree-Simple-1.14.ebuild:
  added ~amd64 keyword

  28 Apr 2005; Michael Cummings <mcummings@gentoo.org>
  -Tree-Simple-1.05.ebuild, -Tree-Simple-1.12.ebuild,
  Tree-Simple-1.14.ebuild:
  Cleaning and bumping.

*Tree-Simple-1.14 (05 Dec 2004)

  05 Dec 2004; Michael Cummings <mcummings@gentoo.org>
  +Tree-Simple-1.14.ebuild:
  new version on CPAN

*Tree-Simple-1.12 (21 Oct 2004)

  21 Oct 2004; Michael Cummings <mcummings@gentoo.org>
  +Tree-Simple-1.12.ebuild:
  new version on cpan; added keyword sparc

  02 Sep 2004; David Holm <dholm@gentoo.org> Tree-Simple-1.05.ebuild:
  Added to ~ppc.

  28 Aug 2004; Renat Lumpau <rl03@gentoo.org> Tree-Simple-1.05.ebuild:
  Added missing IUSE.

*Tree-Simple-1.05 (25 Aug 2004)

  25 Aug 2004; Renat Lumpau <rl03@gentoo.org> +metadata.xml,
  +Tree-Simple-1.05.ebuild:
  Initial ebuild. RT dependency. OK'd by mcummings.
