Bug fix releases
Aahz Maruch
aahz at panix.com
Sat Mar 3 16:55:28 EST 2001
In article <mailman.983646726.27322.python-list at python.org>,
Guido van Rossum <guido at digicool.com> wrote:
>Aahz writes:
>>
>> I think so, yes, on that latter clause. I think perhaps it wasn't clear
>> at the time, but I believe that much of the yelling over "print >>" was
>> less over the specific design but because it came so close to the
>> release of 2.0 that there wasn't *time* to sit down and talk things
>> over rationally.
>
>In my eyes the issues are somewhat different: "print >>" couldn't
>possibly break existing code; nested scopes clearly do, and that's why
>we decided to use the __future__ statement.
>
>But I understand that you're saying that the community has grown so
>conservative that it can't stand new features even if they *are* fully
>backwards compatible.
Then you understand incorrectly. There's a reason why I emphasized
"*time*" up above. It takes time to grok a new feature, time to think
about whether and how we should argue in favor or against it, time to
write comprehensible and useful arguments. In hindsight, I think you
probably did make the right design decision on "print >>", no matter how
ugly I think it looks. But I still think you made absolutely the wrong
decision to include it in 2.0.
>So that relegates us at PythonLabs to a number of things: coding new
>modules (boring), or trying to improve performance of the virtual
>machine (equally boring, and difficult to boot), or fixing bugs (did I
>mention boring? :-).
>
>So what can we do for fun? (Besides redesigning Zope, which is lots
>of fun, but runs into the same issues.)
Write new versions of Python. You've come up with a specific protocol
in a later post that I think I approve of; I was trying to suggest a
balance between lots of grunt work maintenance and what I see as
perpetual language instability in the absence of any bug fix releases.
>Your math at first confused the hell out of me, but I see what you
>mean. You want us to spend time on 2.0.1 which should be a bugfix
>release for 2.0, while at the same time working on 2.1 which is a new
>feature release.
Yup. The idea is that because it's always an N and N-1 pair, the base
code is the same for both and applying patches to both should be
(relatively speaking) a small amount of extra work. Most of the work
lies in deciding *which* patches should go into N-1.
>Guess what -- I am secretly (together with the PSU) planning a 2.0.1
>release. I'm waiting however for obtaining the ownership rights to
>the 2.0 release, so we can fix the GPL incompatibility issue in the
>license at the same time. (See the 1.6.1 release.) I promise that
>2.0.1, unlike 1.6.1, will contain more than a token set of real
>bugfixes. Hey, we already have a branch in the CVS tree for 2.0.1
>development! (Tagged "release20-maint".)
Yay! (Sorry, I'm not much of a CVS person; the one time I tried using
it, I couldn't even figure out where to download the software. Call me
stupid.)
>We could use some checkins on that branch though.
Fair enough.
>> This means that each feature-based release gets one-and-only-one pure
>> bugfix release. I think this will do much to promote the idea of Python
>> as a stable platform for application development.
>
>Anything we can do to please those republicans! :-)
<grin>
>> There are a number of ways I can see this working, including setting up
>> a separate project at SourceForge (e.g. pythonpatch.sourceforge.net).
>> But I don't think this will work at all unless the PythonLabs team is at
>> least willing to "bless" the bugfix release. Uncle Timmy has been known
>> to make snarky comments about forever maintaining 1.5.2; I think this is
>> a usable compromise that will take relatively little effort to keep
>> going once it's set up.
>
>With the CVS branch it's *trivial* to keep it going. We should have
>learned from the Tcl folks, they've had 8.NpM releases for a while.
I'm suggesting having one official PythonLabs-created bug fix release as
being a small incremental effort over the work in the feature release.
But if you want it to be an entirely community-driven effort, I can't
argue with that.
My one central point is that I think this will fail if PythonLabs
doesn't agree to formally certify each release.
>> I think one key advantage of this approach is that a lot more people
>> will be willing to try out a beta of a strict bugfix release, so the
>> release N bugfixes will get more testing than they otherwise would.
>
>Wait a minute! Now you're making it too complicated. Betas of bugfix
>releases? That seems to defeat the purpose. What kind of
>beta-testing does a pure bugfix release need? Presumably each
>individual bugfix applied has already been tested before it is checked
>in!
"The difference between theory and practice is that in theory, there is
no difference, but in practice, there is."
I've seen too many cases where a bugfix introduced new bugs somewhere
else. Even if "tested", there might be a border case where an
unexpected result shows up. Finally, there's the issue of system
testing, making sure the entire package of bugfixes works correctly.
The main reason I suggested two betas was to "lockstep" the bugfix
release to the next version's feature release.
>Or are you thinking of adding small new features to a "bugfix"
>release? That ought to be a no-no according to your own philosophy!
That's correct. One problem, though, is that sometimes it's a little
difficult to agree on whether a particular piece of code is a feature or
a bugfix. For example, the recent work to resolve case-sensitive
imports could be argued either way -- and if we want Python 2.0 to run
on OS X, we'd better decide that it's a bugfix. ;-)
>> If there's interest in this idea, I'll write it up as a formal PEP.
>
>Please do.
Okay, I'll do it after the conference. I've e-mailed Barry to ask for a
PEP number.
--
--- Aahz (Copyright 2001 by aahz at pobox.com)
Androgynous poly kinky vanilla queer het <*> http://www.rahul.net/aahz/
Hugs and backrubs -- I break Rule 6
Nostalgia just ain't what it used to be
More information about the Python-list
mailing list