Opened at 2017-02-24T13:24:01Z
Last modified at 2017-02-24T17:00:15Z
#107 new defect
Older versions of pycryptopp have a newer-looking version number
Reported by: | exarkun | Owned by: | |
---|---|---|---|
Priority: | blocker | Milestone: | |
Version: | Keywords: | ||
Cc: | Launchpad Bug: |
Description
The current release of pycryptopp on pypi is 0.7.1.869544967005693312591928092448767568728501330214
I assume the release was generated from the revision at the git tag pycryptopp-0.7.1
The git tag pycryptopp-0.7.1 is about 4 revisions behind master@HEAD right now. The self-reported version of pycryptopp at master@HEAD is 0.7.1.4.182880377279460454774209806269619214747373856330.post4
>>> from packaging.version import Version >>> release = Version("0.7.1.869544967005693312591928092448767568728501330214") >>> head = Version("0.7.1.4.182880377279460454774209806269619214747373856330.post4") >>> versions = [release, head] >>> versions.sort() <Version('0.7.1.869544967005693312591928092448767568728501330214')>] >>> versions == [head, release] True >>>
The actually newer code has a version that marks it as being older. Perhaps this only affects postX versions but that's sufficient to break testing environments where it becomes difficult to get an in-development version of pycryptopp instead of the last release.
Also, a dirty working copy causes a ".dev0" tag to be appended to the version. However, "X.dev0" is considered _older_ than "X". So even a checkout of pycryptopp-0.7.1 with build-related changes checked out ends up being considered an older version than the 0.7.1. release. This is also very inconvenient and ... wrong, I think?