Hi Erik,
The main problem is that bitten assumes that projects will always have
a single, common, root folder. We're using multiple project roots [1].
Our development server has 4 different library subprojects and a
single main application project. We want the main application to be re-
released every time it or any of the libraries are updated. (We're
developing eclipse plugins. Having a multiple project roots layout is
very common for that domain.)
Currently we are doing what you suggest. We have five different,
duplicate build configurations. However, this is less than ideal for a
few reasons:
- First, it's a maintenance nightmare. I recently had to redirect the
logging of three of the tasks in my build. This meant making 15 total
edits (3x5 configurations). This is error prone. Copying and
configuring build configurations would help, but not much. It would
still be necessary to test all five build configurations each time I
make a small change. So, while I'm in support of that, it only
indirectly affects this issue.
- Second, having multiple build configurations eats up cpu and
bandwidth, even if I take advantage of "waiting for stabilization" and
not building "all revisions" on all 5 builds. Making commits to
multiple projects or across projects will always trigger all builds
that are touched -- because they don't share the "all revision" or
"wait for stabilization" information. Instead, Bitten treats them as
completely independent builds. We're sharing our server and need to
play nice.
- Third, there is other information in these projects that shouldn't
trigger builds (such as documentation) and other projects being
developed by others on the same subversion server, which are not part
of our application. So, while we could reorganize the repository it
would make it harder to share these libraries with others, and while
we could trigger a build on a higher, common path, it would make an
excess of builds that are a result of changes to other, unrelated
projects. Each build takes 30 minutes and is quite CPU intensive, so
that would be bad :-(
Your comment on the development and stable branches is an interesting
point. Clearly, I see them as a different case. But, the 5
configurations are only for the development build. When we start to
build a stable branch as well this will be *another* 5 configurations.
I think this is part of the reasons why I haven't set that up yet:
It's not something I'm looking forward to doing ;-)
I hope that helps to explain the situation.
-- Scott
[1]
http://svnbook.red-bean.com/en/1.5/svn.reposadmin.planning.html#svn.reposadmin.projects.chooselayout
On Dec 17, 8:38 am, "Erik Bray" <
hyugaricd...@gmail.com> wrote: