Migration to Python 2.4
Migration to Python 2.4
Status
Author
Problem/Proposal
We want to require Python 2.4 for Zope 3. Thus, the next release -- Zope 3.2 -- would require Python 2.4.
Discussion
Python 2.4 has been out for quite some time now. In Zope 3 we are already supporting Python 2.4 but do not require it. And this is okay for the Zope 3.1 release. But we should rethink this decision for Zope 3.2. Python 2.3 is no longer a maintained version of Python.
Technically, there is nothing in Zope 3 that stops us from doing the switch. The biggest issue here seems to be the desire to have synced releases of Zope 3 and Zope 2, where the latest release of Zope 3 is included in Zope 2. That means that we have to be sensitive to Zope 2 as well. Since Zope 2 requires a serious security audit for each new Python version, a switch is not as easy for them.
During the initial discussion on the mailing list, Martijn suggested that Zope 2's Zope 3 should be always trailing one release behind, so that developers have more time to adjust to new features. In this case, the developers would have 10 months instead of 4 to do the security audit. Martijn also noted that this gives Five developers more time to hook in new features from Zope 3 into Zope 2. This makes perfect sense to me; what good does it do for Zope 2 developers, if they cannot use a new feature, because Five does not support it?
Jim argued that if we are trailing by one Zope 3 release, we have to support more releases. I don't think this is necessarily true, since we support the last stable release anyways.
Advantages
- Make use of new syntax, such as decorators.
- Several add-on packages, such as
zope.formlibandzope.testbrowser, require already Python 2.4 and could be included in the release. Otherwise their inclusion would depend on a backport. - It is very likely that many other applications that are used by Zope will require or already require Python 2.4. If we want to stay up-to-date, we need to require Python 2.4 as well.
- Most Linux distributions now ship with Python 2.4 by default. We make the packagers' lives much easier by staying current.
Risks
- If the Zope 2 developers cannot complete a security audit for Python 2.4 this fall, Zope 2.9 must either ship with Zope 3.1 (as Martijn advocates) or this proposal is not completed and Python 2.3 will still be required.
Advantage decimal --Frerich, 2005/08/01 11:21 EST reply
With Python 2.4 we get a real decimal type
Why Zope 2.9 should ship with Zope 3.1 --philikon, 2005/08/01 13:14 EST reply
a) because Zope 2.9 shouldn't wait for Zope 3.2
Zope 3 and Five have spurred Zope 2 development again. There are quite a couple of changes people would like to make to the Zope 2 core to drive the convergence even further. This most importantly includes Zope3-style i18n support. Putting them into Zope 2.8 violates the no-new-features-in-minor-release rule; making people wait for Zope 3.2 in order to be able to release them in Zope2 core encourages even more monkey-patches than Five already has.
b) because we get to drop support for X3.0 sooner
By including X3.0 into Zope 2.8, we've committed ourselves to maintaining that branch. By "we" I'm talking about the Zope community in general. The sooner we switch Zope 2 to Zope 3.1, the sooner we get to drop support for X3.0.
So, in conclusion, I'm all for making 3.2 require Python 2.4. I agree a 100% with all advantages listed already (though I see limited scope for the Decimal type in most web applications ;)).
Re: Why Zope 2.9 should ship with Zope 3.1 --philikon, 2005/08/01 13:48 EST reply
Note that this doesn't mean future Zope 2 releases never can use the most current Zope 3 release. My comment is only about Zope 2.9 and whether it should ship with Zope 3.1 or not. Basically, I'm only advocating to release Zope 2.9 earlier as planned (and earlier as Zope 3.2) and then possibly fall back (or actually get started with) a synchronized release schedule for Zope 2 and Zope 3 with Zope 2.10 and 3.2.
2.9 won't have to wait for 3.2. --jim, 2005/08/02 08:04 EST reply
Zope 2.9 and 3.2 willl be released simultaniously in December 2005.
Starting with Zope 2.9 and 3.2, Zope 2 and Zope 3 releases will be
synchronized. They will be released every 6 months, in December and
June.
