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

*mavlink-gbp-release-2015.10.10 (02 Nov 2015)

  02 Nov 2015; Alexis Ballier <aballier@gentoo.org>
  +mavlink-gbp-release-2015.10.10.ebuild, +metadata.xml:
  Initial import. Ebuild by me.

  Package-Manager: portage-2.2.23

  16 Nov 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Global: Update remote-id in metadata.xml

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

*mavlink-gbp-release-2015.12.12 (15 Dec 2015)

  15 Dec 2015; Alexis Ballier <aballier@gentoo.org>
  +mavlink-gbp-release-2015.12.12.ebuild:
  bump to 2015.12.12

  Package-Manager: portage-2.2.26
  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)

*mavlink-gbp-release-2016.3.3 (29 Mar 2016)

  29 Mar 2016; Alexis Ballier <aballier@gentoo.org>
  +mavlink-gbp-release-2016.3.3.ebuild:
  bump to 2016.3.3

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

*mavlink-gbp-release-2016.4.4 (11 May 2016)

  11 May 2016; Alexis Ballier <aballier@gentoo.org>
  +mavlink-gbp-release-2016.4.4.ebuild:
  bump to 2016.4.4

  Package-Manager: portage-2.2.28

  28 Jun 2016; Alexis Ballier <aballier@gentoo.org>
  -mavlink-gbp-release-2015.10.10.ebuild,
  -mavlink-gbp-release-2015.12.12.ebuild,
  -mavlink-gbp-release-2016.3.3.ebuild:
  remove old

  Package-Manager: portage-2.3.0

*mavlink-gbp-release-2016.6.24 (28 Jun 2016)

  28 Jun 2016; Alexis Ballier <aballier@gentoo.org>
  +mavlink-gbp-release-2016.6.24.ebuild:
  bump to 2016.6.24

  Package-Manager: portage-2.3.0

*mavlink-gbp-release-2016.7.7 (11 Jul 2016)

  11 Jul 2016; Alexis Ballier <aballier@gentoo.org>
  +mavlink-gbp-release-2016.7.7.ebuild:
  bump to 2016.7.7

  Package-Manager: portage-2.3.0

  07 Oct 2016; Alexis Ballier <aballier@gentoo.org>
  -mavlink-gbp-release-2016.4.4.ebuild, -mavlink-gbp-release-2016.6.24.ebuild:
  remove old

  Package-Manager: portage-2.3.1

*mavlink-gbp-release-2016.7.7-r1 (07 Oct 2016)

  07 Oct 2016; Alexis Ballier <aballier@gentoo.org> +files/gentoo.patch,
  -mavlink-gbp-release-2016.7.7.ebuild,
  +mavlink-gbp-release-2016.7.7-r1.ebuild:
  nstall package.xml in /usr/share/ros_packages/$PN

  Package-Manager: portage-2.3.1

