# ChangeLog for app-text/restview
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-text/restview/ChangeLog,v 1.7 2015/06/18 04:35:11 radhermit Exp $

*restview-2.4.0 (18 Jun 2015)

  18 Jun 2015; Tim Harder <radhermit@gentoo.org> +restview-2.4.0.ebuild:
  Version bump.

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

  21 Feb 2015; Tim Harder <radhermit@gentoo.org> restview-2.3.0.ebuild:
  Add pypi homepage.

*restview-2.3.0 (27 Jan 2015)

  27 Jan 2015; Tim Harder <radhermit@gentoo.org> +restview-2.3.0.ebuild:
  Version bump.

*restview-2.2.1 (06 Jan 2015)

  06 Jan 2015; Tim Harder <radhermit@gentoo.org> +restview-2.2.1.ebuild:
  Version bump.

*restview-2.2.0 (10 Dec 2014)

  10 Dec 2014; Tim Harder <radhermit@gentoo.org> +restview-2.2.0.ebuild:
  Version bump.

*restview-2.1.1 (27 Oct 2014)

  27 Oct 2014; Tim Harder <radhermit@gentoo.org> +restview-2.1.1.ebuild,
  +metadata.xml:
  Initial import.
