I agree with Mike's point. Given the code structure as it stands we
should be doing a full build before checking changes is. This doesn't
prevent any kind of profile being created for intermediate builds but
on check in we need to ensure that everything works. You will of
course say "but we don't do that sometimes" and I agree however the
point is that we should do it.

Now, could we do things differently?

Firstly is there a way of getting maven to build a module and all the
modules that depend on it (either directly or transitively)? If not
can we generate build files for another system that will do
incremental builds (I remember that we used to have an incremental
builder at some point in the past but I don't know how good it was)

Alternatively we have to take a manual approach. I see the code
separated into a core and the extensions that the core supports. We
could make some rules/profiles for the types of build you need to do
depending on which files you change. For example, core change = build
all while extension change = build the extension and its tests and
samples.

Alternatively, rely more heavily on the contract between core and
extensions so that features can be built independently.

None of this says anything about how the code is released b.t.w. That
is a separate question.

Simon

Reply via email to