[Zope3-dev] package branches

Gary Poster gary at zope.com
Mon Jul 2 15:07:36 EDT 2007


On Jul 2, 2007, at 9:42 PM, Jim Fulton wrote:

Thanks for reply.  quick notes:

> I think that in *technically* depending on a newer version  
> introduces a backward incompatibility. (It's like strengthening a  
> precondition of a method.)  This is especially a problem if people  
> are specifying upper limits for their requirements, which is only  
> necessary if there backward incompatible changes.  ZODB 3.9 won't  
> be backward incompatible in any meaningful way.
>
> ZODB 3.9, like 3.8 *is* backward incompatible because it drops  
> features that we agreed, as a community, to drop. Arguably, ZODB  
> 3.8 should have been ZODB 4 and ZODB 3.9 should be ZODB 5, but I  
> don't think we want to do that.
>
> So, let''s say, as a practical matter, that ZODB 3.9 is backward  
> compatible with 3.8.  We don't know that 3.9 is ready for use yet.   
> It's possible  that there have been bugs introduced in 3.9 (or soon  
> will be) that will be discovered and fixed during the beta cycle.   
> Many people rightly don't want to depend on 3.9 until it has been  
> released in a final form.
>
> Bernd has suggested a policy that I think we should adopt, which is  
> that a package's release status should be no higher than the status  
> of it's dependencies. So, for example, if A depends on a dev  
> version of B, then the version of A that has this dependency should  
> be a dev version.  A should not be able to go to alpha, or beta, or  
> final without a corresponding advance of its dependency on B.

Unless I misunderstand, this is what I did, actually, and Bernd (and  
probably others) didn't like it.  That is, I have a zope.org/ 
distributions release of zope.app.keyreference 3.5 dev and ZODB 3.9  
dev, and I said that keyreference 3.5 depended on ZODB 3.9 dev.

I like the proposal you and Benji came up with.  In that case, would  
what I released (except that I used "-dev" rather than "dev") be  
correct?

...

>> - For this particular problem, I wish my ZODB changes could go  
>> into ZODB 3.8.  As I mentioned in the commit message, the change  
>> includes one bug fix for a potentially serious problem that could  
>> cause data integrity issues;
>
> This could go into 3.8.
>
>
>> one new feature (more informative PersisntentReferences) that  
>> supports an arguable zope.app.keyreference bugfix (conflict  
>> resolution breaks with persistent key references;
>
> Can you remind me or point me at something that describes in more  
> detail?

ZODB/ConflictResolution.txt line 226 ff.

> Does zope.app.keyreference work as well as it does now without this?

I haven't tested it, but yes, I believe it should.

>
>> and one feature (conflict resolution now supports multi databases).
>
> This is a bug fix and could go into 3.8.
>
>>   Then I'd argue that the zope.app.keyreference change could go  
>> into 3.4.
>
> Are we really talking about 3.4?

Yes, zope.app.keyreference.  "Not breaking BTree conflict resolution"  
could be cast pretty easily as a bugfix.

>
>> - Even if people agreed with me for the previous bullet, that  
>> doesn't make this kind of problem go away.
>>
>> - Also for this particular problem, I suppose I could remove the  
>> dependency on ZODB 3.9 and add a test to show that it should still  
>> "work" (as well as it did before at least) with ZODB 3.8  
>> persistent references.  I'd really rather not, of course, but I  
>> can do it in the next week and a half.  I guess it would still be  
>> "3.5" but it wouldn't depend on 3.9 (...except to actually have  
>> any improvements over 3.4!)
>
> I think you should do this or make your version of  
> zope.app.keyreference a dev version.

OK, I'll see what I can do

...

>> My current opinion is that version numbers are the best solution  
>> of a bad lot.
>
> I think we really need a way to limit the algorithm for finding  
> distributions to avoid immature (releases).
>
> I just brainstormed this with Benji and we both think that it would  
> be enough to have an option that says: "I prefer final versions"  
> meaning that we always want the latest final version that satisfies  
> our requirements, if there is one.  Ideally, this would be a  
> setuptools option, however, this would be a new feature and I don't  
> think we'll see new setuptools features any time soon.  I could add  
> this as an option to buildout.

sounds good to me.  Being able to override it for individual packages  
would be important for me.

Gary



More information about the Zope3-dev mailing list