# ChangeLog for dev-perl/Net-IRC
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-perl/Net-IRC/ChangeLog,v 1.28 2009/11/13 02:38:07 robbat2 Exp $

*Net-IRC-0.76 (13 Nov 2009)

  13 Nov 2009; Robin H. Johnson <robbat2@gentoo.org> +Net-IRC-0.76.ebuild:
  Adding to the tree just to show that we know about the package, we need to
  add a more useful deprecation notice for all users of the package after
  upstream fixes the missing files.

  30 Jun 2007; Joshua Kinard <kumba@gentoo.org> Net-IRC-0.75.ebuild:
  Marked unstable on mips.

  19 Jan 2007; Michael Cummings <mcummings@gentoo.org> -Net-IRC-0.74.ebuild,
  Net-IRC-0.75.ebuild:
  Version bump, thanks seemant

  05 Aug 2006; Michael Cummings <mcummings@gentoo.org> Net-IRC-0.74.ebuild,
  Net-IRC-0.75.ebuild:
  Adding perl dep; fixed header; fixed DEPEND

  02 Oct 2005; Aron Griffis <agriffis@gentoo.org> Net-IRC-0.75.ebuild:
  Mark 0.75 stable on ia64

  25 Aug 2005; Aron Griffis <agriffis@gentoo.org> Net-IRC-0.75.ebuild:
  add ~ia64

  01 May 2005; Tom Martin <slarti@gentoo.org> Net-IRC-0.75.ebuild:
  Stable on amd64.

  30 Apr 2005; Michael Hanselmann <hansmi@gentoo.org> Net-IRC-0.75.ebuild:
  Stable on ppc.

  30 Apr 2005; Bryan Østergaard <kloeri@gentoo.org> Net-IRC-0.75.ebuild:
  Stable on alpha.

  27 Apr 2005; Michael Cummings <mcummings@gentoo.org>
  -Net-IRC-0.70-r1.ebuild, -Net-IRC-0.70-r2.ebuild, -Net-IRC-0.73.ebuild,
  Net-IRC-0.75.ebuild:
  Cleaning

  07 Apr 2005; Michael Hanselmann <hansmi@gentoo.org> Net-IRC-0.74.ebuild:
  Stable on ppc.

  30 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
  Change encoding to UTF-8 for GLEP 31 compliance

  19 Oct 2004; Dylan Carlson <absinthe@gentoo.org> Net-IRC-0.74.ebuild:
  Stable on amd64.

*Net-IRC-0.75 (06 Jun 2004)

  06 Jun 2004; Michael Cummings <mcummings@gentoo.org> Net-IRC-0.75.ebuild:
  new version on cpan

  26 May 2004; Bryan Østergaard <kloeri@gentoo.org> Net-IRC-0.74.ebuild:
  Stable on alpha.

  21 Jan 2004; <gustavoz@gentoo.org> Net-IRC-0.74.ebuild:
  stable on sparc

*Net-IRC-0.74 (28 Jun 2003)

  28 Jun 2003; Michael Cummings <mcummings@gentoo.org> Net-IRC-0.74.ebuild:
  Bug 22704 closed. New version, new maintainer at CPAN. Thanks mute.

*Net-IRC-0.73 (16 Jun 2003)

  16 Jun 2003; Michael Cummings <mcummings@gentoo.org> Net-IRC-0.73.ebuild:
  CPAN version bump; needs testing

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
  29 Oct 2002; Seemant Kulleen <seemant@gentoo.org> ChangeLog  :
  forced version bump to install into correct locations

*Net-IRC-0.70-r2 (21 Jun 2003)
 
  12 Jul 2003; Daniel Ahlberg <aliz@gentoo.org> :
  Added missing changelog entry.

*Net-IRC-0.70-r1 (21 Jun 2003)
 
  12 Jul 2003; Daniel Ahlberg <aliz@gentoo.org> :
  Added missing changelog entry.

*Net-IRC-0.70 (1 Feb 2002)

  31 Jul 2002; Calum Selkirk <cselkirk@gentoo.org> Net-IRC-0.70.ebuild :

  Added ppc to KEYWORDS.

  1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
  
  Added initial ChangeLog which should be updated whenever the package is
  updated in any way. This changelog is targetted to users. This means that the
  comments should well explained and written in clean English. The details about
  writing correct changelogs are explained in the skel.ChangeLog file which you
  can find in the root directory of the portage repository.
