zestsoftware / zest.releaser

Python software releasing made easy and repeatable
https://zestreleaser.readthedocs.io
GNU General Public License v2.0
199 stars 62 forks source link

get_last_tag can fail with recent setuptools #408

Closed mauritsvanrees closed 1 year ago

mauritsvanrees commented 1 year ago

This is with zest.releaser 8.0.0a1, though I guess earlier versions are affected as well.

setuptools 66 is more strict with what versions it can parse. With a checkout of plone.app.event I get this:

$ lasttaglog
Traceback (most recent call last):
  File "/Users/maurits/community/plone-coredev/6.0/src/plone.app.event/../../bin/lasttaglog", line 67, in <module>
    sys.exit(zest.releaser.lasttaglog.main())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maurits/shared-eggs/cp311/zest.releaser-8.0.0a1-py3.11.egg/zest/releaser/lasttaglog.py", line 22, in main
    found = utils.get_last_tag(vcs)
            ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maurits/shared-eggs/cp311/zest.releaser-8.0.0a1-py3.11.egg/zest/releaser/utils.py", line 856, in get_last_tag
    parsed_tag = parse_version(tag)
                 ^^^^^^^^^^^^^^^^^^
  File "/Users/maurits/community/plone-coredev/6.0/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/version.py", line 197, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: 'PLIP-2780-PRE-ES6'

That is this tag.

Same for lasttagdiff and bumpversion.

If parse_version fails, we should ignore this tag. Maybe warn.

mauritsvanrees commented 1 year ago

Fix released in 8.0.0a2.