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

*qtdiag-5.4.2 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +metadata.xml,
  +qtdiag-5.4.2.ebuild:
  proj/gentoo: Initial commit

  This commit represents a new era for Gentoo:
  Storing the gentoo-x86 tree in Git, as converted from CVS.

  This commit is the start of the NEW history.
  Any historical data is intended to be grafted onto this point.

  Creation process:
  1. Take final CVS checkout snapshot
  2. Remove ALL ChangeLog* files
  3. Transform all Manifests to thin
  4. Remove empty Manifests
  5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
  5.1. Do not touch files with -kb/-ko keyword flags.

  Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
  X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration
  tests
  X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this
  project
  X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo
  developer, wrote Git features for the migration
  X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve
  cvs2svn
  X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
  X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014
  work in migration
  X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
  X-Thanks: All of other Gentoo developers - many ideas and lots of paint on
  the bikeshed

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Use https by default

  Convert all URLs for sites supporting encrypted connections from http to
  https

  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  24 Aug 2015; Mike Gilbert <floppym@gentoo.org> metadata.xml:
  Revert DOCTYPE SYSTEM https changes in metadata.xml

  repoman does not yet accept the https version.
  This partially reverts eaaface92ee81f30a6ac66fe7acbcc42c00dc450.

  Bug: https://bugs.gentoo.org/552720

*qtdiag-5.5.1 (17 Oct 2015)

  17 Oct 2015; Michael Palimaka <kensington@gentoo.org> +qtdiag-5.5.1.ebuild:
  dev-qt: version bump 5.5.1

  Package-Manager: portage-2.2.20.1

*qtdiag-5.5.1-r1 (15 Jan 2016)

  15 Jan 2016; Michael Palimaka <kensington@gentoo.org> -qtdiag-5.5.1.ebuild,
  +qtdiag-5.5.1-r1.ebuild:
  dev-qt: further revbumps to prevent mixing of Qt versions

  Gentoo-bug: 563898
  Gentoo-bug: 564560
  Gentoo-bug: 564920
  Gentoo-bug: 564922
  Gentoo-bug: 565806
  Gentoo-bug: 566580

  Package-Manager: portage-2.2.26

  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)

  07 Apr 2016; Davide Pesavento <pesa@gentoo.org> -qtdiag-5.4.2.ebuild:
  dev-qt: remove Qt 5.4.2

*qtdiag-5.6.0 (23 Apr 2016)

  23 Apr 2016; Michael Palimaka <kensington@gentoo.org> metadata.xml,
  +qtdiag-5.6.0.ebuild:
  dev-qt: version bump 5.6.0

  Package-Manager: portage-2.2.28

*qtdiag-5.6.1 (14 Jun 2016)

  14 Jun 2016; Davide Pesavento <pesa@gentoo.org> +qtdiag-5.6.1.ebuild:
  dev-qt: Qt 5.6.1 version bump

  Package-Manager: portage-2.3.0_rc1

*qtdiag-5.7.0 (12 Aug 2016)

  12 Aug 2016; Michael Palimaka <kensington@gentoo.org> +qtdiag-5.7.0.ebuild:
  dev-qt: version bump 5.7.0

  Package-Manager: portage-2.3.0

  18 Aug 2016; Michael Palimaka <kensington@gentoo.org> -qtdiag-5.6.0.ebuild:
  dev-qt: remove 5.6.0

  Package-Manager: portage-2.3.0

*qtdiag-5.6.2 (12 Oct 2016)

  12 Oct 2016; Davide Pesavento <pesa@gentoo.org> +qtdiag-5.6.2.ebuild:
  dev-qt: Qt 5.6.2 version bump

  Package-Manager: portage-2.3.1

