[Zope-dev] Re: Stable / Development branches?

Martijn Faassen faassen at infrae.com
Mon Jun 19 10:56:16 EDT 2006


Chris Withers wrote:
> Martijn Faassen wrote:
>>> +1
>>
>> Extending the maintenance period for older branches indeed sounds like 
>> a good idea.
> 
> Hang on, that makes things even worse for the already-stressed 
> developers though. The branches there are combined with the longer 
> they're stable for gives you the "developer stress".

Yes. This is all dependent on the assumption that there are developers 
interested in maintaining the older versions. If these developers do not 
exist, we have a problem.

It's clear that the picked up speed of development of Zope 2 is 
stressful for developers at some point. No development of Zope 2 is bad 
for the platform, and thus stressful for developers on the longer run 
who will either have to learn something new, or have to maintain a 
"frozen" Zope 2 all by themselves.

I think we've concluded a number of things:

* some developers (Andreas in particular) do not consider it a huge 
problem to keep maintaining an older version for some time longer, if 
the fixes are relatively simple to apply.

* we really want to be a bit more careful with deprecating things. We 
don't want to deprecate code in the transition from 2.8.4 to 2.8.5, for 
instance, only with feature releases.

Perhaps these two points already help us go into the right direction.

The Five model of establishing new code in parallel to the existing Zope 
2 code was pretty succesful in not breaking stuff. Perhaps we should see 
whether we can apply this more often.

On the other hand, the Five model of not changing the core also has 
serious limitations. Some things Five is doing now are really dependent 
on some core changes, and would be very hard to accomplish without them. 
In addition, we're also interested in making larger bits of Zope 2 work 
with Zope 3 code so we can stop maintaining two code bases. This 
inevitably causes pain. I think the pain is necessary.

The pain should be kept under control:

* predictable pain. Predictable releases. Predictable deprecation 
policy. Good communication of direction. I think we've been reasonable 
at this.

* make it clear that pain leads to gains. We should communicate what we 
*win* by making a change. Sometimes a change only is good for the Zope 
maintainers, but often there are also potential neat things for Zope 2 
developers. We should let them know. I think we've had some good 
advocates for this, but perhaps we should have a clear location on the 
zope website :) for this.

* make it clear how to make the pain go away. We should have better 
documentation describing what a developer should do during an upgrade to 
a new Zope version. I think we can do a lot better at this.

* optional buy-in pain. Follow the Five model where new code is 
developed in parallel to the existing codebase, and you can opt into it 
or stick with the old system. Sometimes this isn't possible. At other 
times it's mostly a delaying action, but that might be useful 
nonetheless. I think we've balanced this reasonably, but unfortunately 
things like this are just not possible forever, as there's a maintenance 
cost.

* soften the pain. If we can afford it, a longer maintenance period for 
the Zope 2 platform might be nice. Andreas is sounding very friendly 
about this, so that's cool. :)

Regards,

Martijn



More information about the Zope-Dev mailing list