On Fri, 13 Aug 2004, Stefano Mazzocchi <[EMAIL PROTECTED]> wrote:

> Ok, with two projects is easy, what about three?
> 
>   C -> B -> A
> 
> worked yesterday, but today C is broken and B and A work. Who broke
> the build?
> 
> First of all, is it safe to assume that since A is shielded by B and
> both B and A work, A has no influence on C?

No.

B and C could depend on very different parts of A, even if the
dependency is no direct dependency.  It's rather common that B will
only need stable interfaces of A to compile.  If only the
implementation of A changes, B won't notice it.  If the build process
of C now touches a bug in A's changed implementation, C will break and
it is A's fault.

Consider A = commons-logging, B = httpclient and C's build involves
running httpclient.  C will not depend on commons-logging explicitly,
but inherit it from httpclient.  Now somebody accidentially commits a
change to commons-logging that causes a NullPointerException at
runtime ...

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to