The Great Argument Clinic Conversion Derby has been underway for about
2.5 weeks. Here's a status update. I'll try to keep this short.
It's taking a lot longer than I expected it to. This has been due to
* bugs and flaws in Argument Clinic itself (a "flaw" is an "I didn't
foresee that" design error),
* having to make changes to CPython itself, which required *very*
careful work and was therefore quite time consuming, and
* my time being a huge bottleneck.
I'd like to extend the Derby by two more weeks and add a fourth beta.
I've made huge improvements to the implementation of Argument Clinic, in
response to bugs filed and crippling-missing-features requested.
Argument Clinic is growing more sophisticated by the day.
I've also, regrettably, made some modifications to CPython, to better
support signatures in builtins. In particular, I had to modify four
additional callable types to add support for "__text_signature__",
including PyTypeObject. These changes were reviewed by Nick and Guido,
so I have a high confidence that the changes will not destabilize Python
3.4. (If there is demand, I can compile a list of all such
arguably-not-a-bugfix post-feature-freeze changes to Python 3.4 if
The main problem with running the Derby: everything is gated on me.
Until just recently, I've had to review every patch, and I've had to
make every modification to clinic.py. I've been spending all day, every
day, with very little time off, on the Derby, and still it's nowhere
This is changing, slowly. I now have a handful of people who make small
changes to clinic.py or review patches. But major brain surgery on the
tool is still up to me, and I still have a half-week's worth of work on
my to-do list.
I've been prioritizing bug fixes and crippling missing features over
reviewing patches. (I figured that would maximize the productivity of
the Derby participants.) As a result, I have a patch backlog that would
makes you cry. I've been reviewing patches FIFO, and the patch waiting
at the front of my queue is ten days old.
This means that a lot of the conversion work done for the Derby has not
been checked in yet.
To be honest I have absolutely no idea what % of files have been
converted so far. Figuring it out would use time that would be better
spent catching up on my to-do list.
I'd like to continue the Derby for two more weeks and insert a fourth
beta. That would put the release date for Python 3.4 final on March 31st.
With the new conversion policy in place (see my recent posting to
python-dev), the number of new surprises that I would have to spend time
on should drop to about zero. (My new answer: "That will have to wait
until 3.5.") I have about a half-week's worth of bug fixes / missing
features work for clinic.py right now; once that's done I'll be able to
spend nearly all of my time on code reviews. (If I catch up, I might
even start doing conversions myself!) So I expect the pace of the Derby
to ramp up in the coming week.
I *would* ask for three more weeks, not two, just to be dead certain we
finish before rc1. But then the release date for 3.4 final would be
April 7th, two days before the start of PyCon US 2014, and I don't want
to shave it that close. If we had to slip again for some reason, we'd
be cutting the release *during* PyCon US, and I want to avoid *that* at
all costs, particularly as that may be impractical for the platform
release manager (their build environment may not be portable). I want
3.4 out before PyCon US so that trunk is open for 3.5 during the dev
The alternative would be: stop all submissions to the Derby right now,
iterate (quickly!) on the existing patches, check them in, and proceed
In theory, as release manager I could simply announce we were doing
this. However, I only want to continue doing this if I have approval
from the core dev community. If slipping the schedule again means a
majority of people withdraw their support for the Derby, then it would
probably be best to cut our losses now.
Please vote for either "continue the Derby" (which also means slipping
the schedule and adding a fourth beta) or "stop the Derby".
Thank you for your attention,