[openstack-dev] making the dev toolchain easier to bring together

Robert Collins robertc at robertcollins.net
Wed Nov 14 01:22:10 UTC 2012


At the moment its a bit of a black art getting setup so that
./run_tests.sh will work in e.g. nova.

(For instance, you need python-dev on Ubuntu, and there isn't, AFAICT,
any documentation of that other than group-knowledge).

I'd like to encode this stuff in a repeatable form, so that one can
run some hypothetical tool to get setup for developing on nova, or
glance, or ...; with the knowledge about what is needed localised to
the particular codebase (so that having pristine environments is
easy).

As a strawman:
 - pull the devstack code for interpreting operating system package
dependencies out of devstack into an oslo tool
 - create directories under tools/ in-tree that contain appropriate
lists for the tree, split into three groups:
   - build (enough to make an egg for redistribution, no more)
   - test (needed to run tests)
   - use (needed to use this)

The split of three is needed to deal with circular dependencies should
they arise (you use build to build eggs for an arbitrary point in the
cycle, then use test for everything else, and when you circle around,
use the tested elements for the thing you just built to start with).

Then to get going on (say) nova, you would:
 install the common oslo tool
 clone nova
 run oslo-os-deps install # or whatever we call it
 ./run_tests.sh
 $profit

This would also (if desired) allow shrinking this aspect out of devstack.

If this sounds good, I'll look closer at the devstack code to see if
its sensible to factor it out, or do something similar but parallel.

-Rob

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



More information about the OpenStack-dev mailing list