# ChangeLog for dev-python/webpy
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/webpy/ChangeLog,v 1.32 2015/01/16 13:03:12 idella4 Exp $

  16 Jan 2015; Ian Delaney <idella4@gentoo.org> -webpy-0.34.ebuild,
  -webpy-0.36.ebuild, webpy-0.37-r1.ebuild:
  rm old

  05 Sep 2013; Michał Górny <mgorny@gentoo.org> webpy-0.37-r1.ebuild:
  Clean up PYTHON_COMPAT from old implementations.

*webpy-0.37-r1 (21 Mar 2013)

  21 Mar 2013; Ian Delaney <idella4@gentoo.org> +webpy-0.37-r1.ebuild:
  migration revbump

  17 Oct 2012; Patrick Lauer <patrick@gentoo.org> webpy-0.37.ebuild:
  Restricting jython

  19 Sep 2012; Jeroen Roovers <jer@gentoo.org> webpy-0.37.ebuild:
  Stable for HPPA (bug #429044).

  12 Sep 2012; Johannes Huber <johu@gentoo.org> webpy-0.37.ebuild:
  Stable for x86, wrt bug #429044

  12 Sep 2012; Agostino Sarubbo <ago@gentoo.org> webpy-0.37.ebuild:
  Stable for amd64, wrt bug #429044

*webpy-0.37 (28 Jun 2012)

  28 Jun 2012; Patrick Lauer <patrick@gentoo.org> +webpy-0.37.ebuild:
  Bump

  24 Feb 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> webpy-0.36.ebuild:
  x86 stable wrt bug #400341

  20 Feb 2012; Patrick Lauer <patrick@gentoo.org> webpy-0.34.ebuild,
  webpy-0.36.ebuild:
  Restricting pypy #403839

  17 Feb 2012; Jeroen Roovers <jer@gentoo.org> webpy-0.36.ebuild:
  Stable for HPPA (bug #400341).

  17 Feb 2012; Agostino Sarubbo <ago@gentoo.org> webpy-0.36.ebuild:
  Stable for amd64, wrt bug #400341

*webpy-0.36 (13 Sep 2011)

  13 Sep 2011; Dirkjan Ochtman <djc@gentoo.org> +webpy-0.36.ebuild:
  Version bump to 0.36.

  02 Aug 2010; Jeroen Roovers <jer@gentoo.org> webpy-0.34.ebuild:
  Stable for HPPA too.

  11 Jul 2010; Markus Meier <maekke@gentoo.org> webpy-0.34.ebuild:
  x86 stable, bug #325383

  26 Jun 2010; Christoph Mende <angelos@gentoo.org> webpy-0.34.ebuild:
  Stable on amd64 wrt bug #325383

  24 Jun 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  webpy-0.34.ebuild:
  Set SUPPORT_PYTHON_ABIS.

  01 Jun 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> webpy-0.32.ebuild:
  x86 stable wrt bug #321431

  26 May 2010; Pacho Ramos <pacho@gentoo.org> webpy-0.32.ebuild:
  stable amd64, bug 321431

*webpy-0.34 (25 May 2010)

  25 May 2010; Dirkjan Ochtman <djc@gentoo.org> +webpy-0.34.ebuild:
  Version bump to 0.34, bug 311097.

  24 May 2010; Torsten Veller <tove@gentoo.org> metadata.xml:
  Remove wrobel from metadata.xml (#111816)

  20 Dec 2009; Fabian Groffen <grobian@gentoo.org> webpy-0.32.ebuild:
  Merged keywords from Prefix

*webpy-0.32 (04 Sep 2009)

  04 Sep 2009; Patrick Lauer <patrick@gentoo.org> -webpy-0.30.ebuild,
  +webpy-0.32.ebuild:
  Bump to 0.32. Remove 0.30.

  10 Apr 2009; Guy Martin <gmsoft@gentoo.org> webpy-0.31.ebuild:
  Added ~hppa to KEYWORDS.

  02 Apr 2009; Patrick Lauer <patrick@gentoo.org> webpy-0.31.ebuild:
  SRC_URI fix, thanks to Xiaobing Jiang for noticing.

*webpy-0.31 (15 Feb 2009)

  15 Feb 2009; Patrick Lauer <patrick@gentoo.org> +webpy-0.31.ebuild:
  Bump to 0.31

  08 Jan 2009; Patrick Lauer <patrick@gentoo.org> -webpy-0.2.ebuild,
  -webpy-0.22.ebuild, -webpy-0.23.ebuild:
  Removing old

*webpy-0.30 (04 Jan 2009)

  04 Jan 2009; Patrick Lauer <patrick@gentoo.org> +webpy-0.30.ebuild:
  Bump to 0.3, named 0.30 because of upstream versioning, fixes #251035

*webpy-0.23 (11 Feb 2008)

  11 Feb 2008; Gunnar Wrobel <wrobel@gentoo.org> +webpy-0.23.ebuild:
  Added webpy-0.23 to the tree.

  20 Dec 2007; Gunnar Wrobel <wrobel@gentoo.org> ChangeLog:
  Added webpy-0.22 to the tree (#196487).

  26 Apr 2007; Steve Dibb <beandog@gentoo.org> webpy-0.2.ebuild:
  add ~amd64, bug 175187

*webpy-0.2 (19 Jan 2007)

  19 Jan 2007; <wrobel@gentoo.org> +metadata.xml, +webpy-0.2.ebuild:
  Added web.py-0.2 to the tree.
