From 82d321c6fd8462713ad41dfcf34291ab99d45743 Mon Sep 17 00:00:00 2001
From: yatinkarel <ykarel@redhat.com>
Date: Wed, 13 Apr 2022 20:24:12 +0530
Subject: [PATCH] ensure-sphix: upgrade setuptools in venv

With [1] pip was ensured to be latest, but for
cases like ubuntu bionic which has too old
setuptools(39.0.1) and that doesn't support version
from file, the support only available with
setuptools-39.2.0[2].

This patch proposes to upgrade setuptools
along with pip to support dependencies which
set's version in a file. Other option is to
pass option --use-deprecated legacy-resolver
to pip install or downgrade pip to working version.

This will resolve issue with translation jobs
in neutron which fails during installation of
pyroute2[3].

[1] https://review.opendev.org/c/zuul/zuul-jobs/+/828441
[2] https://github.com/pypa/setuptools/pull/1359/commits/a960ee1c3
[3] https://zuul.openstack.org/builds?job_name=propose-translation-update&project=openstack%2Fneutron

Change-Id: I23475a48fa9cc924962f2f4b5edc7aeb5dd6261c
---
 roles/ensure-sphinx/tasks/main.yaml | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/roles/ensure-sphinx/tasks/main.yaml b/roles/ensure-sphinx/tasks/main.yaml
index bb141869b..d3fd0b3c2 100644
--- a/roles/ensure-sphinx/tasks/main.yaml
+++ b/roles/ensure-sphinx/tasks/main.yaml
@@ -37,14 +37,17 @@
       done
   register: requirements_file
 
-# Ensure we have the latest pip in the sphinx venv, not the system
+# Ensure we have the latest pip and setuptools in the sphinx venv, not the system
 # one.  Older pips don't do things like parse version constraints or
-# rust build flags correctly, and some jobs like the translate jobs
+# rust build flags correctly, setuptools<39.2.0 do not support reading version
+# from file and some jobs like the translate jobs
 # use this environment to install from master requirements.txt that
 # needs this sort of thing to work.
 - name: Setup virtual environment
   pip:
-    name: pip
+    name:
+      - pip
+      - setuptools
     virtualenv: '{{ zuul_work_virtualenv }}'
     virtualenv_command: '{{ ensure_pip_virtualenv_command }}'
     extra_args: '--upgrade'