From 37411e792a8ee36eb04832785044b048719e9fcf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Beraud?= <hberaud@redhat.com>
Date: Thu, 7 Jan 2021 14:05:30 +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].

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
---
 doc/requirements.txt                                      | 3 +++
 lower-constraints.txt                                     | 4 ++--
 .../influxdb/db-per-tenant/migrate-to-db-per-tenant.py    | 4 ++--
 test-requirements.txt                                     | 8 --------
 tox.ini                                                   | 2 ++
 5 files changed, 9 insertions(+), 12 deletions(-)
 create mode 100644 doc/requirements.txt

diff --git a/doc/requirements.txt b/doc/requirements.txt
new file mode 100644
index 00000000..f41f72e3
--- /dev/null
+++ b/doc/requirements.txt
@@ -0,0 +1,3 @@
+sphinx>=2.0.0,!=2.1.0 # BSD
+reno>=3.1.0 # Apache-2.0
+openstackdocstheme>=2.2.1 # Apache-2.0
diff --git a/lower-constraints.txt b/lower-constraints.txt
index 3c75890d..d5dc31c8 100644
--- a/lower-constraints.txt
+++ b/lower-constraints.txt
@@ -1,4 +1,4 @@
-appdirs==1.3.0
+appdirs==1.4.0
 Babel==2.3.4
 bandit==1.4.0
 cassandra-driver==3.21.0
@@ -18,7 +18,7 @@ iso8601==0.1.11
 kazoo==2.8.0
 keystoneauth1==3.4.0
 linecache2==1.0.0
-mccabe==0.4.0
+mccabe==0.6.0
 monasca-common==2.16.0
 monotonic==0.6
 mox3==0.20.0
diff --git a/monasca_persister/tools/influxdb/db-per-tenant/migrate-to-db-per-tenant.py b/monasca_persister/tools/influxdb/db-per-tenant/migrate-to-db-per-tenant.py
index 0167efd1..81eeadc8 100755
--- a/monasca_persister/tools/influxdb/db-per-tenant/migrate-to-db-per-tenant.py
+++ b/monasca_persister/tools/influxdb/db-per-tenant/migrate-to-db-per-tenant.py
@@ -101,7 +101,7 @@ class MigrationHelper(object):
         measurements = []
         if fname:
             with open(fname, 'a+') as f:
-                measurements = [l.strip() for l in f.readlines()]
+                measurements = [line.strip() for line in f.readlines()]
         if not measurements:
             result = self.client.query('SHOW MEASUREMENTS').get_points('measurements')
             measurements = [m.get('name') for m in result]
@@ -118,7 +118,7 @@ class MigrationHelper(object):
     def get_complete(self, fname):
         if fname:
             with open(fname, 'a+') as fd:
-                return {l.strip() for l in fd.readlines()}
+                return {line.strip() for line in fd.readlines()}
         else:
             return {}
 
diff --git a/test-requirements.txt b/test-requirements.txt
index 9b058298..603e99fd 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,20 +2,12 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 bandit>=1.1.0 # Apache-2.0
-flake8<2.6.0,>=2.5.4 # MIT
 hacking>=3.0.1,<3.1.0 # Apache-2.0
 # remove this pyflakes from here once you bump the
 # hacking to 3.2.0 or above. hacking 3.2.0 takes
 # care of pyflakes version compatibilty.
-pyflakes>=2.1.1
 coverage!=4.4,>=4.0 # Apache-2.0
 oslotest>=3.2.0 # Apache-2.0
 stestr>=1.0.0 # Apache-2.0
-docutils>=0.11 # OSI-Approved Open Source, Public Domain
 pycodestyle>=2.5.0 # MIT
 cassandra-driver>=3.21.0
-
-# release notes
-sphinx>=2.0.0,!=2.1.0 # BSD
-reno>=3.1.0 # Apache-2.0
-openstackdocstheme>=2.2.1 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index eb5acdd3..47a8754e 100644
--- a/tox.ini
+++ b/tox.ini
@@ -111,6 +111,8 @@ deps =
   -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 =