[openstack-dev] [Nova][Deployers] Optional, platform specific, dependancies in requirements.txt

Matt Riedemann mriedemos at gmail.com
Thu Apr 12 00:45:44 UTC 2018


On 4/11/2018 5:09 PM, Michael Still wrote:
> 
> https://review.openstack.org/#/c/523387 proposes adding a z/VM specific 
> dependancy to nova's requirements.txt. When I objected the counter 
> argument is that we have examples of windows specific dependancies 
> (os-win) and powervm specific dependancies in that file already.
> 
> I think perhaps all three are a mistake and should be removed.
> 
> My recollection is that for drivers like ironic which may not be 
> deployed by everyone, we have the dependancy documented, and then loaded 
> at runtime by the driver itself instead of adding it to 
> requirements.txt. This is to stop pip for auto-installing the dependancy 
> for anyone who wants to run nova. I had assumed this was at the request 
> of the deployer community.
> 
> So what do we do with z/VM? Do we clean this up? Or do we now allow 
> dependancies that are only useful to a very small number of deployments 
> into requirements.txt?

As Eric pointed out in the review, this came up when pypowervm was added:

https://review.openstack.org/#/c/438119/5/requirements.txt

And you're asking the same questions I did in there, which was, should 
it go into test-requirements.txt like oslo.vmware and 
python-ironicclient, or should it go under [extras], or go into 
requirements.txt like os-win (we also have the xenapi library now too).

I don't really think all of these optional packages should be in 
requirements.txt, but we should just be consistent with whatever we do, 
be that test-requirements.txt or [extras]. I remember caring more about 
this back in my rpm packaging days when we actually tracked what was in 
requirements.txt to base what needed to go into the rpm spec, unlike 
Fedora rpm specs which just zero out requirements.txt and depend on 
their own knowledge of what needs to be installed (which is sometimes 
lacking or lagging master).

I also seem to remember that [extras] was less than user-friendly for 
some reason, but maybe that was just because of how our CI jobs are 
setup? Or I'm just making that up. I know it's pretty simple to install 
the stuff from extras for tox runs, it's just an extra set of 
dependencies to list in the tox.ini.

Having said all this, I don't have the energy to help push for 
consistency myself, but will happily watch you from the sidelines.

-- 

Thanks,

Matt



More information about the OpenStack-dev mailing list