How Community Prevailed at Python’s Virtual Core Development Sprint
Community takes many forms — and can overcome many challenges. Last month for the fifth year in a row, the Python community held its annual Core Development Sprint. But, due to the gathering being held virtually, this year’s event was unlike any other.
In a blog post last year, Python creator Guido van Rossum, who came out of retirement earlier this month to join Microsoft, remembered that “For me, the main reason to attend events like this is always meeting people with whom I collaborate online all year long but whom I only get to see once or twice a year.” But could they recreate the same synergy with a virtual event? And would they notice the same rush of productivity?
It’s an especially critical time for Python, which switched to a steering council model in February of 2019, after van Rossum had stepped down as the language’s “benevolent dictator for life.” So in a world that’s already starved for both normalcy and facetime, Python’s core developers reunited online, determined that their annual tradition would continue.
Embracing the new era, the event again brought together 47 core developers — and this year great efforts were made to recreate all the comforts of an in-person event. There were dedicated channels on Discord for socializing — and for chatting during lunch — as well as for daily updates. Starting on Oct. 19, the event began with an all-virtual Monday kick-off meeting and closed five days later with a Friday wrap-up meeting. In between, there was a Core Developers and Community Members Q&A event. There was even video of a special ceremony with the PSF’s Director of Infrastructure Ernest W. Durbin III generating the keys for its TUF repository which secures the crucial Python package index (or — PyPI), “in a way that is transparent and visible to the Python community, and stored for archival purposes so that people can understand the basis of the security for TUF.”
By the end of the week, 194 pull different requests had been reviewed and decided upon (with 165 being merged). 21 Python Enhancement Proposals (or PEPs) were also reviewed and closed (with 20 being merged).
But what’s more important is the very real and necessary community building that seemed to have taken place.
At the kick-off event, moderator Mariatta emphasized a virtual version of the famous Pac-Man rule of conferences. In real-world events, participants are encouraged to always leave a space for new people join a group of people — so for this virtual event, Mariatta stressed making room for any “lurkers” who are silently monitoring virtual meetings — and welcoming them to participate. “Just be explicit and invite them to join the conversation.”
And they began the community-building by going around the virtual room to let participants introduce themselves — which showed just how widespread everyone really was. Core developers had gathered from literally all over the world — from China and Israel, to Amsterdam, Portugal, and Germany. There were core developers in London and Oxford (as well as in Scotland), and from the California cities of San Diego and Irvine. Core developers had dialed in from Washington D.C. and Denver, Colorado, to Atlanta, Georgia, and Wilmington, Delaware. One Korean participant noted they were dialing in at one in the morning. Mariatta the core developer/moderator was from Vancouver, British Columbia.
And of course, there van Rossum himself, who had dialed in from south of San Francisco.
van Rossum seemed relaxed, wearing a “periodic table of Minecraft” t-shirt. Core developer Ned Deily asked a question which had probably been on everyone’s minds: how is the steering council experience working, now that van Rossum is no longer serving as the language’s benevolent overseer? And core developer/councilmember Carol Willing was the first to respond.
“I’ve been involved in a lot of governance organizations, and I would say the Steering Council has been towards the top in terms of sticking to the agenda and being thoughtful and collaborative in how things are working.” They meet every week for an hour — with a pre-set agenda — and “in general, I think it’s working quite well. If there’s anything I take away from it, it’s I’m amazed that Guido was able to do this function as a single person for as long as he had been. Because it’s a lot of work, even amongst five people.
“But I think it’s a good thing. And I think each year it’s going to improve, much as the Python Software Foundation has improved over time.”
Core developer/councilmember Barry Warsaw agreed. “A couple of us have been on the Steering Council since its inception. And there was a lot of things that the governance PEPs didn’t really cover. So we really had to figure out the process for a number of things. I couldn’t be more happy to work with both the first year of Steering Council members, and this year of Steering Council members.
“I think everybody is doing this for the right reasons — because we love Python, and we love the Python community…”
But one Steering Council member re-directed the question back to the core developer who’d asked, seeking his perspective on council’s performance. And Deily agreed with their assessments.
“My impression is things are going really well, better than might be expected.
“I was very proud how we as a community met the challenge of coming up with a governance, kind of from scratch. And I think — I don’t know for sure all of Guido’s motivation for doing it, but I think in a lot of ways he did it the right way, just kind of forced the community to come up with things. And I think all in all that worked out really well.” Deily requested more communication — “like minutes and things like that” — and Carol and Barry agreed that was something they should try to improve on.
We Just Push Bits
But core developer Christian Heimes also wanted to check in on the stress levels of the council — and asked what the core community could do to help? What are we going to do to make sure that we don’t ruin our people? And there was very thoughtful answers from council member Brett Cannon. “Honestly, just everyone just be nice to each other… I think we all sometimes just forget that we’re all just human beings just trying to help out on this project that literally — honestly we just push out bits to the world, that some people just seem to happen to really love, which is great.”
Warsaw agreed, adding something he’s observed both at work and in his personal life. “This is not normal times. Right? Everything that’s going on in the world affects people differently. And we’re all feeling stressed just in getting through the day, and it’s so tempting to allow that stress to invade your communications among your fellow Python developers…”
“So take that moment and take that breath before you hit send, and just try to put yourself in the recipient’s shoes for a moment.”
Willing agreed, remembering taking a step back from some of her commitments this year, which turned out to be a difficult but beneficial decision. “I think we are in strange times, and I encourage every one of you to take care of yourself first.” She urged people not to be afraid to ask for help, and ended by encouraging people to “keep taking care of yourselves because you guys are all fantastic.”
About 48 minutes in, there was a question from van Rossum himself about the issue tracker at Bugs.python.org (affectionately known as “BPO”). “So I’m desperately curious about the status of the BPO to GitHub migration.” He paused, then asked delicately, “Uh, how much is the Steering Council willing to share of what they know, and how much do you actually know?”
Cannon responded, talking about the group hired to run it, and thanking the groups whose donations had funded it. And then Deily suggested van Rossum volunteer for the working group, “because it’s going to affect all of us.” van Rossum asked if it would be appropriate if he volunteered, everyone agreed, and he responded, “Okay, I’m game.”
Maybe it’s all proof that community can happen without presence — and that with good and committed individuals, virtual telepresence can be enough.