mirror of
https://github.com/certbot/certbot.git
synced 2026-06-04 14:26:10 -04:00
I observed that the current set of oldest requirements do not correspond to any environment, except the specific Xenial image in Travis CI (and standard Xenial containers will also fail). It is because the requirements make cryptography and requests fail against standard libraries available in the typical Linux distributions that are targeted by the oldest requirements approach (Centos 6, Centos 7, Xenial, Jessie). This PR fixes that, by aligning the minimal version requirements of cryptography and requests to the maximal versions that are available on Centos 6. Centos 7, Jessie and Xenial stay unusable with oldest requirements for other reasons, but at least one old and supported Linux distribution is able to run the tests with oldest requirements out of the box. A test is also corrected to match the expected error message that old versions of urllib3 will raise.
86 lines
2.4 KiB
Python
86 lines
2.4 KiB
Python
from setuptools import setup
|
|
from setuptools import find_packages
|
|
from setuptools.command.test import test as TestCommand
|
|
import sys
|
|
|
|
version = '0.31.0.dev0'
|
|
|
|
# Please update tox.ini when modifying dependency version requirements
|
|
install_requires = [
|
|
# load_pem_private/public_key (>=0.6)
|
|
# rsa_recover_prime_factors (>=0.8)
|
|
'cryptography>=1.2.3',
|
|
# formerly known as acme.jose:
|
|
'josepy>=1.0.0',
|
|
# Connection.set_tlsext_host_name (>=0.13)
|
|
'mock',
|
|
'PyOpenSSL>=0.13.1',
|
|
'pyrfc3339',
|
|
'pytz',
|
|
'requests[security]>=2.6.0', # security extras added in 2.4.1
|
|
'requests-toolbelt>=0.3.0',
|
|
'setuptools',
|
|
'six>=1.9.0', # needed for python_2_unicode_compatible
|
|
]
|
|
|
|
dev_extras = [
|
|
'pytest',
|
|
'pytest-xdist',
|
|
'tox',
|
|
]
|
|
|
|
docs_extras = [
|
|
'Sphinx>=1.0', # autodoc_member_order = 'bysource', autodoc_default_flags
|
|
'sphinx_rtd_theme',
|
|
]
|
|
|
|
class PyTest(TestCommand):
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
TestCommand.initialize_options(self)
|
|
self.pytest_args = ''
|
|
|
|
def run_tests(self):
|
|
import shlex
|
|
# import here, cause outside the eggs aren't loaded
|
|
import pytest
|
|
errno = pytest.main(shlex.split(self.pytest_args))
|
|
sys.exit(errno)
|
|
|
|
setup(
|
|
name='acme',
|
|
version=version,
|
|
description='ACME protocol implementation in Python',
|
|
url='https://github.com/letsencrypt/letsencrypt',
|
|
author="Certbot Project",
|
|
author_email='client-dev@letsencrypt.org',
|
|
license='Apache License 2.0',
|
|
python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
|
|
classifiers=[
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Intended Audience :: Developers',
|
|
'License :: OSI Approved :: Apache Software License',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 2',
|
|
'Programming Language :: Python :: 2.7',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.4',
|
|
'Programming Language :: Python :: 3.5',
|
|
'Programming Language :: Python :: 3.6',
|
|
'Programming Language :: Python :: 3.7',
|
|
'Topic :: Internet :: WWW/HTTP',
|
|
'Topic :: Security',
|
|
],
|
|
|
|
packages=find_packages(),
|
|
include_package_data=True,
|
|
install_requires=install_requires,
|
|
extras_require={
|
|
'dev': dev_extras,
|
|
'docs': docs_extras,
|
|
},
|
|
tests_require=["pytest"],
|
|
test_suite='acme',
|
|
cmdclass={"test": PyTest},
|
|
)
|