[Python-Dev] Re: patchlevel.h

Guido van Rossum guido@python.org
Fri, 26 Oct 2001 14:56:20 -0400


> > When the release branch is made there's usually a flurry of minor
> > fixes, and these are almost guaranteed to break something on the
> > mac. Tiny things, like missing casts, but breaks nonetheless.
> 
> While this may happen in principle, and out of curiosity: Was this a
> problem in 2.2b1 also? Looking at the changes made on the 2.2b1
> release branch, I see that a total of 7 files was changed. Except for
> patchlevel.h, and the \n\ fix on socketmodule.c, there were no changes
> to C code.

What's more common is actually a flurry of checkins just *before* the
release branch is made (say in the last two days).  These often
include a somewhat hasty commit of a project that's valuable to have
but introduces new bugs -- either Mac-specific or generic.  The patch
that introduced the missing \n\ problem was an example of this.

I don't know what to do about this.  Branching several days earlier
doesn't prevent it, because usually there's a really good reason to
copy the last-minute changes into the release branch.  (We don't have
the problem that some other projects appear to have, which is that
there's a lot of tentative development on the trunk -- then it would
make sense to branch earlier, but we tend to use the patch manager for
experiments.)

> It's just that I think very strict principles must be applied for the
> final release. If that means that the 2.2 release can't go without ok
> from you (or somebody else who has produced MacOS 9 binaries), I think
> we should add that to the release procedure. That check would be to
> avoid show-stopper bugs only, of course - anything complex needs to be
> detected long before the final release.

I think that for the final release we should definitely attempt this.
Hopefully the speed and quality of change will reduce closer to the
final release.  Also, the release candidate should help.

Jack, We'll try to work with you.  Barry, please add something to this
effect in the release procedure PEP (hold up the *final* release until
Jack approves or until we lose patience).

--Guido van Rossum (home page: http://www.python.org/~guido/)