# ChangeLog for dev-perl/Array-Window
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-perl/Array-Window/ChangeLog,v 1.30 2014/08/23 01:56:49 axs Exp $

*Array-Window-1.20.0-r1 (23 Aug 2014)

  23 Aug 2014; Ian Stakenvicius (_AxS_) <axs@gentoo.org>
  +Array-Window-1.20.0-r1.ebuild, -Array-Window-1.20.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

  04 Sep 2011; Torsten Veller <tove@gentoo.org> -Array-Window-1.02.ebuild:
  Cleanup

  03 Sep 2011; Torsten Veller <tove@gentoo.org> Array-Window-1.20.0.ebuild:
  Merge stable keywords from former version scheme ebuild

*Array-Window-1.20.0 (01 Sep 2011)

  01 Sep 2011; Torsten Veller <tove@gentoo.org> +Array-Window-1.20.0.ebuild:
  Change version scheme

  02 May 2009; Torsten Veller <tove@gentoo.org> -Array-Window-1.01.ebuild:
  Cleanup

  20 Sep 2008; Santiago M. Mola <coldwind@gentoo.org>
  Array-Window-1.02.ebuild:
  amd64 stable

  03 Sep 2008; Raúl Porcel <armin76@gentoo.org> Array-Window-1.02.ebuild:
  ia64/sparc/x86 stable

  02 Aug 2008; Torsten Veller <tove@gentoo.org> -Array-Window-0.4.ebuild:
  Cleanup

*Array-Window-1.02 (02 Aug 2008)

  02 Aug 2008; Torsten Veller <tove@gentoo.org> +Array-Window-1.02.ebuild:
  Version bump

  10 Nov 2007; Samuli Suominen <drac@gentoo.org> Array-Window-1.01.ebuild:
  amd64 stable

  09 Aug 2007; Gustavo Zacarias <gustavoz@gentoo.org>
  Array-Window-1.01.ebuild:
  Stable on sparc

  28 Jul 2007; Raúl Porcel <armin76@gentoo.org> Array-Window-1.01.ebuild:
  ia64/x86 stable

*Array-Window-1.01 (29 Jun 2007)

  29 Jun 2007; Michael Cummings <mcummings@gentoo.org>
  +Array-Window-1.01.ebuild:
  Version bump

  14 Jan 2007; Michael Cummings <mcummings@gentoo.org>
  Array-Window-0.4.ebuild:
  Ebuild maintenance

  04 Aug 2006; Michael Cummings <mcummings@gentoo.org>
  Array-Window-0.4.ebuild:
  Adding perl dep; fixed DEPEND

  10 Jul 2006; Aron Griffis <agriffis@gentoo.org> Array-Window-0.4.ebuild:
  Mark 0.4 stable on ia64

  03 Jul 2006; Christian Hartmann <ian@gentoo.org> Array-Window-0.4.ebuild:
  Fixed RDEPEND wrt bug #134781; fixed DEPEND

  30 Mar 2006; Aron Griffis <agriffis@gentoo.org> Array-Window-0.4.ebuild:
  Mark 0.4 ~ia64

  13 Feb 2006; <mcumming@gentoo.org> Array-Window-0.4.ebuild:
  Virtual for perl-core dep

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

  24 Apr 2005; Michael Cummings <mcummings@gentoo.org>
  -Array-Window-0.1.ebuild:
  cleanup

  01 Apr 2005; Simon Stelling <blubb@gentoo.org> Array-Window-0.4.ebuild:
  stable on amd64

  22 Jan 2005; Gustavo Zacarias <gustavoz@gentoo.org> Array-Window-0.4.ebuild:
  Stable on sparc

  21 Jan 2005; Michael Cummings <mcummings@gentoo.org>
  Array-Window-0.4.ebuild:
  Unmasking for x86

  12 Jan 2005; Gustavo Zacarias <gustavoz@gentoo.org> Array-Window-0.1.ebuild:
  Stable on sparc

  08 Jun 2004; David Holm <dholm@gentoo.org> Array-Window-0.4.ebuild:
  Added to ~ppc.

*Array-Window-0.4 (05 Jun 2004)

  05 Jun 2004; Michael Cummings <mcummings@gentoo.org>
  Array-Window-0.4.ebuild:
  new version on cpan

*Array-Window-0.1 (31 May 2003)

  31 May 2003; Michael Cummings <mcummings@gentoo.org>
  Array-Window-0.1.ebuild:
  New ebuild for bug 21791. Ebuild submitted by solar, fixed by mcummings
