Showing posts with label events. Show all posts
Showing posts with label events. Show all posts

Friday, December 18, 2020

Virtual Python Core Developer Sprint 2020

Overview 

From October 19th to 23rd, 47 participants gathered for the first-ever virtual 2020 Python Core Developer Sprint. This included 41 Python core developers, 3 triagers, and 3 core dev mentees. The core dev sprint is an annual week-long meeting in which the CPython core team has the opportunity to work directly together on projects and get to know one another better, free from outside distractions. Many of the core developers participating in the event received the week off from their employer to focus on the sprint. 

Due to the challenges of the COVID-19 pandemic, the event had to be done remotely. This was unlike previous years, where it was hosted in-person by a sponsoring organization. While it was not exactly the same experience, it came with the silver lining of allowing participants to join the sprint from anywhere in the entire world, including those that would have otherwise been unable to travel to a physical event. Participants joined in from Canada, USA, England, Poland, Israel, China, Germany, South Korea, Japan, and the Netherlands. 

Google stepped up to host the in-person event in 2020. Since that didn't work out, they were able to sponsor the virtual event so participants could receive a meal stipend for the entire week. We hope the availability of that stipend made it a more enjoyable event for participants.

Setting

The virtual event itself was hosted on Python Discord, one of the largest and most active dedicated Python communities with over 100k members. Hosting the event on an existing Discord server allowed us to significantly simplify the setup process, obtain invaluable help from the Python Discord admin team, and create a greater audience pool for the community Q&A. The platform choice was reached democratically through a poll in the “Committers” section of discuss.python.org.

Leading up to the sprint, we created a readthedocs site as a centralized location for documentation on the sprint, links to shared docs, google calendar, project participants, Discord setup, and more. There was also a dedicated “Tech Check” day, where we set aside a full day to answer participant questions about the sprint and help them with any platform setup. Other components involved in organization of the sprint were tracked via the python/core-sprint repo.

Statistics

By the end of the sprint, we merged a total of 215 pull requests within the core Python repositories, including CPython, devguide, peps, etc. On Discord, sprint participants posted more than 5,800 messages across various channels. 

 

The Ask a Core Dev Anything session was hosted by the Python Discord admin team and live-streamed to YouTube. It had 2,100 unique live viewers, and peaked at 385 concurrent viewers. By the end of the sprint, the session had 3,339 total viewers, with 37 countries tuned in. After the session, a number of core developers continued engaging with Python community members on Discord in the #stream-afterparty channel. 

Project Highlights

Each individual project effectively had their own sub-group, and organized internal meetings via a shared Google Calendar. Some of these projects included stdlib modules such as asyncio, importlib, pegen, ast; as well as other areas like C-API/subinterpreters, PR review, pattern matching, PEP 594 and improving new contributor experience. Here were some of the highlights for each project:


  • documentation - Completed a Documentation Workgroup Charter to be approved by the Steering Council, which would effectively act as a committee of active documentation contributors to create goals for large projects, work through pending documentation PRs, and vote on general documentation decisions (such as the purpose and direction of the tutorial).

  • asyncio - Initially started with a focus on a new streaming API, but was redirected to mapping out the blueprints for an upcoming exception group PEP, which would allow multiple exceptions to be simultaneously propagated for better exception handling in concurrent programs. This is intended to eventually lead to task groups in asyncio.

  • importlib - Worked on support for namespace packages, which was a longstanding issue. Also worked through 3.10 blocker around unreleased zip file handles.

  • pegen - Discussions around steps moving forward with migrations to the new parser. This included publishing a PyPI package with the new parser for 3rd party packages to utilize, merging a PR to make the parser faster, and porting f-strings.

  • C-API/subinterpreters - Created a PR for finishing remaining parts of PEP 573, gathering ideas for improving stable ABI, isolation of extension modules, progress towards isolating runtime state to being per-interpreter, and work on runtime finalization code.

  • garbage collection - Discussions around prototyping a tracing garbage collector with the constraints of maximizing backwards-compatibility with existing C extensions.

  • pattern matching - Completed drafts for PEPs 634, 635, and 636, sent to SC, and opened a draft PR for the reference implementation of those PEPs.

  • core mentorship/new contributors - Discussions around automated welcome and first PR merged messages, incentivising contributors with 2 other reviews for one review of their own PR, automated reminders for stalled PRs, revitalization of core dev office hours, increasing core dev mentorship with documented guides.

  • PEP 594 - Discussions around moving forward with the PEP, archiving removed modules, adoption of modules from 3rd parties, and making the transition smoother for the few users who still rely on them.


