Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [pde-ui-dev] Re: PDE API tooling

Hi Peter,

> 
> Here's more detail on why that doesn't help.  The big picture is 
> that I'm producing a series of releases.  For each release, I'm 
> producing daily builds, each of which is a candidate for testing.  I
> need the version numbers of the plug-ins in the daily builds to 
> change when their built contents has changed.  Let's say I just 
> shipped release 1 which contains plug-in A version 1.2.3.a and plug-
> in B version 7.8.9.b where plug-in B depends on plug-in A.  Now I 
> start work on release 2, which has not yet shipped.  The developers 
> of plug-in A make an API change and change its version number to 2.
> 0.0.  The developers of plug-in B notice this and make appropriate 
> changes to have it depend on version 2.0.0 of plug-in A.  Daily 
> builds are still happening, and everything is working.  Now the 
> developers of plug-in A change the value of a static final variable 
> that's used by plug-in B.  This is a breaking API change.  However, 
> the plug-in A team has already changed their version number to 
> advertise that they're no longer compatible with the version of 
> plug-in A that shipped in the previous release, so they don't change
> the version number of plug-in A.  The next daily build builds both 
> plug-ins A and B.  This newly built version of B has different 
> contents than the previous version even though its full version 
> number, including the qualifier, hasn't changed. 
> 
> This is the situation I would like to detect. 
> 
> 

So - our tooling does not detect this today. However, I believe we will be 
able to detect this problem. We'll need to analyze the problem a little 
more to determine the best/most efficient way to discover the problem. 

The interesting thing is that plug-in A broke binary compatibility between 
version 1.2.3.a and 2.0.0 (but this was approved). But plug-in A also 
broke compatibility between 2.0.0.a and 2.0.0.b by changing the value of a 
constant (which is probably still an approved change that is just a 
settling/adjustment to the original change).

It feels like we could discover that plug-in A broke compatibility between 
builds and that we need to check all users of the thing that broke for 
potential problems. An "after that fact" discovery of the problem helps, 
but it would be even better to detect the problem before the build :-)

A very interesting problem.

Darin



Back to the top