# ChangeLog for dev-python/testrepository
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/testrepository/ChangeLog,v 1.27 2015/07/27 01:13:42 idella4 Exp $

  27 Jul 2015; Ian Delaney <idella4@gentoo.org> -testrepository-0.0.18.ebuild,
  testrepository-0.0.18-r1.ebuild:
  re-add pypy support, tidy to deps and test phase

  09 Jun 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Updating remote-id in metadata.xml

  04 Jun 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Add pypi to remote-id in metadata.xml

  14 Apr 2015; Agostino Sarubbo <ago@gentoo.org>
  testrepository-0.0.18-r1.ebuild:
  Stable for ia64, wrt bug #540290

  13 Apr 2015; Agostino Sarubbo <ago@gentoo.org>
  testrepository-0.0.18-r1.ebuild:
  Stable for alpha, wrt bug #530600

  08 Apr 2015; Michał Górny <mgorny@gentoo.org> testrepository-0.0.17-r2.ebuild,
  testrepository-0.0.18.ebuild:
  Drop old Python implementations

  09 Mar 2015; Pacho Ramos <pacho@gentoo.org> testrepository-0.0.18-r1.ebuild:
  x86 stable, bug 540290

  07 Mar 2015; Pacho Ramos <pacho@gentoo.org> testrepository-0.0.18-r1.ebuild:
  ppc stable, bug 540290

  07 Mar 2015; Pacho Ramos <pacho@gentoo.org> testrepository-0.0.18-r1.ebuild:
  ppc64 stable, bug 540290

  06 Mar 2015; Pacho Ramos <pacho@gentoo.org> testrepository-0.0.18-r1.ebuild:
  amd64 stable, bug 540290

  01 Jan 2015; Markus Meier <maekke@gentoo.org>
  testrepository-0.0.18-r1.ebuild:
  arm stable, bug #530600

  30 Dec 2014; Jeroen Roovers <jer@gentoo.org> testrepository-0.0.18-r1.ebuild:
  Stable for HPPA (bug #530600).

  23 Nov 2014; Mike Gilbert <floppym@gentoo.org>
  testrepository-0.0.17-r2.ebuild:
  Remove weird python_gen_usedep usage.

  20 Aug 2014; Anthony G. Basile <blueness@gentoo.org>
  testrepository-0.0.17-r1.ebuild, testrepository-0.0.17-r2.ebuild,
  testrepository-0.0.18-r1.ebuild, testrepository-0.0.18.ebuild:
  Keyword ~ppc ~ppc64, bug #508282

  10 Aug 2014; Sergei Trofimovich <slyfox@gentoo.org>
  testrepository-0.0.17-r1.ebuild, testrepository-0.0.17-r2.ebuild,
  testrepository-0.0.18-r1.ebuild, testrepository-0.0.18.ebuild:
  QA: drop trailing '.' from DESCRIPTION

  20 Jul 2014; Tobias Klausmann <klausman@gentoo.org>
  testrepository-0.0.18-r1.ebuild:
  Keyworded on alpha, bug #508282

*testrepository-0.0.18-r1 (12 Jun 2014)

  12 Jun 2014; Patrick Lauer <patrick@gentoo.org>
  +testrepository-0.0.18-r1.ebuild:
  Add py34

  08 Jun 2014; Akinori Hattori <hattya@gentoo.org> testrepository-0.0.18.ebuild:
  keyword ~ia64 wrt bug #508282

  04 May 2014; Markus Meier <maekke@gentoo.org> testrepository-0.0.18.ebuild:
  add ~arm, bug #508282

  25 Apr 2014; Jeroen Roovers <jer@gentoo.org> testrepository-0.0.18.ebuild:
  Marked ~hppa (bug #508282).

  31 Mar 2014; Patrick Lauer <patrick@gentoo.org> testrepository-0.0.18.ebuild:
  Fix bad dep strings

  19 Mar 2014; Sébastien Fabbro <bicatali@gentoo.org>
  testrepository-0.0.18.ebuild:
  Keyword ~amd64-linux ~x86-linux

  03 Jan 2014; Ian Delaney <idella4@gentoo.org> testrepository-0.0.17-r2.ebuild,
  testrepository-0.0.18.ebuild:
  pypy support dropped (unrequired and problematic in test phase), set for
  IN_SOURCE_BUILD (required for test phase), test phase fixed

*testrepository-0.0.17-r2 (02 Jan 2014)
*testrepository-0.0.18 (02 Jan 2014)

  02 Jan 2014; Ian Delaney <idella4@gentoo.org>
  +testrepository-0.0.17-r2.ebuild, +testrepository-0.0.18.ebuild,
  -testrepository-0.0.17.ebuild, testrepository-0.0.17-r1.ebuild:
  tidy up, remove old, revbump; add py3 & pypy support, upgraded accordingly,
  bump

  13 Dec 2013; Ian Delaney <idella4@gentoo.org> testrepository-0.0.17-r1.ebuild:
  revert of entry of dep subunit

*testrepository-0.0.17-r1 (12 Dec 2013)

  12 Dec 2013; Ian Delaney <idella4@gentoo.org>
  +testrepository-0.0.17-r1.ebuild, metadata.xml:
  switch herd, virtual re-write

*testrepository-0.0.17 (17 Sep 2013)

  17 Sep 2013; Matthew Thode <prometheanfire@gentoo.org> +metadata.xml,
  +testrepository-0.0.17.ebuild:
  testrepository adding
