[openstack-dev] Automation around binary dependencies

Robert Collins robertc at robertcollins.net
Mon Jun 10 08:50:41 UTC 2013


We have a hole in our otherwise pretty robust dependency management :
binary packages. At the moment, the most reliable way to get a dev
environment working is to either copy from a wiki page like
https://wiki.openstack.org/wiki/DependsOnUbuntu, or to run devstack
once :).

This is something I've said before we should automate... I was
starting to look at tempest in the weekend, and yet again running up
the curve of 'what packages are needed for this specific project',
when I hit my tolerance threshold and thus, rage-fueled-code.

https://github.com/rbtcollins/bindep is a draft project which would
allow capturing in machine readable form the dependencies needed for
our CI environments, for developers, and for binary deployment. It
*isn't* a replacement or wrapper for tools like dpkg and rpm : there
are good tools for that already. What it would let us do is record
within each project the dependencies the project actually has for each
use case : no more patching devstack to educate it about new binary
dependencies.

I think this could live very happily as an oslo component, like pbr
does. It provides a small CLI, and a Python library which can be used
from things like pbr or CI scripts, if they want to layer on it.

As a for-instance, this might be the other-requirements.txt for tempest:
python-tox [test]
python-dev
libxslt1-dev
libxml2-dev
libmysqlclient-dev
git [test]
postgresql-server-dev-all

The README.rst I've written is probably a better way to capture this -
so - https://github.com/rbtcollins/bindep/blob/master/README.rst

-Rob
-- 
Robert Collins <rbtcollins at hp.com>
Distinguished Technologist
HP Cloud Services



More information about the OpenStack-dev mailing list