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

*ros_base-9999 (22 Sep 2015)
*ros_base-1.2.0 (22 Sep 2015)

  22 Sep 2015; Alexis Ballier <aballier@gentoo.org> +metadata.xml,
  +ros_base-1.2.0.ebuild, +ros_base-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>

  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)

*ros_base-1.3.0 (11 May 2016)

  11 May 2016; Alexis Ballier <aballier@gentoo.org> +ros_base-1.3.0.ebuild:
  bump to 1.3.0

  Package-Manager: portage-2.2.28

