# ChangeLog for dev-python/traitlets
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*traitlets-4.0.0 (27 Nov 2015)

  27 Nov 2015; Marius Brehler <marbre@linux.sungazer.de> +metadata.xml,
  +traitlets-4.0.0.ebuild:
  Import from science overlay

  Package-Manager: portage-2.2.20.1

*traitlets-4.1.0 (21 Jan 2016)

  21 Jan 2016; Justin Lecher <jlec@gentoo.org> +traitlets-4.1.0.ebuild:
  Version Bump

  Package-Manager: portage-2.2.27
  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Replace all herds with appropriate projects (GLEP 67)

  Replace all uses of herd with appropriate project maintainers, or no
  maintainers in case of herds requested to be disbanded.

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Set appropriate maintainer types in metadata.xml (GLEP 67)

  28 Feb 2016; Matthew Thode <prometheanfire@gentoo.org>
  traitlets-4.1.0.ebuild:
  keywording arm64

  merged on X-C1

  Package-Manager: portage-2.2.26

*traitlets-4.2.1 (02 Apr 2016)

  02 Apr 2016; David Seifert <soap@gentoo.org> +traitlets-4.2.1.ebuild:
  Version bump

  Package-Manager: portage-2.2.26

  23 Jul 2016; David Seifert <soap@gentoo.org> traitlets-4.1.0.ebuild,
  traitlets-4.2.1.ebuild:
  Fix deps

  Package-Manager: portage-2.2.26
  Closes: https://github.com/gentoo/gentoo/pull/1869

  Signed-off-by: David Seifert <soap@gentoo.org>

*traitlets-4.2.2 (23 Jul 2016)

  23 Jul 2016; David Seifert <soap@gentoo.org> +traitlets-4.2.2.ebuild:
  Version bump to 4.2.2

  Package-Manager: portage-2.2.26
  Closes: https://github.com/gentoo/gentoo/pull/1869

  Signed-off-by: David Seifert <soap@gentoo.org>

  23 Jul 2016; David Seifert <soap@gentoo.org> traitlets-4.2.2.ebuild:
  Run tests with py.test as upstream does

  Package-Manager: portage-2.2.26
  Closes: https://github.com/gentoo/gentoo/pull/1869

  Signed-off-by: David Seifert <soap@gentoo.org>

*traitlets-4.3.0 (20 Sep 2016)

  20 Sep 2016; David Seifert <soap@gentoo.org> +traitlets-4.3.0.ebuild:
  Version bump to 4.3.0

  Package-Manager: portage-2.2.28
  Closes: https://github.com/gentoo/gentoo/pull/2367

  Signed-off-by: David Seifert <soap@gentoo.org>

