[openstack-dev] [Nova] Tracking optional requirements

Doug Hellmann doug at doughellmann.com
Mon Jun 22 15:09:14 UTC 2015


Excerpts from Michael Still's message of 2015-06-22 21:05:11 +1000:
> Sure, except where the thing isn't in pip... I just learned tonight
> that the libosinfo thing in the review at the start of this thread is
> a c library and some gobject black magic. I think we want it, but it
> will never work as a pip dependancy. So, I think something human
> readable is still required?

I wonder if a simple list is going to cover that case, since the package
name might vary based on the underlying distro.

I've recently added some features to stevedore that let us inject
driver-specific documentation into sphinx-based manuals. So the
drivers could document their dependencies in their class docstrings,
and the results can show up in the nova docs in the short term, and
the install guide(s) in the longer term when that conversion work
is done. See http://docs.openstack.org/developer/stevedore/sphinxext.html
and http://docs.openstack.org/developer/oslo.messaging/drivers.html
for an (admittedly skimpy) example.

Doug

> 
> Cheers,
> Michael
> 
> On Mon, Jun 22, 2015 at 8:45 PM, Sean Dague <sean at dague.net> wrote:
> > On 06/22/2015 06:37 AM, Michael Still wrote:
> >> Hi,
> >>
> >> https://review.openstack.org/#/c/149625 made me think about optional
> >> requirements for nova. Some hypervisor drivers have requirements that
> >> are either only needed for their driver, or are optional to their
> >> driver. Examples include the ironic driver depending on the ironic
> >> client, and the review above which wants to add an optional dependancy
> >> on libosinfo.
> >>
> >> In general we keep these things out of requirements.txt because we
> >> don't want to force everyone in the world to install the ironic client
> >> in order to run their non-ironic hypervisor node.
> >>
> >> What I am pondering is that I think its a horrible user experience to
> >> not document these optional dependancies better. I feel like we need
> >> some sort of optional-requirements.txt file in the repo which has a
> >> (human readable) list of the optional dependancies of each driver and
> >> what those dependancies give you if installed.
> >>
> >> What would people think of such a thing? Is there a better way of
> >> expressing this?
> >
> > I believe that Robert and other oslo folks are working on a way to do
> > this with environment markers some how -
> > https://github.com/dstufft/pip/commit/e498d83db191ccd7fe7c1c2e4f9ec201787d1257
> >
> >
> > Because you don't really want optional-requirements.txt. You want:
> >
> >> pip install nova nova[libvirt] nova[mysql]
> >
> > (or something... hand wave on call out)
> >
> >         -Sean
> >
> > --
> > Sean Dague
> > http://dague.net
> >
> > __________________________________________________________________________
> > OpenStack Development Mailing List (not for usage questions)
> > Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 



More information about the OpenStack-dev mailing list