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 <d...@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
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev