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 there's interest.)
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 near enough.
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 sprints.
The alternative would be: stop all submissions to the Derby right now, iterate (quickly!) on the existing patches, check them in, and proceed to rc1.
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,
//arry/