Changelog
=========

3.2 (2021-06-22)
----------------

- Added support for pre-commit [CAM Gerlach]

- Rewrote parts of the PyPI support, to avoid using the xmlrpc API,
  since it's being heavily rate-limited at the moment. Only one call
  is using it now, which seems to work fine.

- Backwards incompatible change: As a result of the above change, when
  looking for packages on PyPI, the package name must now be spelled
  exactly correct, including capitalization.

- Some more code cleanup/modernization [CAM Gerlach]

- Added --quiet option to output only the rating [Hugo van Kemenade]

- Pyroma is now an executable module, and can be called with `python -m pyroma` [RuRo]


3.1 (2021-03-06)
----------------

- Added correct detection of setup.py encoding

- Code cleanup [CAM Gerlach]


3.0.1 (2021-03-02)
------------------

- Drop support for Python 2 [Florian Bruhin]

- Add back official support for Python 3.6, I didn't realize it was still officially supported


2.6.1 (2021-02-16)
------------------

- Update to the current list of Trove classifiers.

- Officially support Python 3.8 and 3.9

- Drop official support for Python 3.5 and 3.6 (still works though).


2.6 (2019-11-02)
----------------

- Ran flake8 and black on the code, better formatting for
  classifiers.py generation.

- Support for PEP 517, setup.cfg-only packages. [Max Tyulin]

- Adds support for Markdown long_descriptions, if you set
  long_description_content_type to 'text/markdown'

- Installs Pygments to avoid an error message of you have
  syntax highlighted code in the long_description.


2.5 (2019-06-01)
----------------

- Fixed #35: Correctly restore ``sys.argv``.  [maurits]

- Added back the BusFactor test, the XMLRPC API supports it.

- #26: Adding a test to check for a development status classifier.

- #21: Accept the new project_urls distribution data.

- Now verifies that classifiers are valid, and that the license field
  and license classifiers match.

- The rating now again reflects if the long_description isn't valid ReST.

- #38: Recommendations for the License field has changed.


2.4 (2018-08-15)
----------------

- Get rid of the tests that rely on HTML scraping, it's too brittle.

- Update to use pypi.org instead of pypi.python.org
  [Andreas Lutro, Lennart Regebro]

- Added -n command line option to set the minimum rating needed for pyroma
  to return success, useful in scripts.
  [Scott Colby]


2.3.1 (2018-05-28)
------------------

- Fixed #12: Installation fails with a non-UTF8 locale under Python 3.
  [ericof, 4383, regebro]


2.3 (2017-11-28)
----------------

- Check that a classifier specifies the project license. [4383]

- Dropped support for Python 2.6, 3.3 and 3.4.

- Fixed a unicode issue [gotcha]

- Stopped recommending places to keep documentation.


2.2 (2016-10-26)
----------------

- Removed the TestSuite rating. I decided it was too close to looking at
  code quality. Pyroma no longer cares if you have tests or not.

- Fixed #36: PyPI now requires https.


2.1 (2016-10-18)
----------------

- #35: Support for PEP-440.


2.0.2 (2016-03-06)
------------------

- Faked the __name__ variable to allow you to have a "if __name__" construct
  in the setup.py.


2.0.1 (2016-03-06)
------------------

- Fixed a bug under Python 3 with certain imports.


2.0.0 (2016-02-28)
------------------

- Stable release.


2.0.0b2 (2015-11-09)
--------------------

- Made it run under Python 3 again.

- PEP8


2.0.0b1 (2015-11-08)
--------------------

- Big rewrite of how data is extracted from Distutils/Setuptools.


1.8.3 (2015-11-08)
------------------

- Issue #26: Checking a PyPI package could fail under Python 3.

1.8.2 (2015-06-14)
------------------

- Do not complain that the version number should be a string, when it
  is a basestring.
  [maurits]


1.8.1 (2015-04-27)
------------------

- This is what happens when you don't run the tests after merging.


1.8 (2015-04-27)
----------------

- More robust rating. [Jeff Quast]

- Closed #24.


1.7 (2014-10-19)
----------------

- Package name lookup is now case insensitive. [Dmitry Vakhrushev]

- Fixed yet another error in return value. [Dmitry Vakhrushev]


1.6 (2014-04-17)
----------------

- Fixed issue #17: Integration with zest.releaser stopped working.

- Fixed issue #18: Pyroma returns the rating as an exit code, this was a
  mistake. It now returns 0 on success, 1 on incorrect options and 2 if
  the rating is below 8.

- Fixed issue #19: Implementing a custom test class counts as having tests.

- 8: Philadelphia is now considered a "success" based on practical experience.


1.5 (2013-10-18)
----------------

- Fixed issue #13: Pyroma would fail if there was no description.

- Dropping support for Python 3.1. It still works, but it is unsupported.

- Added support for command line options, implementing #14 and #15.


1.4 (2013-05-29)
----------------

- Issue #13: Pyroma would fail when checking a package name if no source
  distribution could be found.

- Added a check that the package has a source distribution on PyPI.


1.3.1 (2013-05-29)
------------------

- Issue #11: pyroma would fail if long_description was a non-string.

- zest.releaser now only runs Pyroma on Python packages.

- Because packages that use external test-runners can not get more
  that 9/10, this value is now also seen as acceptable when running
  Pyroma through zest.releaser.


1.3 (2013-03-15)
----------------

- Added a test to make sure the version number is a string.

- Made sure errors were printed also when a fatal error was encountered.

- Better log messages.

- The zest.releaser hook is now done before tagging, as it's more useful there.
  Especially in conjunction with check-manifest.

- Having no long_description no longer causes pyroma to fail.


1.2 (2013-03-06)
----------------

- Removed the running of tests. I always found it a bit iffy, and getting
  rid of it solved a lot of issues. Pyroma is now focused solely on
  packaging quality.

- A package on PyPI with several versions will no longer return an error.

- Now looks for documentation on pythonhosted.org or readthedocs.org.

- Adds a hook for zest.releaser, so it can be run after doing the checkout,
  before uploading to PyPI.


1.1 (2013-03-05)
----------------

- Better handling if there is no package data, for example if setup.py doesn't
  call setup() unless you run it as the "__main__" script.

- If setup.py doesn't call setup() look for a main() script and try to run it.


1.0 (2013-03-05)
----------------

- Support for Python 3.3

- Added test for PEP 386 compliance.


0.9.3 (2011-03-17)
------------------

- It's now using a ProxyStub for the PyPI xmlrpclib during tests.

- Removed the Dependency rating.

- Added a rating that runs tests, to see if they run. This will also take
  care of checking for dependencies.


0.9.2 (2011-03-13)
------------------

- Commented out the dependency test, it was too unreliable.

- Fixed the ReST.

- Python 3 support.


0.9.1 (2011-03-08)
------------------

- Initial release
