Guidance on working with a multi-level project in bzr
Patrick van der Velde
petrikvandervelde at gmail.com
Mon Apr 12 06:49:20 BST 2010
Hi All
I've recently started working a project which contains multiple
modules. The goal is to be able to work on each of these modules
independently. In order to do so I'd like to create a separate bzr
repository for each module, however I'm not entirely sure how to
approach this. I know that there are several plugins that can assist
me with this work (bzr-externals, scmproject, nested trees).
Unfortunately I'm not entirely sure what the best way is to use these
plugins.
Currently my project directory structure looks like (where <D> is
directory and <F> is file):
<D> design
<D> doc
<D> install
<D> modules
<D> core
<D> plugins
<D> ui
<D> utils
<D> tools
<F> build.ps1
The module directories contain the individual module projects. Each
module will have at least one (but possibly more, like plugins)
directory sets like:
<D> bin
<D> config
<D> design
<D> doc
<D> install
<D> lib
<D> resource
<D> src
<D> templates
<D> tools
The tools, lib and templates directories may contain elements that are
shared between multiple modules (e.g. the binaries for a unit testing
framework) so I would like to 'extract' those and I was thinking of
using bzr-externals for that purpose.
Also some modules need other modules to work. e.g. the core module
needs a version, not necessarily the latest version, of the utils
module. I could compile the utils module and store the binaries in an
external repository and link it though a bzr-externals reference or I
could reference the entire project. However I'm not sure which is
best.
Finally I would like to run a continuous integration server (Hudson)
on both the individual sub-projects and the full version of the
project. I suspect I'll need scmproj for this although I could well be
wrong.
So now I'm wondering if my proposed setup (use bzr-externals for
shared 'libraries' and maybe use scmproj for the overall projects)
will work? Also if anybody has any suggestions / hints / tips for
setting up a project like this from the bzr point of view then I would
love to hear about it.
With kind regards
Patrick
More information about the bazaar
mailing list