Uggh, digging up the details behind this was pretty terrible ... There is clearly some underlying issue we're papering over here ... but nowhere do I see any analysis of that underlying issue recorded for posterity
For example, in https://review.openstack.org/71589 "Having the sphinx theme in the same namespace package as the production code has been causing issues with devstack installations." The thread linked above ends with http://lists.openstack.org/pipermail /openstack-dev/2013-December/023002.html "Basically you can very easily get yourself in a situation where *just enough* of the distro package is left behind that pip thinks its there, so won't install it, but the python loader doesn't, so won't work. Then much sadness." Or in https://review.openstack.org/#/c/65414/1//COMMIT_MSG "After merging https://review.openstack.org/64226 devstack gate started failing." Oh, now I'm getting somewhere http://eavesdrop.openstack.org/irclogs /%23openstack-infra/%23openstack-infra.2014-01-08.log <dhellmann> fungi: the tl;dr is that when oslo.config is installed globally with "pip install -e" and oslo.sphinx is installed in a virtualenv with "pip install" python in the virtualenv can't find oslo.config ... <dhellmann> sdague: I think bnemec worked out that it's caused by a combination of pip install -e and something else in the same namespace package not being installed in that mode <dhellmann> sdague: alternatives to fix it seem to be install oslo.sphinx with pip install -e or change its package name <dhellmann> sdague: or don't install it at all, of course <bnemec> dhellmann: sdague: Right, the problem is that we pip install -e oslo.config in the system site packages, then pip install oslo.sphinx in the venv. <bnemec> That combination results in oslo.config being unavailable in the venv. <dhellmann> fungi: common namespace, split, *and* installed with .egg-link in some cases (I think) <dstufft> namespaces don't play well with -e <dhellmann> so for normal production oslo libs, we'd just install them from devstack with pip install -e and be done <dhellmann> but because oslo.sphinx is not a production lib, that's not necessarily the best answer <dhellmann> we should probably just reserve the oslo namespace for production libraries, and rename the theme package <dhellmann> well, it could also be said that if devstack didn't use that -e option this wouldn't be an issue, so it's a combination of all of it And, at last, I find Ben's email ! http://lists.openstack.org/pipermail /openstack-dev/2014-January/023759.html The problem seems to be when we pip install -e oslo.config on the system, then pip install oslo.sphinx in a venv. oslo.config is unavailable in the venv, apparently because the namespace package for o.s causes the egg-link for o.c to be ignored. Pretty much every other combination I've tried (regular pip install of both, or pip install -e of both, regardless of where they are) works fine, but there seem to be other issues with all of the other options we've explored so far. We can't remove the pip install -e of oslo.config because it has to be used for gating, and we can't pip install -e oslo.sphinx because it's not a runtime dep so it doesn't belong in the gate. Changing the toplevel package for oslo.sphinx was also mentioned, but has obvious drawbacks too. And then this pip bug: https://github.com/pypa/pip/issues/3 ** Also affects: oslo.messaging Importance: Undecided Status: New ** Changed in: oslo.messaging Importance: Undecided => High ** Changed in: oslo.messaging Status: New => Fix Committed ** Changed in: oslo.messaging Assignee: (unassigned) => Dirk Mueller (dmllr) ** Description changed: http://lists.openstack.org/pipermail/openstack- dev/2013-December/022586.html We've decided to rename oslo.sphinx to oslosphinx. This will require small changes in the doc builds for a lot of the other projects. + + The problem seems to be when we pip install -e oslo.config on the + system, then pip install oslo.sphinx in a venv. oslo.config is + unavailable in the venv, apparently because the namespace package for + o.s causes the egg-link for o.c to be ignored. -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1277168 Title: having oslo.sphinx in namespace package causes issues with devstack Status in OpenStack Compute (Nova): Confirmed Status in Oslo - a Library of Common OpenStack Code: In Progress Status in Messaging API for OpenStack: Fix Committed Status in Tempest: New Bug description: http://lists.openstack.org/pipermail/openstack- dev/2013-December/022586.html We've decided to rename oslo.sphinx to oslosphinx. This will require small changes in the doc builds for a lot of the other projects. The problem seems to be when we pip install -e oslo.config on the system, then pip install oslo.sphinx in a venv. oslo.config is unavailable in the venv, apparently because the namespace package for o.s causes the egg-link for o.c to be ignored. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1277168/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp