[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