Do not check lint/test dependencies at runtime. (#8377)
moves non-runtime dependencies out of synapse.python_dependencies (test and lint)pull/8387/head
parent
a4e63e5a47
commit
bbde4038df
|
@ -1 +1 @@
|
||||||
Move lint-related dependencies to package-extra field, update CONTRIBUTING.md to utilise this.
|
Move lint-related dependencies to package-extra field, update CONTRIBUTING.md to utilise this.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Move lint-related dependencies to package-extra field, update CONTRIBUTING.md to utilise this.
|
16
setup.py
16
setup.py
|
@ -94,6 +94,22 @@ ALL_OPTIONAL_REQUIREMENTS = dependencies["ALL_OPTIONAL_REQUIREMENTS"]
|
||||||
# Make `pip install matrix-synapse[all]` install all the optional dependencies.
|
# Make `pip install matrix-synapse[all]` install all the optional dependencies.
|
||||||
CONDITIONAL_REQUIREMENTS["all"] = list(ALL_OPTIONAL_REQUIREMENTS)
|
CONDITIONAL_REQUIREMENTS["all"] = list(ALL_OPTIONAL_REQUIREMENTS)
|
||||||
|
|
||||||
|
# Developer dependencies should not get included in "all".
|
||||||
|
#
|
||||||
|
# We pin black so that our tests don't start failing on new releases.
|
||||||
|
CONDITIONAL_REQUIREMENTS["lint"] = [
|
||||||
|
"isort==5.0.3",
|
||||||
|
"black==19.10b0",
|
||||||
|
"flake8-comprehensions",
|
||||||
|
"flake8",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Dependencies which are exclusively required by unit test code. This is
|
||||||
|
# NOT a list of all modules that are necessary to run the unit tests.
|
||||||
|
# Tests assume that all optional dependencies are installed.
|
||||||
|
#
|
||||||
|
# parameterized_class decorator was introduced in parameterized 0.7.0
|
||||||
|
CONDITIONAL_REQUIREMENTS["test"] = ["mock>=2.0", "parameterized>=0.7.0"]
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="matrix-synapse",
|
name="matrix-synapse",
|
||||||
|
|
|
@ -37,6 +37,9 @@ logger = logging.getLogger(__name__)
|
||||||
# installed when that optional dependency requirement is specified. It is passed
|
# installed when that optional dependency requirement is specified. It is passed
|
||||||
# to setup() as extras_require in setup.py
|
# to setup() as extras_require in setup.py
|
||||||
#
|
#
|
||||||
|
# Note that these both represent runtime dependencies (and the versions
|
||||||
|
# installed are checked at runtime).
|
||||||
|
#
|
||||||
# [1] https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers.
|
# [1] https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers.
|
||||||
|
|
||||||
REQUIREMENTS = [
|
REQUIREMENTS = [
|
||||||
|
@ -92,20 +95,12 @@ CONDITIONAL_REQUIREMENTS = {
|
||||||
"oidc": ["authlib>=0.14.0"],
|
"oidc": ["authlib>=0.14.0"],
|
||||||
"systemd": ["systemd-python>=231"],
|
"systemd": ["systemd-python>=231"],
|
||||||
"url_preview": ["lxml>=3.5.0"],
|
"url_preview": ["lxml>=3.5.0"],
|
||||||
# Dependencies which are exclusively required by unit test code. This is
|
|
||||||
# NOT a list of all modules that are necessary to run the unit tests.
|
|
||||||
# Tests assume that all optional dependencies are installed.
|
|
||||||
#
|
|
||||||
# parameterized_class decorator was introduced in parameterized 0.7.0
|
|
||||||
"test": ["mock>=2.0", "parameterized>=0.7.0"],
|
|
||||||
"sentry": ["sentry-sdk>=0.7.2"],
|
"sentry": ["sentry-sdk>=0.7.2"],
|
||||||
"opentracing": ["jaeger-client>=4.0.0", "opentracing>=2.2.0"],
|
"opentracing": ["jaeger-client>=4.0.0", "opentracing>=2.2.0"],
|
||||||
"jwt": ["pyjwt>=1.6.4"],
|
"jwt": ["pyjwt>=1.6.4"],
|
||||||
# hiredis is not a *strict* dependency, but it makes things much faster.
|
# hiredis is not a *strict* dependency, but it makes things much faster.
|
||||||
# (if it is not installed, we fall back to slow code.)
|
# (if it is not installed, we fall back to slow code.)
|
||||||
"redis": ["txredisapi>=1.4.7", "hiredis"],
|
"redis": ["txredisapi>=1.4.7", "hiredis"],
|
||||||
# We pin black so that our tests don't start failing on new releases.
|
|
||||||
"lint": ["isort==5.0.3", "black==19.10b0", "flake8-comprehensions", "flake8"],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ALL_OPTIONAL_REQUIREMENTS = set() # type: Set[str]
|
ALL_OPTIONAL_REQUIREMENTS = set() # type: Set[str]
|
||||||
|
@ -113,7 +108,7 @@ ALL_OPTIONAL_REQUIREMENTS = set() # type: Set[str]
|
||||||
for name, optional_deps in CONDITIONAL_REQUIREMENTS.items():
|
for name, optional_deps in CONDITIONAL_REQUIREMENTS.items():
|
||||||
# Exclude systemd as it's a system-based requirement.
|
# Exclude systemd as it's a system-based requirement.
|
||||||
# Exclude lint as it's a dev-based requirement.
|
# Exclude lint as it's a dev-based requirement.
|
||||||
if name not in ["systemd", "lint"]:
|
if name not in ["systemd"]:
|
||||||
ALL_OPTIONAL_REQUIREMENTS = set(optional_deps) | ALL_OPTIONAL_REQUIREMENTS
|
ALL_OPTIONAL_REQUIREMENTS = set(optional_deps) | ALL_OPTIONAL_REQUIREMENTS
|
||||||
|
|
||||||
|
|
||||||
|
|
8
tox.ini
8
tox.ini
|
@ -2,13 +2,12 @@
|
||||||
envlist = packaging, py35, py36, py37, py38, check_codestyle, check_isort
|
envlist = packaging, py35, py36, py37, py38, check_codestyle, check_isort
|
||||||
|
|
||||||
[base]
|
[base]
|
||||||
|
extras = test
|
||||||
deps =
|
deps =
|
||||||
mock
|
|
||||||
python-subunit
|
python-subunit
|
||||||
junitxml
|
junitxml
|
||||||
coverage
|
coverage
|
||||||
coverage-enable-subprocess
|
coverage-enable-subprocess
|
||||||
parameterized
|
|
||||||
|
|
||||||
# cyptography 2.2 requires setuptools >= 18.5
|
# cyptography 2.2 requires setuptools >= 18.5
|
||||||
#
|
#
|
||||||
|
@ -36,7 +35,7 @@ setenv =
|
||||||
[testenv]
|
[testenv]
|
||||||
deps =
|
deps =
|
||||||
{[base]deps}
|
{[base]deps}
|
||||||
extras = all
|
extras = all, test
|
||||||
|
|
||||||
whitelist_externals =
|
whitelist_externals =
|
||||||
sh
|
sh
|
||||||
|
@ -84,7 +83,6 @@ deps =
|
||||||
# Old automat version for Twisted
|
# Old automat version for Twisted
|
||||||
Automat == 0.3.0
|
Automat == 0.3.0
|
||||||
|
|
||||||
mock
|
|
||||||
lxml
|
lxml
|
||||||
coverage
|
coverage
|
||||||
coverage-enable-subprocess
|
coverage-enable-subprocess
|
||||||
|
@ -97,7 +95,7 @@ commands =
|
||||||
/bin/sh -c 'python -m synapse.python_dependencies | sed -e "s/>=/==/g" -e "s/psycopg2==2.6//" -e "s/pyopenssl==16.0.0/pyopenssl==17.0.0/" | xargs -d"\n" pip install'
|
/bin/sh -c 'python -m synapse.python_dependencies | sed -e "s/>=/==/g" -e "s/psycopg2==2.6//" -e "s/pyopenssl==16.0.0/pyopenssl==17.0.0/" | xargs -d"\n" pip install'
|
||||||
|
|
||||||
# Install Synapse itself. This won't update any libraries.
|
# Install Synapse itself. This won't update any libraries.
|
||||||
pip install -e .
|
pip install -e ".[test]"
|
||||||
|
|
||||||
{envbindir}/coverage run "{envbindir}/trial" {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}
|
{envbindir}/coverage run "{envbindir}/trial" {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue