Alexis traveled through my city last week-end and came say hi yesterday. We wanted to hold a mini-sprint with people on IRC, here’s a write-up.
We started with a task list and did not finish it :)
First item was fixing the merge between Alexis and upstream. Three-way merges are tricky, and Alexis unintentionally left out some things when he merged. I shared some hard-earned knowledge of vimdiff and we both learned things, e.g. why it is useful that “hg merge” does not commit, and why the “base” pane in three-way merges is not useless. Josip said that merge conflicts are causing him pain too, so I’ll write another piece to share all of that.
Second item was moving _hashlib to _backport._hashlib. It’s just a nicety, not something really important, but we’d gain some knowledge about Extension and build_ext in the process. He or I will do it soon.
Third item was fixing the bug with unittest from Python 2.7. This was caused by a nasty version issue: Alexis thought unittest2 was still monkey-patching os.path to support relpath, but this has been fixed thanks to Konrad, and the fix was straightforward. I shall finish it and ask Tarek for pulling quickly, I just have a nasty loader/makeSuite compatibility kerfluffle to unravel.
Alexis said that we should not only post weekly reports on our weblogs, but also talk about things we’ve learned and explain choices we make. I definitely agree, such posts would be great to get knowledge out of brains into documentation. How many understand how distutils2.core.setup() does its work of parsing config files, command-line options, configuring commands and running them? We all started our summer by reading the code and trying to understand it. It’s totally obvious what Command.set_undefined_options does once you’ve browsed to code to understand it, but then we forget how much time it took. Turning our weeks of learning into documents that would take minutes to read would be a huge win for future distutils2 hackers. Luckily, we still have in our community people who have followed distutils since its inception, so we have a lot of gathered knowledge to turn into doc. Let’s kill the idea that the code is impossible to maintain and improve!
We were not a lot off-topic :) We spoke about operating systems, vim configuration, pythonicity, default arguments, boolean contexts, good bad English, fun advanced Python features, the pressure of the midterm, the fear that distutils2 won’t be ready when it is merged into the stdlib and its development slowed down, Monty Python and the Holy Grail, mentors, window managers, terminals and consoles…
It was not really a sprint since we did not code much, and neither did we talk much on the IRC room, but it was a great learning and bonding time! Looking forward to more face-to-face meetings with fellow Pythonistas.
Read Alexis’ summary for great plans for the documentation!