For a more comphrehensive summary, see the Send-off Meeting 


Promotions and Mentorships

The team gained two new Python triage members during the sprint: Irit Katriel and Andre Delfino. Irit has been actively contributing to CPython for the past several months. Andre has been contributing to CPython for more than two years, and already had the bug triage permission on b.p.o. 

 
One of the mentees who participated in the sprint, Hai Shi (mentored by Victor Stinner), was later granted the bug triage privileges a month after the sprint. Batuhan Taşkaya, who was one of the bug triage members participating in the sprint, was promoted to core developer a few weeks after the sprint. 
 
Other mentees participating were Lewis Gaul and Filipe Laíns. Lewis was being mentored by Eric Snow to work on subinterpreters, and Filipe was being mentored by Jason R. Coombs to work on importlib.resources.

Retrospective

In order to improve future sprints (especially any with a virtual component), we also asked participants at the end of the event to fill out a survey to provide feedback on parts of the sprint for parts they enjoyed and areas of improvement.

Enjoyed:

  • Usage of Discord as a platform

  • Unscheduled voice/video chats

  • Social games (such as the escape room event)

  • Having an agenda for large meetings

  • The Kick-off meeting

  • Dedicated off-topic channels

Improvements:

  • For each project, having one person as the assigned leader to schedule meetings, create an agenda, and provide a summary of accomplishments

  • Using a shared cloud/google drive folder instead of sharing individual documents

  • More automation for joining the Discord server and assigning roles

  • Dedicated separate server going forward to help with overload of unread channels

  • Maintaining a single centralized dashboard. Our readthedocs site initially started that way, but could have used more periodic updates

  • Swag/merchandise for the event (did not have adequate time this year)

      

Links

 

Thank you!

A huge thanks to:

  • Everyone who participated in the sprint

  • Google for sponsoring the event so we could provide meal stipends for the week

  • Python Discord for hosting the event, as well assisting with the live streaming and editing of the community Q&A

  • The PSF for supporting and providing infrastructure for sprint


Sprint attendees: Joannah Nanjekye, Barry Warsaw, Batuhan Taşkaya, Pablo Galindo Salgado, Mariatta Wijaya, Łukasz Langa, Senthil Kumaran, Carol Willing, Andrew Kuchling, Neil Schemenauer, Petr Viktorin, Zach Ware, Brett Cannon, Ammar Askar, Eric V. Smith, Stefan Behnel, Ned Deily, Lysandros Nikolaou, Emily Morehouse, Tal Einat, Jason R. Coombs, Hai Shi, Kyle Stanley, Terry Jan Reedy, Guido van Rossum, Ronald Oussoren, Thomas Wouters, Yury Selivanov, Steve Dower, Dong-hee Na, Christian Heimes, Larry Hastings, Eric Snow, Gregory P. Smith, Brandt Bucher, Lewis Gaul, Filipe Laíns, Mark Shannon, Inada Naoki, Paul Ganssle, Éric Araujo, Irit Katriel, Fred Drake


Written by: Kyle Stanley and Mariatta Wijaya

Thursday, October 29, 2015

Django Girls Seoul: A Great Success!

One of the greatest joys of being part of the PSF is to hear the success stories our members. Back in July, the PSF sponsored a small Django Girls workshop in Seoul, South Korea with a modest grant of $2000 USD. We’ve recently received a letter from one the organizers, Rachell Calhoun, and I’d like to share it here:
Hello,
I’ll just start by saying I knew nothing of programming or anything tech two years ago. I got inspired by a failed interview to start learning programming and I found some awesome like-minded people that were studying Python. We did so many Python MOOCs, tutorials, Raspberry Pi and even Pygame! This year we started working on web development and along came Django. The core members from this study group (codeforeveryone.co) were inspired by Django Girls to make an event in Seoul. We worked hard to make the event accessible to everyone, translating everything into both English and Korean.
At first we thought it would be a small, simple event of 30 participants, but after the first day we had more than 30 applicants, so we decided to expand it to 70 participants, 26 coaches and five organizers. We tried our best to make it a casual, fun, and motivating experience for all involved.
During the three months leading up to the event, we worked hard at getting sponsors. Because of the PSF sponsorship, we were able to make it a wonderful introductory experience to Python for all the participants as well as some coaches!
We had 425 applicants from 11 different countries, ages ranging from 16 to 50 years old. We chose 70 of the best applications. Some of the participants in the event were able to complete their web blog applications, and some even went on to do the extended Django Girls' tutorials. 
We hope to harness the momentum from Django Girls Seoul participants and coaches to help create a more permanent community where we can all continue to study and teach Python and Django. We’ve started planning a follow-up event in three weeks. Our original group of organizers' philosophy is to learn by doing and master by teaching. So we’d like to continue learning and teaching together, inspiring and connecting like-minded people to create a supportive, welcoming community for all.
Thank you again from everyone that participated in our event.
Rachell Calhoun, Django Girls Seoul Organizer




