Mariatta @ PyCon 2019 Recap

Posted on Wed 15 May 2019 in Python

I was at PyCon from April 29 - May 7. It's my fifth PyCon US. It's been a memorable and, I kept busy.

I had a number of pre-planned activities for PyCon, like running the language summit, giving talks, tutorial, etc. Thought I'll share a quick summary of how they all went.

Zapier @ PyCon 2019

I'm one of 14 Zapiens at PyCon 2019. I staffed Zapier's booth on Friday and Saturday. We had socks!

Python Language Summit 2019

The language summit was a success. First of all, we were able to stay somewhat on time, which I'm personally quite happy about. Other thing to be proud of, it was the most diverse audience I've seen. Our audience consists of, not just long-time Python core developers, but also new contributors as well as members from the wider Python ecosystem, such as from Twisted, Django, and BeeWare project. We had talks about circuit Python, team communication, and mentorship. I personally think all the talks were very interesting and refreshing.

We've invited A. Jesse Jiryu Davis to cover the event. You can see his posts at The PSF's official blog.

We forgot to take a group photo after the summit!! 😱 but we had a group photo with PyCon staff ... (image from PyCon's twitter account)

PEP 581

One of the topic of discussion was PEP 581. Since Jesse is writing up the post about it, I won't duplicate the effort. But you can see my slides here.

I'd really like to see us making progress with this before the next Python Language Summit. There were lots of action items, and things we still need to figure out, but those will be addressed in PEP 588.

I plan to update PEP 588 with the items raised during the language summit, I really haven't had much time to do this.

Hands-on Intro to aiohttp

Andrew Svetlov and I gave a beginner tutorial to aiohttp. Our tutorial material is available online, and licensed under CC-BY-SA 4.0.

Andrew is the maintainer of aiohttp, which is licensed under Apache 2.0, He's very knowledgeable about it. There were lots of interesting questions being asked at the tutorial, and he was able to explain things clearly. Stéphane Wirtel and Sviatoslav Sydorenko volunteered as our TA.

Don't Be a Robot; Build the Bot

Friday after the keynote, I gave my talk titled Don't Be a Robot; Build the Bot. I loved giving that talk! It's a talk about miss-islington! I think more people should be building their own bots and automate! With gidgethub (Apache 2.0 licensed) it is really easy.

GitHub bots are one honking great idea, let's do more of those!

Sviatoslav and I hosted an open space on Sunday. We discussed more about GitHub bots, building it for profit or for fun. Sviatoslav just made a new framework for building GitHub Apps with Python 3.7, called octomachinery. We also discussed about GitHub Actions, tried to make sense of it, e.g. what were limitations, and what Actions would be useful. There is a proposal for making an "official" GitHub Action for publishing to PyPI. Some people shared ideas of what bots they'd like to see and build.

One attendee (I think his name was Anurag Saxena(?)) said he'd like to receive weekly updates of GitHub issues/PRs they worked on, and to have it automatically sent to him as email or slack or something. I think this is very interesting idea.

Product placement: this can be accomplished with Zapier. You can create a cron job that generates the summary (by utilizing GitHub Search API), and then use Webhook by Zapier to handle the "send email/post a slack message".

Status of black-out

I mentioned my personal bot, black-out, in my talk. Black-out is a GitHub bot that runs black (Python formatter) on incoming pull requests. The first version of the webhook-based bot is open source and Apache 2.0 licensed. However, I wasn't happy with how it works, so I've been researching on how to turn it into a GitHub App.

I've made some progress with black-out GitHub App, I've implemented some of the features I wanted for myself, but I'm still just experimenting and testing it out on my own personal projects to really figure out what's the best workflow for the bot.

Black-out GitHub App is still closed source, I have not put it up on GitHub yet. After the talk, a few people, including Jannis Leidel from Mozilla, expressed interest in black-out, and wanted to know how they can help.

Thanks for the interest! I think I just need to find time and put it up on GitHub so we can all collaborate!

aiohttp bot

aiohttp needs a bot just like miss-islington, for backporting, and Andrew Svetlov had talked to me about this since early last year. (and Ansible needs their own backport bot too). To help with this, we've been working to make cherry-picker.py customizable. I've offered to help build this bot for aiohttp, and the easiest is a webhook-based bot, just like miss-islington. However Sviatoslav disagrees. He prefers for it to be a GitHub App that can be easily installed by other projects. While I like the GitHub App idea, for reusability, I also think that each projects might have different workflow for backporting, so we'll end up having to support "configuring the bot", which is a boring activity for me. I'll be thinking more about this, but my thinking right now is to build it as a personal bot for aiohttp; not a customizable bot.

Mentored Sprint for Diverse Beginners

On Saturday afternoon (4 hrs) I helped ran the mentored sprint for Diverse Beginners. This is a group effort with Tania Allard, Nina Zakharenko, and Nikoleta Glynatsi. We have a room full of 70 new aspiring open source contributors, and about 30 mentors from 11 different open source projects (like CPython, CircuitPython, TensorFlow, etc) I think it was great success! The projects and mentors were tasked with coming up with at least 5 beginner friendly issues, so they came prepared. Lots of people with diverse background made their first pull requests at the sprint.

Another thing that surprised me, was such great turnout! I've organized lots of events and meetups, and we usually expect about 60% people will actually show up. But for this event, EVERYBODY showed up! Room was completely full!! (103 pax capacity) We even had to turn away many people who wanted to walk-in.

Keynotes

I managed to see pretty much all of the keynotes, except for Jessica McKellar's keynote. Her keynote started late, and I was supposed to staff Zapier's booth at the same time.

Sha's talk was very inspiring and emotional. I'm glad I was able to watch the talk in person. I was going to suggest people to catch his talk, but unfortunately there was no recording.

I also enjoyed the Steering council plenary session moderated by Ewa Jodlowska. (there was mention about PEP 581!!)

PyCascades

On Sunday I met up with several PyCascades organizers and we discussed the planning of next year's conference. We're still scouting venues in Portland, and figuring out how to best divide tasks among the organizers. Eric Holscher will be co-chairing, along with Esti. Somehow during that meeting, I became the next PyCascades Diversity Chair.

PyLadies

(image from Lorena Mesa on Twitter).

On Monday I attended a meeting with other PyLadies organizers from all over the world. We shared notes about organizing and leading our own local chapters. We learned that the challenges faced by PyLadies in different parts of the world are different. We talked about how the current representation of PyLadies isn't very diverse (represented by people in North America) whereas members of Python community and PyLadies are coming from all over the world. We talked about ideas on how PyLadies can be better. We discussed the governance of PyLadies, and decided to do a monthly PyLadies organizers meeting. Elaine and I volunteered to take over managing info at pyladies email.

DEP 9

I ran into Andrew Godwin who is a Django Core Developer. I got to ask him about Django and asyncio. During the aiohttp tutorial, someone had asked about aiohttp and ORM. Andrew Svetlov mentioned that it is a low priority for aiohttp, and so I wondered what is Django's stance on this. Andrew (Godwin) shared his plan about async-capable django. I guess he was talking about DEP 9.

Language Summit retro, and the inspiration for black

I met with Łukasz Langa to celebrate success of running our first language summit. We had informal retros, and started thinking about how to put the next year's event.

I also got to ask him where the inspiration for black came from. He described frustration with other auto-formatter, how it does not provide consistent output (same file reformatted twice would give different result). After months of frustration, he decided to make his own auto-formatter.

F-string Debug Mode

Of course I had to give away all of my new f-string stickers to Eric V. Smith.

Eric showed me a demo of debug mode for f-string. It adds the = to the f-string expression. I recalled we had this discussion with both Eric and Larry Hastings back during core Python sprint.

It works like this:

foo=5 print(f"{foo=}")

would print:

foo=5

Since then the PR has been merged, and now we need to write the documentation.

People

I finally got to meet in person with people I've interacted online a lot, like: Tania Allard, Cheryl Sabella, Anthony Shaw, Sviatoslav Sydorenko, Elizaaveta Shashkova, and many more!

CoC Incidents

During the conference, it was brought to my attention about several CoC incidents that occurred in various communities I belong to. These issues are being dealt with, and I've also talked to PyCon incident response team members where appropriate.

Ice Cream Selfie

I had ice cream sandwich from Cathy's Gourmet Ice Cream Sandwiches, courtesy of Tania and Nina 🍨😝🤳🏻

PyNutella

PyNutella, a.k.a that thing where Mariatta asks her friends who are coming to PyCon to bring her Nutella from Europe, yeah that happened. Thanks to Christian Heimes for the very special Nutella. My kids were mind blown to see them. Also thanks to Stéphane Wirtel for a really big jar of Nutella from Belgium.

PierogiCon

Anna Ossowski, Jeff Triplett and I went back to Sokolowski's University Inn for the second PierogiCon, and we brought in a number of newbies.

Selfie Sprint

I was meaning to do one day of sprints, but after a full week full of activities, I decided not to do any open source activities, and instead just go around and take selfie with people I met.

I enjoyed doing Selfie Sprint! I think I will do it again next year!

Seafood

I went to see my brother for dinner. We had really great spicy seafood at Boiling Seafood Crawfish.

Award

I think the biggest highlight for me is receiving my Community Service Award on Sunday. Thank you Python community for this recognition! (video)

Until next time

I tried to include as many memories as I can into this post, but I'm unable to include everything. 😥

PyCon 2019 has been inspiring. I learned a lot about the community, and I cried a lot too (the good cry).

Thank you organizers, volunteers, sponsors, and all the wonderful Python community for these memories. Let's do this again!

🌮