[openstack-dev] [stable][keystone] python3 goal progress and tox_install.sh removal

Doug Hellmann doug at doughellmann.com
Thu Sep 6 21:25:53 UTC 2018

Excerpts from Lance Bragstad's message of 2018-09-06 15:01:01 -0500:
> I'm noticing some odd cases with respect to the python 3 community goal
> [0]. So far my findings are specific to keystone repositories, but I can
> imagine this affecting other projects.
> Doug generated the python 3 reviews for keystone repositories, including
> the ones for stable branches. We noticed some issues with the ones proposed
> to stable (keystoneauth, python-keystoneclient) and master
> (keystonemiddleware). For example, python-keystoneclient's stable/pike [1]
> and stable/ocata [2] branches are both failing with something like [3]:
> ERROR: You must give at least one requirement to install (see "pip help
> install")
> Both of those branches still use tox_install.sh [4][5]. Master,
> stable/rocky, and stable/queens do not, which passed fine. It was suggested
> that we backport patches to the failing branches that remove tox_install.sh
> (similar to [6]). I've attempted to do this for python-keystoneclient,
> keystonemiddleware, and keystoneauth.
> The keystonemiddleware patches specifically are hitting a weird case, where
> they either fail tests due to issues installing keystonemiddleware itself,

The "installing itself" problem is related to the fact that the library
under test is also listed in the constraints list and the deps list in
tox.ini contains ".[audit_notifications]", which tries to install the
library under test while the library is constrained.

The simplest thing to do to fix that is probably just add those
test dependencies to test-requirements.txt.

> or pass tests and fail the requirements check. I'm guessing (because I

The requirements check looks legit:

  Requirement for package stestr has no lower bound

And I indeed don't see a >= value for stestr in the
test-requirements.txt file.

> don't really fully understand the whole issue yet) this is because
> keystonemiddleware has an optional dependency for tests and somehow the
> installation process worked with tox_install.sh and doesn't work with the
> new way we do things with pip and zuul.
> I've attempted to remove tox_install.sh using several approaches with
> keystonemiddleware master [7]. None of which passed both unit tests and the
> requirements check.
> I'm wondering if anyone has a definitive summary or context on
> tox_install.sh and removing it cleanly for cases like keystonemiddleware.
> Additionally, is anyone else noticing issues like this with their stable
> branches?
> [0] https://governance.openstack.org/tc/goals/stein/python3-first.html
> [1] https://review.openstack.org/#/c/597685/
> [2] https://review.openstack.org/#/c/597679/
> [3]
> http://logs.openstack.org/85/597685/1/check/build-openstack-sphinx-docs/4f817dd/job-output.txt.gz#_2018-08-29_20_49_17_877448
> [4]
> https://git.openstack.org/cgit/openstack/python-keystoneclient/tree/tools/tox_install.sh?h=stable/pike
> [5]
> https://git.openstack.org/cgit/openstack/python-keystoneclient/tree/tools/tox_install.sh?h=stable/ocata
> [6] https://review.openstack.org/#/c/524828/3
> [7] https://review.openstack.org/#/c/599003/

More information about the OpenStack-dev mailing list