mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-12-13 14:43:03 +00:00
Fix urllib3 dependency error on installation of tutor
requests depends on urllib3<1.26.0, while urllib3==1.26.0 was just released. We need to introduce a constraint on urllib3 to avoid the following error when running `pip install -e`: pkg_resources.ContextualVersionConflict: (urllib3 1.26.0 (./venv/lib/python3.7/site-packages), Requirement.parse('urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1'), {'requests'}) We will be able to remove this constraint once requests becomes compatible with urllib3==1.26.0. To test this change just run `pip install -e tutor` and then run a dummy command, such as `tutor local stop`.
This commit is contained in:
parent
6c4d9619fd
commit
ad858cd699
@ -4,6 +4,7 @@ Note: Breaking changes between versions are indicated by "💥".
|
||||
|
||||
## Unreleased
|
||||
|
||||
- [Bugfix] Fix dependency error during `pip install tutor` due to urllib3 incompatibility
|
||||
- [Bugfix] Fix user ID checking under Windows.
|
||||
- [Bugfix] Fix template rendering for Windows users.
|
||||
- [Improvement] Switch to `bcrypt` for htpasswd password generation, for better portability on Windows.
|
||||
|
@ -5,3 +5,6 @@ pycryptodome
|
||||
jinja2>=2.9
|
||||
kubernetes
|
||||
pyyaml>=4.2b1
|
||||
|
||||
# Installing urllib3==1.26.0 causes compatibility errors with requests==2.24.0
|
||||
urllib3<1.26.0
|
@ -6,11 +6,11 @@
|
||||
#
|
||||
appdirs==1.4.4 # via -r requirements/base.in
|
||||
cachetools==4.1.1 # via google-auth
|
||||
certifi==2020.6.20 # via kubernetes, requests
|
||||
certifi==2020.11.8 # via kubernetes, requests
|
||||
chardet==3.0.4 # via requests
|
||||
click-repl==0.1.6 # via -r requirements/base.in
|
||||
click==7.1.2 # via -r requirements/base.in, click-repl
|
||||
google-auth==1.22.1 # via kubernetes
|
||||
google-auth==1.23.0 # via kubernetes
|
||||
idna==2.10 # via requests
|
||||
jinja2==2.11.2 # via -r requirements/base.in
|
||||
kubernetes==12.0.0 # via -r requirements/base.in
|
||||
@ -19,14 +19,14 @@ oauthlib==3.1.0 # via requests-oauthlib
|
||||
prompt-toolkit==3.0.8 # via click-repl
|
||||
pyasn1-modules==0.2.8 # via google-auth
|
||||
pyasn1==0.4.8 # via pyasn1-modules, rsa
|
||||
pycryptodome==3.9.8 # via -r requirements/base.in
|
||||
pycryptodome==3.9.9 # via -r requirements/base.in
|
||||
python-dateutil==2.8.1 # via kubernetes
|
||||
pyyaml==5.3.1 # via -r requirements/base.in, kubernetes
|
||||
requests-oauthlib==1.3.0 # via kubernetes
|
||||
requests==2.24.0 # via kubernetes, requests-oauthlib
|
||||
rsa==4.6 # via google-auth
|
||||
six==1.15.0 # via click-repl, google-auth, kubernetes, python-dateutil, websocket-client
|
||||
urllib3==1.25.11 # via kubernetes, requests
|
||||
urllib3==1.25.11 # via -r requirements/base.in, kubernetes, requests
|
||||
wcwidth==0.2.5 # via prompt-toolkit
|
||||
websocket-client==0.57.0 # via kubernetes
|
||||
|
||||
|
@ -10,21 +10,21 @@ astroid==2.4.2 # via pylint
|
||||
black==20.8b1 # via -r requirements/dev.in
|
||||
bleach==3.2.1 # via readme-renderer
|
||||
cachetools==4.1.1 # via -r requirements/base.txt, google-auth
|
||||
certifi==2020.6.20 # via -r requirements/base.txt, kubernetes, requests
|
||||
certifi==2020.11.8 # via -r requirements/base.txt, kubernetes, requests
|
||||
cffi==1.14.3 # via cryptography
|
||||
chardet==3.0.4 # via -r requirements/base.txt, requests
|
||||
click-repl==0.1.6 # via -r requirements/base.txt
|
||||
click==7.1.2 # via -r requirements/base.txt, black, click-repl, pip-tools
|
||||
colorama==0.4.4 # via twine
|
||||
cryptography==3.2 # via secretstorage
|
||||
cryptography==3.2.1 # via secretstorage
|
||||
docutils==0.16 # via readme-renderer
|
||||
google-auth==1.22.1 # via -r requirements/base.txt, kubernetes
|
||||
google-auth==1.23.0 # via -r requirements/base.txt, kubernetes
|
||||
idna==2.10 # via -r requirements/base.txt, requests
|
||||
importlib-metadata==2.0.0 # via keyring, twine
|
||||
isort==5.6.4 # via pylint
|
||||
jeepney==0.4.3 # via keyring, secretstorage
|
||||
jeepney==0.5.0 # via keyring, secretstorage
|
||||
jinja2==2.11.2 # via -r requirements/base.txt
|
||||
keyring==21.4.0 # via twine
|
||||
keyring==21.5.0 # via twine
|
||||
kubernetes==12.0.0 # via -r requirements/base.txt
|
||||
lazy-object-proxy==1.4.3 # via astroid
|
||||
markupsafe==1.1.1 # via -r requirements/base.txt, jinja2
|
||||
@ -32,31 +32,31 @@ mccabe==0.6.1 # via pylint
|
||||
mypy-extensions==0.4.3 # via black
|
||||
oauthlib==3.1.0 # via -r requirements/base.txt, requests-oauthlib
|
||||
packaging==20.4 # via bleach
|
||||
pathspec==0.8.0 # via black
|
||||
pathspec==0.8.1 # via black
|
||||
pip-tools==5.3.1 # via -r requirements/dev.in
|
||||
pkginfo==1.6.1 # via twine
|
||||
prompt-toolkit==3.0.8 # via -r requirements/base.txt, click-repl
|
||||
pyasn1-modules==0.2.8 # via -r requirements/base.txt, google-auth
|
||||
pyasn1==0.4.8 # via -r requirements/base.txt, pyasn1-modules, rsa
|
||||
pycparser==2.20 # via cffi
|
||||
pycryptodome==3.9.8 # via -r requirements/base.txt
|
||||
pycryptodome==3.9.9 # via -r requirements/base.txt
|
||||
pygments==2.7.2 # via readme-renderer
|
||||
pyinstaller-hooks-contrib==2020.9 # via pyinstaller
|
||||
pyinstaller-hooks-contrib==2020.10 # via pyinstaller
|
||||
pyinstaller==4.0 # via -r requirements/dev.in
|
||||
pylint==2.6.0 # via -r requirements/dev.in
|
||||
pyparsing==2.4.7 # via packaging
|
||||
python-dateutil==2.8.1 # via -r requirements/base.txt, kubernetes
|
||||
pyyaml==5.3.1 # via -r requirements/base.txt, kubernetes
|
||||
readme-renderer==28.0 # via twine
|
||||
regex==2020.10.23 # via black
|
||||
regex==2020.10.28 # via black
|
||||
requests-oauthlib==1.3.0 # via -r requirements/base.txt, kubernetes
|
||||
requests-toolbelt==0.9.1 # via twine
|
||||
requests==2.24.0 # via -r requirements/base.txt, kubernetes, requests-oauthlib, requests-toolbelt, twine
|
||||
rfc3986==1.4.0 # via twine
|
||||
rsa==4.6 # via -r requirements/base.txt, google-auth
|
||||
secretstorage==3.1.2 # via keyring
|
||||
secretstorage==3.2.0 # via keyring
|
||||
six==1.15.0 # via -r requirements/base.txt, astroid, bleach, click-repl, cryptography, google-auth, kubernetes, packaging, pip-tools, python-dateutil, readme-renderer, websocket-client
|
||||
toml==0.10.1 # via black, pylint
|
||||
toml==0.10.2 # via black, pylint
|
||||
tqdm==4.51.0 # via twine
|
||||
twine==3.2.0 # via -r requirements/dev.in
|
||||
typed-ast==1.4.1 # via astroid, black
|
||||
|
@ -8,12 +8,12 @@ alabaster==0.7.12 # via sphinx
|
||||
appdirs==1.4.4 # via -r requirements/base.txt
|
||||
babel==2.8.0 # via sphinx
|
||||
cachetools==4.1.1 # via -r requirements/base.txt, google-auth
|
||||
certifi==2020.6.20 # via -r requirements/base.txt, kubernetes, requests
|
||||
certifi==2020.11.8 # via -r requirements/base.txt, kubernetes, requests
|
||||
chardet==3.0.4 # via -r requirements/base.txt, requests
|
||||
click-repl==0.1.6 # via -r requirements/base.txt
|
||||
click==7.1.2 # via -r requirements/base.txt, click-repl
|
||||
docutils==0.16 # via sphinx
|
||||
google-auth==1.22.1 # via -r requirements/base.txt, kubernetes
|
||||
google-auth==1.23.0 # via -r requirements/base.txt, kubernetes
|
||||
idna==2.10 # via -r requirements/base.txt, requests
|
||||
imagesize==1.2.0 # via sphinx
|
||||
jinja2==2.11.2 # via -r requirements/base.txt, sphinx
|
||||
@ -24,11 +24,11 @@ packaging==20.4 # via sphinx
|
||||
prompt-toolkit==3.0.8 # via -r requirements/base.txt, click-repl
|
||||
pyasn1-modules==0.2.8 # via -r requirements/base.txt, google-auth
|
||||
pyasn1==0.4.8 # via -r requirements/base.txt, pyasn1-modules, rsa
|
||||
pycryptodome==3.9.8 # via -r requirements/base.txt
|
||||
pycryptodome==3.9.9 # via -r requirements/base.txt
|
||||
pygments==2.7.2 # via sphinx
|
||||
pyparsing==2.4.7 # via packaging
|
||||
python-dateutil==2.8.1 # via -r requirements/base.txt, kubernetes
|
||||
pytz==2020.1 # via babel
|
||||
pytz==2020.4 # via babel
|
||||
pyyaml==5.3.1 # via -r requirements/base.txt, kubernetes
|
||||
requests-oauthlib==1.3.0 # via -r requirements/base.txt, kubernetes
|
||||
requests==2.24.0 # via -r requirements/base.txt, kubernetes, requests-oauthlib, sphinx
|
||||
@ -36,7 +36,7 @@ rsa==4.6 # via -r requirements/base.txt, google-auth
|
||||
six==1.15.0 # via -r requirements/base.txt, click-repl, google-auth, kubernetes, packaging, python-dateutil, websocket-client
|
||||
snowballstemmer==2.0.0 # via sphinx
|
||||
sphinx-rtd-theme==0.5.0 # via -r requirements/docs.in
|
||||
sphinx==3.2.1 # via -r requirements/docs.in, sphinx-rtd-theme
|
||||
sphinx==3.3.0 # via -r requirements/docs.in, sphinx-rtd-theme
|
||||
sphinxcontrib-applehelp==1.0.2 # via sphinx
|
||||
sphinxcontrib-devhelp==1.0.2 # via sphinx
|
||||
sphinxcontrib-htmlhelp==1.0.3 # via sphinx
|
||||
|
44
setup.py
44
setup.py
@ -2,23 +2,39 @@ import io
|
||||
import os
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
HERE = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
with io.open(os.path.join(here, "README.rst"), "rt", encoding="utf8") as f:
|
||||
readme = f.read()
|
||||
|
||||
about = {}
|
||||
with io.open(os.path.join(here, "tutor", "__about__.py"), "rt", encoding="utf-8") as f:
|
||||
exec(f.read(), about)
|
||||
requirements = []
|
||||
with io.open(
|
||||
os.path.join(here, "requirements", "base.in"), "rt", encoding="utf-8"
|
||||
) as f:
|
||||
requirements = [line.strip() for line in f]
|
||||
def load_readme():
|
||||
with io.open(os.path.join(HERE, "README.rst"), "rt", encoding="utf8") as f:
|
||||
return f.read()
|
||||
|
||||
|
||||
def load_about():
|
||||
about = {}
|
||||
with io.open(
|
||||
os.path.join(HERE, "tutor", "__about__.py"), "rt", encoding="utf-8"
|
||||
) as f:
|
||||
exec(f.read(), about) # pylint: disable=exec-used
|
||||
return about
|
||||
|
||||
|
||||
def load_requirements():
|
||||
with io.open(
|
||||
os.path.join(HERE, "requirements", "base.in"), "rt", encoding="utf-8"
|
||||
) as f:
|
||||
return [line.strip() for line in f if is_requirement(line)]
|
||||
|
||||
|
||||
def is_requirement(line):
|
||||
return not (line.strip() == "" or line.startswith("#"))
|
||||
|
||||
|
||||
ABOUT = load_about()
|
||||
|
||||
setup(
|
||||
name="tutor-openedx",
|
||||
version=about["__version__"],
|
||||
version=ABOUT["__version__"],
|
||||
url="https://docs.tutor.overhang.io/",
|
||||
project_urls={
|
||||
"Documentation": "https://docs.tutor.overhang.io/",
|
||||
@ -30,12 +46,12 @@ setup(
|
||||
author="Overhang.io",
|
||||
author_email="contact@overhang.io",
|
||||
description="The docker-based Open edX distribution designed for peace of mind",
|
||||
long_description=readme,
|
||||
long_description=load_readme(),
|
||||
long_description_content_type="text/x-rst",
|
||||
packages=find_packages(exclude=["tests*"]),
|
||||
include_package_data=True,
|
||||
python_requires=">=3.5",
|
||||
install_requires=requirements,
|
||||
install_requires=load_requirements(),
|
||||
entry_points={"console_scripts": ["tutor=tutor.commands.cli:main"]},
|
||||
classifiers=[
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
|
Loading…
Reference in New Issue
Block a user