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

*beautifulsoup-4.4.0 (09 Aug 2015)
*beautifulsoup-4.3.2 (09 Aug 2015)
*beautifulsoup-4.2.0 (09 Aug 2015)
*beautifulsoup-4.1.3-r1 (09 Aug 2015)
*beautifulsoup-4.1.3 (09 Aug 2015)
*beautifulsoup-3.2.1-r1 (09 Aug 2015)
*beautifulsoup-3.1.0.1-r2 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +beautifulsoup-3.1.0.1-r2.ebuild, +beautifulsoup-3.2.1-r1.ebuild,
  +beautifulsoup-4.1.3.ebuild, +beautifulsoup-4.1.3-r1.ebuild,
  +beautifulsoup-4.2.0.ebuild, +beautifulsoup-4.3.2.ebuild,
  +beautifulsoup-4.4.0.ebuild,
  +files/beautifulsoup-3.1.0.1-disable-tests.patch,
  +files/beautifulsoup-3.1.0.1-python-3.patch, +files/bfs-4.2.0-no-lxml.patch,
  +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>
  beautifulsoup-3.1.0.1-r2.ebuild, beautifulsoup-3.2.1-r1.ebuild,
  beautifulsoup-4.1.3.ebuild, beautifulsoup-4.1.3-r1.ebuild,
  beautifulsoup-4.2.0.ebuild, beautifulsoup-4.3.2.ebuild,
  beautifulsoup-4.4.0.ebuild:
  Use https by default

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

  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

  05 Sep 2015; Mike Gilbert <floppym@gentoo.org> beautifulsoup-4.4.0.ebuild:
  Tweak the chardet blocker

  !dev-python/chardet[${PYTHON_USEDEP}] only blocks chardet if it happens to
  have exactly the same python flags enabled.

  We also need a hard blocker rather than a soft one.

  Package-Manager: portage-2.2.20

*beautifulsoup-4.4.1 (29 Sep 2015)

  29 Sep 2015; Justin Lecher <jlec@gentoo.org> +beautifulsoup-4.4.1.ebuild:
  Version Bump

  Package-Manager: portage-2.2.22
  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  29 Sep 2015; Justin Lecher <jlec@gentoo.org> -beautifulsoup-4.1.3.ebuild,
  -beautifulsoup-4.1.3-r1.ebuild, -beautifulsoup-4.2.0.ebuild,
  -files/bfs-4.2.0-no-lxml.patch:
  Drop old

  Github: closes gentoo/gentoo#141

  Package-Manager: portage-2.2.22
  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  21 Oct 2015; Justin Lecher <jlec@gentoo.org> beautifulsoup-4.4.1.ebuild:
  Add python3.5 support

  Package-Manager: portage-2.2.23
  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  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)

  28 Feb 2016; Matthew Thode <prometheanfire@gentoo.org>
  beautifulsoup-4.4.1.ebuild:
  keywording arm64

  merged on X-C1

  Package-Manager: portage-2.2.26

*beautifulsoup-4.5.1 (21 Aug 2016)

  21 Aug 2016; Tim Harder <radhermit@gentoo.org> +beautifulsoup-4.5.1.ebuild:
  version bump to 4.5.1

