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.
/!\/!\/!\

[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

Change-Id: I77bbf9eac7bfe707aeed40980cfddfb5f0be2f91
This commit is contained in:
Hervé Beraud 2021-01-07 17:15:26 +01:00
parent d0e1f82d90
commit 16cc6428f2
3 changed files with 6 additions and 3 deletions

3
doc/requirements.txt Normal file
View File

@ -0,0 +1,3 @@
sphinx>=2.0.0,!=2.1.0 # BSD
openstackdocstheme>=2.2.1 # Apache-2.0
reno>=3.1.0 # Apache-2.0

View File

@ -12,11 +12,8 @@ coverage>=3.6
ddt>=0.7.0
python-subunit>=0.0.18
selenium>=2.50.1 # Apache-2.0
sphinx>=2.0.0,!=2.1.0 # BSD
openstackdocstheme>=2.2.1 # Apache-2.0
testrepository>=0.0.18
testscenarios>=0.4
testtools>=1.4.0
# This also needs xvfb library installed on your OS
xvfbwrapper>=0.1.3 #license: MIT
reno>=3.1.0 # Apache-2.0

View File

@ -29,6 +29,8 @@ commands = /bin/bash run_tests.sh -N --integration --selenium-headless {posargs}
commands = python setup.py testr --coverage --testr-args={posargs}
[testenv:docs]
deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-build -a -E -W -b html doc/source doc/build/html
@ -36,6 +38,7 @@ commands =
commands = oslo_debug_helper {posargs}
[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[flake8]