# ChangeLog for dev-python/passlib
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/passlib/ChangeLog,v 1.14 2015/06/03 20:43:42 jlec Exp $

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

  08 Apr 2015; Michał Górny <mgorny@gentoo.org> passlib-1.6.1-r1.ebuild,
  passlib-1.6.2.ebuild:
  Drop old Python implementations

  29 Jul 2014; Sergey Popov <pinkbyte@gentoo.org> passlib-1.6.2.ebuild:
  Stable on amd64 and x86, wrt bug #517870

  06 Jul 2014; Michał Górny <mgorny@gentoo.org> passlib-1.6.2.ebuild:
  Clean up obsolete dependencies on virtual/python-argparse and virtual/python-
  unittest2 (those packages were only required for <=python-2.6).

  12 May 2014; Ian Delaney <idella4@gentoo.org> passlib-1.6.2.ebuild:
  drop py2.6 pypy2_0 add py3.4 support

  31 Mar 2014; Michał Górny <mgorny@gentoo.org> passlib-1.6.1-r1.ebuild,
  passlib-1.6.2.ebuild:
  Add support for the new PyPy slotting.

*passlib-1.6.2 (06 Jan 2014)

  06 Jan 2014; Ian Delaney <idella4@gentoo.org> +passlib-1.6.2.ebuild,
  metadata.xml:
  bump; intro new dep bcrypt, test phase

  04 Jan 2014; Mike Gilbert <floppym@gentoo.org> passlib-1.6.1-r1.ebuild:
  Drop py-bcrypt dep.

*passlib-1.6.1-r1 (18 Nov 2013)

  18 Nov 2013; Matthew Thode <prometheanfire@gentoo.org>
  +passlib-1.6.1-r1.ebuild, -passlib-1.6.1.ebuild:
  py-bcrypt added as a dep

  17 Nov 2013; Matthew Thode <prometheanfire@gentoo.org> passlib-1.6.1.ebuild:
  adding python 3.2 and 3.3 support for bug 487904

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

  12 Feb 2013; Michał Górny <mgorny@gentoo.org> metadata.xml,
  passlib-1.6.1.ebuild:
  Migrate to distutils-r1. Clean up a bit.

  01 Jan 2013; Matthew Thode <prometheanfire@gentoo.org> passlib-1.6.1.ebuild:
  refactor into distutils-r1 and eapi5

*passlib-1.6.1 (28 Nov 2012)

  28 Nov 2012; Matthew Thode <prometheanfire@gentoo.org> +passlib-1.6.1.ebuild,
  +metadata.xml:
  adding as it is needed for keystone
