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

*opencv_apps-9999 (23 Sep 2015)
*opencv_apps-1.11.8 (23 Sep 2015)

  23 Sep 2015; Alexis Ballier <aballier@gentoo.org> +metadata.xml,
  +opencv_apps-1.11.8.ebuild, +opencv_apps-9999.ebuild:
  Initial import. Ebuild by me.

  Package-Manager: portage-2.2.21

  16 Oct 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Update remote-ids

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

*opencv_apps-1.11.9 (03 Dec 2015)

  03 Dec 2015; Alexis Ballier <aballier@gentoo.org>
  +opencv_apps-1.11.9.ebuild:
  bump to 1.11.9

  Package-Manager: portage-2.2.26
  Signed-off-by: Alexis Ballier <aballier@gentoo.org>

*opencv_apps-1.11.10 (19 Jan 2016)

  19 Jan 2016; Alexis Ballier <aballier@gentoo.org>
  +opencv_apps-1.11.10.ebuild:
  Bump to 1.11.10.

  Package-Manager: portage-2.2.27
  Signed-off-by: Alexis Ballier <aballier@gentoo.org>

  19 Jan 2016; Alexis Ballier <aballier@gentoo.org>
  opencv_apps-1.11.10.ebuild, opencv_apps-9999.ebuild:
  add missing dep on opencv[contrib]

  Package-Manager: portage-2.2.27
  Signed-off-by: Alexis Ballier <aballier@gentoo.org>

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Unify quoting in metadata.xml files for machine processing

  Force unified quoting in all metadata.xml files since lxml does not
  preserve original use of single and double quotes. Ensuring unified
  quoting before the process allows distinguishing the GLEP 67-related
  metadata.xml changes from unrelated quoting changes.

  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)

*opencv_apps-1.11.11 (04 Feb 2016)

  04 Feb 2016; Alexis Ballier <aballier@gentoo.org>
  +opencv_apps-1.11.11.ebuild:
  Bump to 1.11.11.

  Package-Manager: portage-2.2.27
  Signed-off-by: Alexis Ballier <aballier@gentoo.org>

*opencv_apps-1.11.12 (14 Mar 2016)

  14 Mar 2016; Alexis Ballier <aballier@gentoo.org>
  +opencv_apps-1.11.12.ebuild:
  Bump to 1.11.12.

  Package-Manager: portage-2.2.28
  Signed-off-by: Alexis Ballier <aballier@gentoo.org>

  19 Mar 2016; Alexis Ballier <aballier@gentoo.org> opencv_apps-9999.ebuild:
  add std_msgs to transitive message deps

  Package-Manager: portage-2.2.28
  Signed-off-by: Alexis Ballier <aballier@gentoo.org>

*opencv_apps-1.12.0 (19 Mar 2016)

  19 Mar 2016; Alexis Ballier <aballier@gentoo.org>
  +opencv_apps-1.12.0.ebuild:
  Bump to 1.12.0.

  Package-Manager: portage-2.2.28
  Signed-off-by: Alexis Ballier <aballier@gentoo.org>

  07 Oct 2016; Alexis Ballier <aballier@gentoo.org>
  -opencv_apps-1.11.8.ebuild, -opencv_apps-1.11.9.ebuild,
  -opencv_apps-1.11.10.ebuild, -opencv_apps-1.11.11.ebuild,
  -opencv_apps-1.11.12.ebuild:
  dev-ros/opencv_app: remove old

  Package-Manager: portage-2.3.1

*opencv_apps-1.11.14 (07 Oct 2016)

  07 Oct 2016; Alexis Ballier <aballier@gentoo.org>
  +opencv_apps-1.11.14.ebuild, -opencv_apps-1.12.0.ebuild,
  opencv_apps-9999.ebuild:
  bump to 1.11.14. Upstream split it and went back in version numbers...

  Package-Manager: portage-2.3.1

