1
0
mirror of https://github.com/certbot/certbot.git synced 2025-08-08 04:02:10 +03:00

tree-wide: use LooseVersion instead of StrictVersion (#8081)

According to `distutils/version.py`, StrictVersion is pretty strict in
what version numbers to accept:

> A version number consists of two or three dot-separated numeric
> components, with an optional "pre-release" tag on the end.  The
> pre-release tag consists of the letter 'a' or 'b' followed by a number.

This assumption already fails for some pretty basic python libraries
itself, like setuptools, also available in `46.1.3.post20200610`, a
completely valid version number according to
https://www.python.org/dev/peps/pep-0440/#post-releases.

There doesn't seem to be a particular reason on why StrictVersion has
been used here, so let's use LooseVersion, to be compatible with these
versions.

Co-authored-by: Adrien Ferrand <adferrand@users.noreply.github.com>
This commit is contained in:
Florian Klink
2020-06-19 17:11:35 +02:00
committed by GitHub
parent db064a4109
commit 25e79e4aca
22 changed files with 44 additions and 40 deletions

View File

@@ -85,6 +85,7 @@ Authors
* [Felix Schwarz](https://github.com/FelixSchwarz) * [Felix Schwarz](https://github.com/FelixSchwarz)
* [Felix Yan](https://github.com/felixonmars) * [Felix Yan](https://github.com/felixonmars)
* [Filip Ochnik](https://github.com/filipochnik) * [Filip Ochnik](https://github.com/filipochnik)
* [Florian Klink](https://github.com/flokli)
* [Francois Marier](https://github.com/fmarier) * [Francois Marier](https://github.com/fmarier)
* [Frank](https://github.com/Frankkkkk) * [Frank](https://github.com/Frankkkkk)
* [Frederic BLANC](https://github.com/fblanc) * [Frederic BLANC](https://github.com/fblanc)

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -27,7 +27,7 @@ install_requires = [
'six>=1.9.0', # needed for python_2_unicode_compatible 'six>=1.9.0', # needed for python_2_unicode_compatible
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -19,7 +19,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -26,7 +26,7 @@ install_requires = [
# However environment markers are supported only with setuptools >= 36.2. # However environment markers are supported only with setuptools >= 36.2.
# So this dependency is not added for old Linux distributions with old setuptools, # So this dependency is not added for old Linux distributions with old setuptools,
# in order to allow these systems to build certbot from sources. # in order to allow these systems to build certbot from sources.
if StrictVersion(setuptools_version) >= StrictVersion('36.2'): if LooseVersion(setuptools_version) >= LooseVersion('36.2'):
install_requires.append("pywin32>=224 ; sys_platform == 'win32'") install_requires.append("pywin32>=224 ; sys_platform == 'win32'")
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:
raise RuntimeError('Error, you are trying to build certbot wheels using an old version ' raise RuntimeError('Error, you are trying to build certbot wheels using an old version '

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -15,7 +15,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -19,7 +19,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import os import os
import sys import sys
@@ -25,7 +25,7 @@ elif 'bdist_wheel' in sys.argv[1:]:
raise RuntimeError('Unset EXCLUDE_CERTBOT_DEPS when building wheels ' raise RuntimeError('Unset EXCLUDE_CERTBOT_DEPS when building wheels '
'to include certbot dependencies.') 'to include certbot dependencies.')
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -17,7 +17,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -21,7 +21,7 @@ install_requires = [
'httplib2' 'httplib2'
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -17,7 +17,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -18,7 +18,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -17,7 +17,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -1,4 +1,4 @@
from distutils.version import StrictVersion from distutils.version import LooseVersion
import sys import sys
from setuptools import __version__ as setuptools_version from setuptools import __version__ as setuptools_version
@@ -19,7 +19,7 @@ install_requires = [
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append('mock ; python_version < "3.3"') install_requires.append('mock ; python_version < "3.3"')
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]:

View File

@@ -24,6 +24,9 @@ Certbot adheres to [Semantic Versioning](https://semver.org/).
### Fixed ### Fixed
* Cloudflare API Tokens may now be restricted to individual zones. * Cloudflare API Tokens may now be restricted to individual zones.
* Don't use `StrictVersion`, but `LooseVersion` to check version requirements with setuptools,
to fix some packaging issues with libraries respecting PEP404 for version string,
with doesn't match `StrictVersion` requirements.
More details about these changes can be found on our GitHub repo. More details about these changes can be found on our GitHub repo.

View File

@@ -1,5 +1,5 @@
import codecs import codecs
from distutils.version import StrictVersion from distutils.version import LooseVersion
import os import os
import re import re
import sys import sys
@@ -61,7 +61,7 @@ install_requires = [
# So this dependency is not added for old Linux distributions with old setuptools, # So this dependency is not added for old Linux distributions with old setuptools,
# in order to allow these systems to build certbot from sources. # in order to allow these systems to build certbot from sources.
pywin32_req = 'pywin32>=227' # do not forget to edit pywin32 dependency accordingly in windows-installer/construct.py pywin32_req = 'pywin32>=227' # do not forget to edit pywin32 dependency accordingly in windows-installer/construct.py
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('36.2')) setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
if setuptools_known_environment_markers: if setuptools_known_environment_markers:
install_requires.append(pywin32_req + " ; sys_platform == 'win32'") install_requires.append(pywin32_req + " ; sys_platform == 'win32'")
elif 'bdist_wheel' in sys.argv[1:]: elif 'bdist_wheel' in sys.argv[1:]: