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

*yaml-cpp-0.5.1 (09 Aug 2015)
*yaml-cpp-0.3.0 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +metadata.xml,
  +yaml-cpp-0.3.0.ebuild, +yaml-cpp-0.5.1.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; Justin Lecher <jlec@gentoo.org> yaml-cpp-0.3.0.ebuild,
  yaml-cpp-0.5.1.ebuild:
  Enable https for all google URIs

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

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> yaml-cpp-0.3.0.ebuild,
  yaml-cpp-0.5.1.ebuild:
  Convert URIs for googlecode.com 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

  01 Sep 2015; Tobias Klausmann <klausman@gentoo.org> yaml-cpp-0.3.0.ebuild,
  yaml-cpp-0.5.1.ebuild:
  Fixing HOMEPAGE move due to code.google.com shutdown

  Package-Manager: portage-2.2.20.1

  07 Sep 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  ADd missing remote-id entries

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

*yaml-cpp-0.5.2 (28 Dec 2015)

  28 Dec 2015; Matthew Dawson <matthew@mjdsystems.ca> +yaml-cpp-0.5.2.ebuild:
  Bump to version 0.5.2.  Adjust SRC_URI and S to match tarball.

  Package-Manager: portage-2.2.24

*yaml-cpp-0.5.3 (20 Jan 2016)

  20 Jan 2016; Ultrabug <ultrabug@gentoo.org> +yaml-cpp-0.5.3.ebuild:
  version bump

  Package-Manager: portage-2.2.27

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

  06 Aug 2016; Pacho Ramos <pacho@gentoo.org> metadata.xml:
  Cleanup per bug #231477

  Package-Manager: portage-2.3.0

  08 Aug 2016; Johannes Huber <johu@gentoo.org> metadata.xml:
  Add myself as maintainer

  Package-Manager: portage-2.3.0

