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]
