![Hervé Beraud](/assets/img/avatar_default.png)
We need to specify doc requirements in doc/requirements.txt to avoid problems with the pip resolver [1] for the release team [2][3]. Removing specific doc requirements from test-requirements.txt. The problem here is that this repos haven't doc/requirements.txt file and by default in this case zuul will use the test-requirements.txt file to pull requirements [4]. This requirements file contains extra requirements like flake8 that collided with those allowed in our job environment and so the new pip resolver fails to install these requirements and the job exits in error. This project meet the conditions leading to the bug. /!\/!\/!\ Notice that I voluntarily added the doc directory even if no docs are generated here because zuul will try to pull this requirements from there first and the contained requirements are needed for reno but AFAIK the releasenotes dir is ignored by zuul. c.f [4] for further details. /!\/!\/!\ Bump a series of lower-constraints and requirements to work with new pip resolver, testing with steps outlined at [5] Fix Flake8 E741 [6] [1] http://lists.openstack.org/pipermail/release-job-failures/2021-January/001500.html [2] http://lists.openstack.org/pipermail/openstack-discuss/2021-January/019611.html [3] http://lists.openstack.org/pipermail/openstack-discuss/2021-January/019612.html [4] https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/ensure-sphinx/tasks/main.yaml#L36 [5] http://lists.openstack.org/pipermail/openstack-discuss/2020-December/019285.html [6] https://www.flake8rules.com/rules/E741.html Change-Id: Ic1504a18a780b0f517c5aa3dd3bfb04998d42e74
122 lines
3.2 KiB
INI
122 lines
3.2 KiB
INI
[tox]
|
|
envlist = py38,pep8
|
|
minversion = 2.1
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
DISCOVER_DIRECTORY=tests
|
|
passenv = http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
usedevelop = True
|
|
whitelist_externals = bash
|
|
find
|
|
rm
|
|
install_command = pip install {opts} {packages}
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
.[influxdb,cassandra,elasticsearch]
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
find {toxinidir} -type f -name "*.py[c|o]" -delete
|
|
rm -Rf .testrepository/times.dbm
|
|
stestr run {posargs}
|
|
|
|
[testenv:cover]
|
|
basepython = python3
|
|
setenv =
|
|
PYTHON=coverage run --source monasca_persister --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[testenv:debug]
|
|
basepython = python3
|
|
commands = oslo_debug_helper -t monasca_persister/tests {posargs}
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
deps =
|
|
{[testenv]deps}
|
|
commands =
|
|
{[testenv:flake8]commands}
|
|
{[bandit]commands}
|
|
|
|
[testenv:genconfig]
|
|
basepython = python3
|
|
description = Generates sample configuration file for monasca-persister
|
|
whitelist_externals = bash
|
|
commands =
|
|
oslo-config-generator --config-file=config-generator/persister.conf
|
|
|
|
[testenv:venv]
|
|
basepython = python3
|
|
commands = {posargs}
|
|
|
|
[testenv:bindep]
|
|
basepython = python3
|
|
# Do not install any requirements. We want this to be fast and work even if
|
|
# system dependencies are missing, since it's used to tell you what system
|
|
# dependencies are missing! This also means that bindep must be installed
|
|
# separately, outside of the requirements files.
|
|
deps = bindep
|
|
commands = bindep test
|
|
|
|
[testenv:flake8]
|
|
basepython = python3
|
|
commands =
|
|
flake8 monasca_persister
|
|
|
|
[flake8]
|
|
max-line-length = 100
|
|
# TODO: ignored checks should be enabled in the future
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
ignore = F821,H405,H306,E302
|
|
exclude=.venv,.git,.tox,dist,*egg,build
|
|
|
|
[bandit]
|
|
commands =
|
|
# B303 cassandra metrics repository uses SHA1 for metric_id
|
|
bandit -r monasca_persister -n5 -s B303 -x monasca_persister/tests
|
|
|
|
[flake8:local-plugins]
|
|
extension =
|
|
|
|
|
|
def factory(register):
|
|
M001 = checks:no_mutable_default_args
|
|
M002 = checks:no_xrange
|
|
M003 = checks:validate_assertTrue
|
|
M004 = checks:validate_assertIsNone
|
|
M005 = checks:no_log_warn_check
|
|
M006 = checks:validate_assertIsNotNone
|
|
M007 = checks:assert_raisesRegexp
|
|
paths = ./monasca_persister/hacking
|
|
|
|
[testenv:lower-constraints]
|
|
basepython = python3
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
.[influxdb,cassandra,elasticsearch]
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
[testenv:releasenotes]
|
|
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
basepython = python3
|
|
description = Called from CI script to test and publish the Release Notes
|
|
commands =
|
|
rm -rf releasenotes/build
|
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html \
|
|
releasenotes/source releasenotes/build/html
|