8/31/2020 v4.0.0

* Drops python 2.7 support
* Adds option to ignore whitespace in a diff

6/4/2020 v3.0.1

* Updates a test around the json report that was flaking. This gets a release as some people run the tests from the packaged code 

6/2/2020 v3.0.0

* Add Json report Thanks @ThePletch!
* Provide different errors for environment issues and tools not being installed Thanks @ziafazal!
* Update pyflakes regex to handle new format (I think it should still work for the older version but im bumping a major version to highlight a potentially breaking change)

4/7/2020 v2.6.1

* cElementTree is going to be removed in python3.9. Added some logic to handle this. Thanks @Adamwill

2/8/2020 v2.6.0

* Remove context lines from git diff to avoid false positives. Thans @macho !

1/11/2020 v2.5.2

* Droping my CD so I can sign packages again

1/11/2020 v2.5.1

* Just a point release to get back into the habit of signing them

12/11/2019 v2.5.0
 
 * Diff quality now has a plugin system! From now own this project will avoid adding new tools and instead direct those to become plugins instead. Perhaps we can look into moving existing tools into separate plugins over time however, currently im leaving it alone. Thank you @barrywhart (https://github.com/Bachmann1234/diff_cover/pull/128)

11/20/2019 v2.4.1

 * Performance improvement identifying matching source path by only computing the main src_path the one time rather than N times Thanks @gaellalire (https://github.com/Bachmann1234/diff_cover/pull/124)

10/17/2019 v2.4.0

 * Drop support for python 3.4 and upgrade syntax with pyupgrade. Thanks @hugovk
 * Add support for cppcheck. Thanks @noahp

6/30/2019 v2.3.0

 * Add PMD xml driver Thanks @bit-ranger (https://github.com/Bachmann1234/diff_cover/pull/117) 

6/13/2019 v2.2.0

 * Add --version flag to both commands. Shocked we never had this

6/3/2019 v2.1.0

 * New option that controls how the patch is obtained: `--diff-range-notation`, defaulting to `...`.

   Traditionally in git-cover the symmetric difference (three-dot, "A...M") notation has been used: it includes
   commits reachable from A and M from their merge-base, but not both, taking history in account. This includes cherry-picks
   between A and M, which are harmless and do not produce changes, but might give inaccurate coverage false-negatives.

   Two-dot range notation ("A..M") compares the tips of both trees and produces a diff. This more
   accurately describes the actual patch that will be applied by merging A into M, even if commits have been
   cherry-picked between branches. This will produce a more accurate diff for coverage comparison when complex
   merges and cherry-picks are involved. Thanks @nicoddemus!

 * Fix for windows users! We were not properly normalizing paths causing source lines not to line up properly. Thanks @kingchad1989

5/10/2019 v2.0.1

 * Ensure case is normalized on Windows when comparing paths from XML coverage report Thanks @nicoddemus!

4/08/2019 v2.0.0

 * Split Diff-cover and diff-quality's entry point scripts to allow them to be executed using pythons "-m" syntax

3/16/2019 v1.0.7

 * Fix bug where git's noprefix option would break diffcover. Thanks @beaugunderson

12/17/2018 v1.0.6

 * Fix bug where no source information would cause a crash https://github.com/Bachmann1234/diff-cover/issues/88 thanks @hjqgloria for the report
    
10/26/2018 v1.0.5

 * Add support for jacoco xml
 * support multiple xml formats (any combination of cobertura, clover, jacoco) at the same time

7/10/2018 v1.0.4
 
 * Fix issue where whitespace was not trimmed pulling source file from cobertura causing a missed match

6/24/2018 v1.0.3

 * Support parsable output allowing emacs to use next-error and previous-error (Thanks @Glyph)
 * Fix Tests that were breaking due to some bad versions of pycodestyle  (Thanks @Glyph)

12/20/2017 v1.0.2

 * Fix bug where clover uses absolute path in its xml report
 * Fix pylint 1.8.0 compatibility: configuration file path printed to stderr

12/08/2017 v1.0.1

 * Add Support for clover, findbugs and checkstyle

11/14/2017 v1.0.0

 * Drop support for python 3.3 and 2.6
 * Add Support for pypy3 and python 3.6
 * Replaced pep8 with pycodestyle as the project has deprecated pep8
 * added diff-cover level exclude files  https://github.com/Bachmann1234/diff-cover/pull/66 Thanks @agroszer

7/23/2017 v0.9.12

 * Add pydocstyle support PR#64 thanks @mr-c

3/7/2017 v0.9.11

 * Allow ignoring of staged files. Thanks @abmaonline!

2/25/2017 v0.9.10

  * Deflate inflated style percentages by including files that were not supported by the linters. Thanks @abmaoline

8/12/2016 v0.9.9

  * Fix bug where only one file was being checked in diff-quality (Issue 47) Thanks @fperrin
  * Fix bug where diff-quality would attempt to read deleted files (Issue 48) Thanks @fperrin

7/27/2016 v0.9.8

  * Fixes to ESLINT to work with 2.13 THanks @bjacobel (PR 46)

3/29/2016 v0.9.7

  * Move logging config to main method rather than __main__. Thanks @pkaleta (PR 45)   

2/21/2016 v0.9.6

  * Now check for tool existence by trying to run the tool rather than trying to import it. Thanks for the idea @agroszer (issue 44)

2/12/2016 v0.9.5

  * Fix git-diff with `mnemonicprefix` option Thanks @blueyed

2/10/2016 v0.9.4

  * Move logging configuration to main for better integrations with people importing the tool. Thanks @agroszer for reporting the issue

2/9/2016 v0.9.3

  * Make it so you can run help without being in a git repository thanks @dashea! 

2/8/2016 v0.9.2

  * CSS template was not being installed properly 

2/8/2016 v0.9.1

  * Misc bugfixes. Thanks @davidkostyszak and @mgedmin

2/7/2016 v0.9.0

  * Add support for specifying an external css file (thanks mgedmin)
  * Add ESLint driver (thanks agroszer)
  * Significant reworking of diff-quality to simplify the addition of drivers and potentially
    allow a plugin system down the line. Something I would like to finish at some point but honestly I am just not seeing the time opening up in the short term. If anyone reading this wants to give it a go +1 to that.

  Special thanks to Ben Patterson for taking some time to add some QA resources to this release

12/17/2015 v0.8.6

  * Fix for windows users trying to run app (thanks @evanunderscore)
  * Fix handing source paths that contain spaces (thanks @backupproject for pointing out the bug)

12/01/2015 v0.8.5

  * Drop lazy to fully support python 3.5 (Thanks @dashea for pointing out the issue)

11/24/2015 v0.8.4

  * fix diff-cover when color.ui=always is set on git thanks @Dundee

10/22/2015 v0.8.3

  * Fix diff-quality when installed under a folder containing 'diff-cover' (Thanks @faulkner)

9/16/2015 v0.8.2

   * Fix handling of windows paths in cobertura files. Thanks to @evanunderscore for catching and reviewing this bug
      catching several flaws in my attempts to deal with this :-D

9/12/2015 v0.8.1

   * Fix the main method to still execute in windows. Thanks to @evanunderscore for catching this bug

6/1/2015 v0.8.0

   * Add JSHint to diff-quality. Thanks @benpatterson

5/7/2015 v0.7.6.1

   * Fix readme syntax so diff-cover looks prettier on pypy. Thanks @mblayman

4/1/2015 v0.7.6

   * Add support for some additional Flake8 lugins thanks @dreamwalker


3/7/2015 v0.7.5

   * Ensure all sources are captured when dealing with non python cobertura files. Thanks @jfairley
   * Suppress error output on tests when that output is expected
   * Adds posargs to allow you to configure test runs more easily. Thanks @nedbat

2/4/2015 v0.7.4

   * Fixed bug in pylint support around duplciate code issues
   * Added ability to ignore unstaged changes Thanks DanCardin
   * License change! We are now Apache 2.0
   * PyPy Support now verified in tests
   * Fix for python 2.6 support

12/11/2014 v0.7.3

   * Added pylint support!
   * Fixed bug around python 1.6 and pyflakes
   * Update Pygments allowing us to remove code we grabbed from the development branch of the project used to support python3 correctly

11/6/2014 v0.7.2

    * bugfix around parsing of options

10/21/2014 v0.7.1

    * Generating HTML report still allows STDOUT to print the regular report

10/17/2014 v0.7.0

    * Incorporate sources tag in corbetura reports improving diff-cover's behavior in non python codebases

10/9/2014 v0.6.2

    * Added log line for when diff-cover fails due to coverage being lower than the fail-under condition

10/1/2014 v0.6.1

    * Fixed issue where error message was not being returned after diff-quality errors
    * Fixed issue where diff-quality would fail due to warnings.

7/22/2014 v0.6.0

    * Add --fail-under option

7/16/2014 v0.5.7

    * Remove lxml requirement speeding up builds by roughly 50%

7/13/2014 v0.5.6

    * Fix bug where logging was being called without being configured

7/12/2014 v0.5.5

    * Diff quality no longer requires every potential quality tool to be installed

7/5/2014 v0.5.4

    * Fix bug when writing report to stdout. Ensure that all file like objects that get passed into the report generator take bytes
    * Run diff cover over the code in each language

7/4/2014 v0.5.3

    * Pluralize report output
    * Bugfixes around git_path and unicode

6/28/2014 v0.5.2

    * Add snippets to quality html reports

6/27/2014 v0.5.1

    * Fix snippets relative path

6/24/2014 v0.5.0

    * Add support for Pyflakes

6/13/2014 v0.4.3

    * Remove dependency on iPython

6/11/2014 v0.4.2

    * Write report to stdout even with --html-report

5/21/2014 v0.4.1

    * Unicode error fixes
    * Pass command line options to quality tool
    * Combine adjacent lines in reports

4/30/2014 v0.4.0

    * Support Python 3.4
    * Support Pylint >= 1

4/19/2014 v0.3.0

    * Fix relative paths
    * Specify compare branch in a command line arg
    * If we get an OSError on calling subprocess, display the failing command

12/24/2013 v0.2.9

    * Fixed another unicode bug in diff-quality for pre-generated reports.

12/17/2013 v0.2.8

    * Fix a unicode bug in diff-quality

11/16/2013 v0.2.7

    * Update requirements to use Jinja 2.7.1
    * Remove sources list at top of report

10/9/2013 v0.2.6

    * Fix a bug in which unicode in source files would cause
      an exception.

10/2/2013 v0.2.5

    * Added option to consume pylint/pep8 reports instead of
      calling the tool directly.

9/23/2013 v0.2.4

    * Handle symbolic names in pylint output.

9/4/2013 v0.2.3

    * Fixed bug in parsing unicode filenames from git diff output

    * Coverage report now includes snippets from the original source file

9/1/13 v0.2.2

    * Fixed a bug that would cause multiple coverage reports to
      always show 100% coverage.

    * Fixed bug when running diff cover during a merge conflict (Issue #41)

    * Added --no-ext to git diff command
    * Added Python 2.6 support

8/9/13 v0.2.1
	* Fix a bug in which function names and TODO: were not appearing in
	   `diff-quality` reports.

7/18/13 v0.2.0

    * Add support for code quality metrics (pep8 and pylint for now).
	Invoked via call to `diff-quality`

    * Add support for multiple coverage XML inputs.

    * Refactored diff report generator to use Jinja2 templates

6/28/13 v0.1.4

    * Fix bug in which adding then deleting lines would result in
      incorrect lines included in the diff report.

6/25/13 v0.1.3

    * Fix a bug in which plus signs in the hunk line would cause a parser error

6/17/13 v0.1.2

    * Fix bug in which lines around a change were included in the report

6/10/13 v0.1.1

    * Compare with origin/master instead of master
    * Includes staged and unstaged changes in report
