[openstack-dev] [glance] Removing python-swiftclient from requirements.txt

Clay Gerrard clay.gerrard at gmail.com
Wed Jul 29 02:25:04 UTC 2015


I believe our glance friends are not the only project with some open
questions on dealing with the "required dependency for optional plugin"
use-case.  You've made a recommendation to leverage some python tooling
functionality that I'm not familiar with.  I was hoping I could probe you
to elaborate so I can try and educate myself more?

... inline

On Tue, Jul 28, 2015 at 4:55 PM, Doug Hellmann <doug at doughellmann.com>

> Please set up an "extras" entry for each backend instead of just
> removing the dependencies.  That will signal to users that you know
> what dependencies there are for a backend,

You referenced nova [1], and oslo.versionedobjects [2] for examples - but
I'd be more curious for the documentation if you have any idea where I
might look for it?  Is this a feature of pkg_resources, distutils,
setuptools, pbr?  What exactly does describing dependencies via this
"extras" key afford?

> but that they are optional,
> and still allow someone to do the equivalent of "pip install
> glance[vmware]" or "pip install glance[swift]" to get those
> dependencies.

I'm not familiar with that syntax for pip or it's equivalent!  That sounds
awesome!  Can you do like [extras:<pluginname>] in your setup.cfg and pip
install project[<pluginname>] just works!?  OMGBBQ!

> Nova and oslo.versionedobjects have examples in their
> setup.cfg if you need a template.

Hrm... I'm missing how either one of those setup.cfg's [1, 2] include an
example relevant to this use-case (i.e. required dependency for optional
backend plugin)?

> I didn't mention in the reviews, but this will also make integration
> tests in our gate easier, since you can put ".[vmware]" or ".[swift]" in
> the tox.ini to pull in those dependencies.
Hrm... yes testing.  So that's part "just a new -e" for the tox.ini - but
I'm not quite sure I follow how each environment would specify different
dependencies for the virtualenv?

I hope you can point me to some more information on the subject.

Thank you very much for pushing this out to a wider audience,


1. https://github.com/openstack/nova/blob/master/setup.cfg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150728/5fc5b249/attachment.html>

More information about the OpenStack-dev mailing list