Photos courtesy of Rachell Calhoun

Since this initial workshop, Rachell and the organizers have made true on their promise to keep going in building their community. They’ve recently held their follow-up event, during which about 35 women, along with 10 new coaches, worked on an extended Django Girls' tutorial. All five original organizers also participated: In addition to Rachell, these are Hassan Abid, a phone app developer, Jin Park, a full-stack developer, Sujin Lee, who works in online education, and Dayoung Park an administrative coordinator. 
According to Rachell, one of the great features of such a community is that the experienced coaches and organizers also learn from teaching and from each other. She believes that her own background as an EFL teacher, along with her perspective as a novice Python programmer, contribute to making these teaching events successful.
Additional events planned for the future include a Django Girls Code Camp taking place every Saturday for two months, and offered free of charge to participants. The intention is to leverage the skill learned in the two months and then apply it to non-profit projects that will benefit the local community and offer the coders more real world experience.
To help us learn more about these and other events planned by this group, Rachell kindly sent along the following links:
I hope you’ll all join me in sending our sincere congratulations and thanks to Rachell, her team of organizers, and all the participants on a wonderful project that is enlarging and enhancing the Python community!
I would love to hear from readers. Please send feedback, comments, or blog ideas to me at [email protected].

Thursday, May 07, 2015

New Board Election! Important! Please Read!

For those of you who haven't followed the recent discussion on the PSF members list, there has been an important development regarding the election of members to the Board of Directors. 

Due to ambiguity with respect to the candidate nomination deadline (the former election administrator interpreted the deadline as midnight May 1, UTC; while others were operating with the understanding that the deadline was midnight Anywhere on Earth), a candidate who wished to self-nominate was not able to.

The PSF Board moved quickly to respond to this issue and the following solution was adopted: 

Here's the official explanation by the Chairman of the Board of Directors, Van Lindberg:

Due to some procedural problems with the current election for the Board of the Python Software Foundation, the Foundation has taken some steps to make sure that the elections are freely open for nominations and that there are no conflicts of interest. Specifically, today the board adopted the following resolutions:

RESOLVED, due to procedural deficiencies, the Board Election ballots issued on May 1st (AOE)/May 2nd (UTC) be deemed null and void.

RESOLVED, that David Mertz be removed as election administrator, and that Ian Cordasco be appointed as election administrator.


David has been the election adminstrator for quite a while, and designed the "e-vote" system that we use along with Massimo DePierro. He has put in a lot of time and effort, and we thank him for it. David in particular volunteered for a complex voting administration task that needed to be handled as the PSF expanded internationally beyond a primarily US-based membership that could previously realistically vote (in person, or by proxy) at physical meetings held annually at PyCon
US.

Without David's efforts as Election Administrator over that time, it would not have been feasible to expand the membership as we have, including the conversion to an open membership model in the 2014 update to the PSF bylaws.

For anyone who has received a ballot already, or has received a ballot reminder, please ignore it. We will be canceling the election as quickly as possible.

We also wanted to make sure that the procedure for upcoming board elections was clear, particularly with regard to the timelines for nominations and voting eligibility. To address that, we also adopted the following resolution concerning the timing of future votes for the board. For those who aren't familiar with the term "AOE", it means "Anywhere on Earth." 

RESOLVED, that the Python Software Foundation adopt the follow procedure for Board elections:
    - Day 1: There is announcement of an upcoming board election via public announcement and email to existing voting members.
    - Day 10 (AOE): Nominations and voting eligibility closes for the upcoming board election. The list of voting members is updated.
    - Day 14-15: Ballots are sent out to voting members.
    - Day 25 (AOE): Election closes.


We also are starting a new election using this procedure, so the timeline for the election is as follows:

    - May 5: Announcement of a new election . . .  and an email to the voting members.
    - May 15 (AOE): Nominations and voting eligibility closes for the upcoming board election. The list of voting members is updated.
    - May 19-20: Ballots are sent out to voting members.
    - May 30 (AOE): Election closes.


This means that in an effort to be inclusive, the nominations will again be open for anyone until May 15 AOE. If you missed the opportunity to nominate for the 2015 Python Software Foundation Board, you will have that chance.

Thanks,

