← Back to team overview

openstack-poc team mailing list archive

Re: [Openstack] proposal for policy around and management of client libraries


Thanks for the summary on this topic, Monty. Comments inline

On Mon, 2011-11-07 at 10:53 -0800, Monty Taylor wrote:
> Dealing with the client libraries has become a little bit of a tricky
> subject, which is both lacking consistency and direction - but is kind
> of essential to the project. (a service without a client library isn't
> nearly as useful) At UDS this past week, Joe Heck, Jim Blair and I sat
> down for a while and worked through a bunch of the issues and would like
> to propose the following:
> - Each project that exposes an API should have a separate client library
> project. For instance, python-novaclient, python-glanceclient, etc.

I'd prefer to name the clients based on the API that they talk, not the
name of the reference implementation project. So, I'd prefer this:

Client library that speaks the OpenStack Images API:

Reference implementation of OpenStack Images API server:

That way, it's clear from the client library package name that:

a) It's a client library for an OpenStack API
b) The client isn't tied to the reference implementation server(s)

> - Each of these projects will have its own top-level git repo and be
> managed by gerrit just like a core project.


> - The python-*client project will be under the purvue of the PTL for the
> main project (mainly so that we don't have an explosion of PTLs all of a
> sudden)


> - Each client library project will release milestones and final releases
> on the same schedule as the rest of the core projects.

Agree with notmyname on questioning why the above is necessary, or even
advisable, considering a true client library package only needs to
change when an API changes, not when a server-side reference
implementation changes.

> - The client libraries will release directly to PyPI at final release
> time. If we do this, releasing the need to release main core projects to
> PyPI is obviated (which is good, as we do not expect anyone to actually
> install a running OpenStack from PyPI - but it is reasonable to expect
> people to want to use client libraries from PyPI)

w00t. MUCH needed. Can we get this done this week? ;)

> - OpenStack projects that need to depend on these will reference the git
> repo of the project in their tools/pip-requires file. This should take
> care of depends for developers. Normal installation depends can be taken
> care of by distro packagers as usual.



> Finally, as we're on the cusp of rolling out some integration-test
> gating of trunk, it's important that we can also gate all of the
> components that are used as a part of that gating. (would suck if the
> client lib being used to test broke all of a sudden)


> We'd love to get a PPB vote on this approach, and if people consent
> begin to implement it. Glance needs to split its client lib out, and
> keystone and nova client libs need to get moved to gerrit and the
> openstack org.

Also agree with notmyname on this one... I don't think the PPB needs to
be involved in this.