[Python-Dev] Simple IDLE issues to commit before Python 2.7.4 release in two weeks on 4/6/2013
Ned Deily
nad at acm.org
Mon Mar 25 22:31:16 CET 2013
In article
<CALZ1apxb0nbcHvGf4_5Hip1bze-xuSPFp_X1GFhJQ8-frqv+jg at mail.gmail.com>,
Todd Rovito <rovitotv at gmail.com> wrote:
> Now the clock is ticking and we have two weeks to get IDLE issues
> pushed into CPython before the final release of 2.7.4. Below is my
> list of low risk issues that would be great to get pushed into
> CPython. I hope this email will encourage CPython Core Developers to
> make the commits or tell us what we can do, like more testing or
> better documentation, to get these issues cleaned up and committed
> before 2.7.4 ships.
Todd,
Thanks for your suggestions and work to improve IDLE and Python, in
general. There has been a lot of discussions recently, including your
PEP proposal. I have not commented on the discussions yet, though I
plan to in the next few days. Unfortunately, it comes at one of the
busiest times for those of us working on releases. Not only is the
2.7.4 release in preparation but 3.2.4rc1 and 3.3.0.rc1 are about to be
announced, all on similar schedules. So just a few comments from my
release team perspective. No doubt, others may have other opinions.
Bugfix releases, like these three, follow an abbreviated version of the
full feature release process, outlined in the developer's guide:
http://docs.python.org/devguide/devcycle.html#stages
For bugfix releases, we typically skip alphas and betas and go right to
the release candidate stage, under the assumption that the criteria used
for commits added to bugfix releases are designed to avoid incompatible
changes and new features, unless explicitly approved for good reasons.
That means that a release candidate is meant to be just that: the final
set of bits that will be released. All of us involved in software
development have our own war stories of how some little last-minute
change caused some unexpected breakage. So the normal expectation is
that, if any change is accepted and cherry-picked after a release
candidate has been published, a new RC cycle will need to happen unless
the release manager decides the change is trivial enough that the risk
is truly minimal, e.g. something like an obvious typo or a doc change.
Certainly the changes proposed here would not normally fit those
criteria.
Also, before the changes could be considered to be cherry-picked for a
release, they need to be applied to the branches first and given some
amount of testing, preferably on all of the major platforms where we
support IDLE: X11, Windows, OS X. So that's what needs to happen next.
There are various developers who have been applying IDLE fixes and now
Roger is able to do so as well (yay!). Once they are in, then the
question of release becomes relevant. There are a couple of possible
scenarios I can see. 1. It's possible that problems will show up in
one or more of the current RCs, necessitating another RC cycle, at which
time the release manager(s) *might* be amenable to cherrypicking one or
more fixes from the current branches. 2. It's also possible (probable,
I hope) that 2.7.5 and/or 3.3.2 will follow relatively quickly after
2.7.4 and 3.3.1. (3.2.4 is expected to be the final 3.2.x bugfix
release before it enters security-only fix mode.) The period since the
last maint releases for 2.7.x and 3.2.x was unusually long, for various
good reasons, so there are about a year's worth of fixes going out for
them this time, thereby raising the likelihood that new problems will be
found requiring a fix in a new bugfix release. Plus there are some
security issues that need a final resolution in a release. So, I'm
hopeful that we won't have to wait nearly as long to see 2.7.5 after
2.7.4. There's not as long a gap since 3.3.0 but still somewhat long
for a first bugfix release.
BTW, there is a fair amount of activity that goes on somewhat behind the
scenes with getting releases out-the-door. There a number of release
artifacts that need to be produced and tested, webpages that need to be
updated, announcements sent, etc. For example, for OS X, we normally
release two variants of installers for each beta, rc, and final release.
Between the two variants, we support 13 different
architecture/os-release combinations (only 11 for 3.3.x). That means,
at the moment, we have 37 different combinations we could test
(including those for 2.7.4rc1, 3.2.4rc1, and 3.3.1rc1). I don't
personally test every one of them but I do run the Python tests on a
representative sample (various OS levels vs. ppc/Intel-32/Intel-64) of
configurations, including at least very minimal manual tests of IDLE to
cover things like different versions of Tcl/Tk we support on OS X and
current fixes like the recent infamous preferences panel crash. Then
there's the time required to investigate and writeup test failures, and
decide on a fix strategy (e.g. is it a release blocker?). Similar
things happen for the WIndows installers and for the main source
packages. All of these things are part of what goes in to having a good
batteries-included experience for our users, including IDLE users. We
all work on Python releases because we want to do it and we like to do
it. That doesn't mean the process is cast-in-concrete or can't be
improved. But there is a cost involved in producing releases that isn't
always readily apparent.
Specially for IDLE, I think there are a number of things we can do to
improve and speed its development process. As noted, I'll have some
concrete suggestions soon but, right now, I should get back to the
release candidates at hand. In the meantime, let's see what we can do
to get those patches checked in, documented, and tested.
--
Ned Deily,
nad at acm.org
More information about the Python-Dev
mailing list