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

*flexmock-1.3.3-r1 (09 Aug 2015)
*flexmock-1.3.3 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +flexmock-1.3.3.ebuild,
  +flexmock-1.3.3-r1.ebuild, +metadata.xml:
  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

  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)

*flexmock-2.0.5 (02 Apr 2016)

  02 Apr 2016; Hans de Graaff <graaff@gentoo.org> +flexmock-2.0.5.ebuild:
  add 2.0.5

  Package-Manager: portage-2.2.26

  02 Apr 2016; Hans de Graaff <graaff@gentoo.org> flexmock-1.3.3-r1.ebuild:
  mark ruby21 revision stable

  Package-Manager: portage-2.2.26

  17 Apr 2016; Manuel Rüger <mrueg@gentoo.org> flexmock-1.3.3.ebuild,
  flexmock-1.3.3-r1.ebuild:
  Remove ruby19

  Package-Manager: portage-2.2.28

  27 Apr 2016; Hans de Graaff <graaff@gentoo.org> -flexmock-1.3.3.ebuild:
  cleanup

  Package-Manager: portage-2.2.26

*flexmock-2.1.0 (27 Apr 2016)

  27 Apr 2016; Hans de Graaff <graaff@gentoo.org> +flexmock-2.1.0.ebuild:
  add 2.1.0

  Package-Manager: portage-2.2.26

*flexmock-2.2.1 (20 Jul 2016)

  20 Jul 2016; Hans de Graaff <graaff@gentoo.org> +flexmock-2.2.1.ebuild:
  add 2.2.1

  Package-Manager: portage-2.2.28

  28 Sep 2016; Tobias Klausmann <klausman@gentoo.org> flexmock-2.2.1.ebuild:
  2.2.1-r0: keyworded for ~alpha

  Gentoo-Bug: 592756

*flexmock-2.3.0 (12 Oct 2016)

  12 Oct 2016; Hans de Graaff <graaff@gentoo.org> +flexmock-2.3.0.ebuild:
  add 2.3.0

  Package-Manager: portage-2.3.0

