Release Notes; upgrade information mainly.
Features/major bugfixes are listed in NEWS

repoman-2.3.7
==================================
* Bug Fixes:
    - Bug 552720 allow https for metadata.dtd URI


repoman-2.3.6
==================================
* Bug Fixes:
    - Bug 637460 Fix import paths for unit tests


repoman-2.3.5
==================================
* Repository metadata/layout.conf supports manifest-required-hashes
  attribute (default value is SHA512).


repoman-2.3.4
==================================
* Support two new options: --bug (-b) and --closes (-c)


repoman-2.3.3
==================================
* Bug Fixes:
    - Bug 571546 Change how the tmp file for the commit msg is made
* flag URIs using http:// when https:// is available
* Add a check for relative dosym candidates
* Make all shebangs prefix friendly
* Mark ruby-2.0 as deprecated
* Detect inconsistent metadata.xml indentation
* Warn about dropped keywords only for latest in SLOT.


repoman-2.3.2
==================================
* Bug Fixes:
    - Bug 544938 add dev-qt/linguist-tools to RDEPEND.suspect set
    - Bug 602002 make unused local USE flags an error
    - Bug 533554 add HOMEPAGE.missingurischeme check
    - Bug 610414 use regular expression to detect line continuations
    - Bug 610954 Warn about stale CVS keywords in ebuild header
    - Bug 611296 Don't update years in non-Gentoo copyright lines
* Add virtual/linuxtv-dvb-headers to RDEPEND.suspect set
* Add virtual/os-headers to RDEPEND.suspect set
* Add gentoo to remote-id type
* Define long for python3 Fixes: 006b168c1bb6
* Commit footer improvements
* Check for empty files in filesdir
* Deprecate gpe.eclass, confutils.eclass


repoman-2.3.1
==================================
* Bug Fixes:
    - Bug 586864 skip QA checks in manifest mode
    - Bug 591184 fix erroneous LICENSE.syntax
    - use https to fetch metadata.xsd
    - update links to https
    - Make LIVEVCS.* checks fatal
    - fix _depend_checks baddepsyntax accounting
    - Fix commitmessage assignment not being done
    - Add cat/pkg: substtution in the commitsgfile text
    - Disable SRC_URI.mirror warnings when there is only 1 mirror
    - Fix version output string to say Repoman, fix live versioning,
      add portage version to --version output.
    - Add repoman version to "Package manager:" commit footer

repoman-2.3.0
==================================
* Bug Fixes:
    - Bug 584786 Add support for .git as a file when --separate-git-dir is used
    - Bug 585864 fix missing vcs_files_to_cps repodir argument
    - Bug 585388 fix KeyError during manifest generation
* New QA error: slot operator under '||' alternative

repoman-2.3.0_rc1
==================================
* Initial test release
* Bug Fixes:
    - Bug 579460 Disable the $ID header check
    - Bug 546010 Handle removed packages in vcs_files_to_cps
    - Bug 581594 Fix commit 8e7971169c2 missing self in func() parameters
    - Bug 581598 Add InvalidPackageName exception trap
    - Bug 405017 Fix copyright update
* Includes the stage2 re-writes, the checks are now in a modular system
  which is not yet fully plug-in capable.  Becoming fully plug-in capable and
  configurable is to be done in the stage3 rewites.
