Hervé Beraud 37411e792a Add doc/requirements
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
2021-01-18 10:55:41 +01:00

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