From f6b619e8e8e883703f6e4731fe1e7aee99acdc5d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Beraud?= <hberaud@redhat.com>
Date: Tue, 5 Jan 2021 11:36:05 +0100
Subject: [PATCH] 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].
Removed 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.

[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: I23bbefb2549afdb7e54c9b0c245a338cae4e81e9
---
 doc/requirements.txt  | 3 +++
 test-requirements.txt | 6 ------
 tox.ini               | 4 ++++
 3 files changed, 7 insertions(+), 6 deletions(-)
 create mode 100644 doc/requirements.txt

diff --git a/doc/requirements.txt b/doc/requirements.txt
new file mode 100644
index 0000000..1489bce
--- /dev/null
+++ b/doc/requirements.txt
@@ -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
diff --git a/test-requirements.txt b/test-requirements.txt
index 5f1d4fd..a043fc9 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -7,9 +7,3 @@ hacking>=1.1.0,<3.0.1 # Apache-2.0
 # hacking to 3.2.0 or above. hacking 3.2.0 takes
 # care of pyflakes version compatibilty.
 pyflakes>=2.1.1 # MIT
-
-# docs
-sphinx>=2.0.0,!=2.1.0 # BSD
-openstackdocstheme>=2.2.1 # Apache-2.0
-# releasenotes
-reno>=3.1.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index 8a9c3de..4db3590 100644
--- a/tox.ini
+++ b/tox.ini
@@ -35,16 +35,20 @@ commands =
     coverage xml -o cover/coverage.xml
 
 [testenv:docs]
+deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+       -r{toxinidir}/doc/requirements.txt
 commands =
     sphinx-build -W -b html doc/source doc/build/html
 
 [testenv:pdf-docs]
+deps = {[testenv:docs]deps}
 whitelist_externals = make
 commands =
     sphinx-build -b latex doc/source doc/build/pdf
     make -C doc/build/pdf
 
 [testenv:releasenotes]
+deps = {[testenv:docs]deps}
 commands =
   sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html