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

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


Doug,

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>
wrote:

>
>
> 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,

clayg

1. https://github.com/openstack/nova/blob/master/setup.cfg
2.
https://github.com/openstack/oslo.versionedobjects/blob/master/setup.cfg#L25
-------------- 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