Van Lindberg
PSF Chair
I urge all prospective candidates to post their nomination statements in advance of the May 15 (midnight AoE*) deadline, and all voters to read the Wiki for the candidate statements and to cast their ballots in advance of the May 30 (midnight AoE*) deadline Wiki.

* AoE = UTC - 12

For those with more specific scientific requirements for deadline info, the following should be completely unambiguous:

Deadline for candidate nominations and voting rights self-certification: End of day May 15, 2015, AoE: = UTC May 16, by12 noon = ISO 8601: 2015-05-15T23:59:59-12

Deadline for Voting: End of day May 30, 2015, AoE = UTC May 31, by 12 noon = ISO 8601: 2015-05-31T23:59:59-12:00

Any questions or problems can be addressed to the Board ([email protected]) and/or the new election administrator, Ian Cordasco ([email protected]).


Photo Credit: M.A. Sushinsky, private collection 
(S. Dali multiple original lithograph--sketch for Persistence of Memory)


("Time is the horizon for the unfolding of the meaning of Being," 
-- M. Heidegger, 1927)

I would love to hear from readers. Please send feedback, comments, or blog ideas to me at [email protected].

Tuesday, April 28, 2015

Highly Contagious: Python Spreads through South America!

As you may recall, I previously posted about a wonderful project in South America that has been funded in part by the PSF. That first blog post described the Python events that Manuel Kaufmann had organized in Argentina and his plans to move on to Paraguay and then Bolivia. Please check it out at Python in Argentina.
I’m very happy to report that Manuel Kaufmann has continued to be busy bringing Python events and knowledge to more and more people, as he left Argentina for Paraguay. He recently reached out to us to tell about his experiences. Here's a recap:
First of all, PyDay Asunción took place as scheduled on March 28th. This event was the culmination of Manuel’s efforts in creating the brand new Python Paraguay community. His Paraguayan adventure began by meeting with people from different Software Libre groups (PHP, OpenStreetMap, Sugar, Google Code In, etc) in an attempt to merge them into a new community focussed on Python. Their first meeting had 13 attendees who immediately began organizing for PyDay Asunción. 
This first PyDay (or mini-conference) in Paraguay was a great success. Over 100 people with varying levels of programming and Python skill attended. Manuel was pleased to report that among the presenters were a 17 year old boy and a young woman–clearly the diversity of our community is growing demographically as well as geographically. In addition, the importance of this event was marked by the Paraguayan government, who declared PyDay Asunción an official Technology and Cultural Event. Congratulations to Manuel and everyone who worked to make this a reality.You can read more about the day (in Spanish) at Manuel’s own blog post.

PyDay Asunción
Of course, as before, the momentum didn’t stop at one event. With a new community formed, new events were bound to occur. It always amazes me the way hard work and a good idea will grow. In fact, Manuel reported that some of the attendees of last month’s PyDay Formosa, Argentina were so enthused that they travelled 400 km to attend and help out at PyDay Paraguay. That kind of passion and commitment says a lot about the quality of these events and the desire for more. Perhaps Python is contagious!
Similarly, Manuel tells us that a talk at PyDay Paraguay gave rise to another event: HACKÁra Asuka Guaraní: an event to translate the Sugar platform to Guaraní. This event was organized by Ricardo Saucedo and Martín Abente (one of the members of Python Paraguay). In fact, the idea of this event came out of Martin’s talk at PyDay Asunción. There were around 15 teenagers including 6 girls and a teacher who helped with the translation into their native language. According to Manuel, this potentially could lead to many people who don't speak Spanish being able to learn programming.

Manuel has no intention of slowing down. Although his original plan was to spend three months on the project, he hasn’t yet made it to Bolivia, so he’s going to extend his time commitment. One problem he’s having is with his car. Apparently it needs quite a bit of TLC to keep it going. If you’d like to help with that, Manuel is accepting donations at Manuel’s Project. Since a little goes a long way to keep a car running, I hope you'll join me in giving him the cost of a latte or two.

In any case, his project appears unstoppable, with many future events either completely set to go or in the planning stages. The following events are already scheduled for May: 
In addition, Manuel has some exciting ideas for future projects, such as creating a Robot Course for kids, and bringing Facundo Batista (one of the best Argentinian Python hackers) to Asunción, Paraguay to develop a 3-days course. These are in the early planning stages, but if I know Manuel, I think we can look forward to hearing about their successful completion in the future.
If you’d like to follow Manuel’s travel plans, or provide some support, please visit his website.

I would love to hear from readers. Please send feedback, comments, or blog ideas to me at [email protected].