Showing posts with label sprints. Show all posts
Showing posts with label sprints. 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

Monday, April 18, 2016

PyCamp Argentina

Stream amid green hills and blue sky

You settle into a deck chair in the sun. All around you are the hills, streams, and spectacular greenery of Cordoba Province, Argentina. You could take a nap, or a hike. But best of all, you can write code with friends. "There's a particular energy you can't find elsewhere. It comes from everybody working together, playing together, discussing ideas," says Facundo Batista. "You can devote your time to your community, because everything is taken care of. You spend all day programming, then take 40 steps to your bed."

PyCamp is Argentina's annual outdoor code sprint. This year, Facundo Batista organized PyCamp in the small town of La Serranita. For four days, 24 coders hacked on a dozen open source projects, with the help of a $600 grant from the Python Software Foundation.

"It's especially fruitful for newbies," says Batista. "You can be a 22-year-old with a couple years of college, and you are working on an open-source project side-by-side with someone with 25 years experience at big companies. The amount you can learn, it's awesome!"

Three young people sitting and talking on an outdoor wooden deck.

The idea for PyCamp arose from Argentina's Python community, beginning in 2008. The camp isn't really outdoors: there is a roof, walls, beds, bathrooms, even electricity and WiFi. But despite these amenities, the location is always abundantly green and rural.

Batista used the PSF grant to bring several new coders, improving the group's diversity. One first-time participant, Ariel Ramos, says, "Thanks for the grant, I liked the experience a lot, and it was very useful to be there. I liked the openness to the newbies and the special attention to ensure they enjoyed the event and learned." Another participant, Pedro Nieto, says PyCamp "allowed me to participate in several interesting projects that normally I wouldn't have even known about. It gave me more confidence to program, and encouraged me to participate in the free software community."

White daisy with a pink center, photographed against a white wall

PyCamp participants each arrive with one or two ideas, and the sprint begins with pitches to recruit contributors. "You end up working on 5 or 6 different projects," says Batista. "No attachments." At the end of the sprint, the teams present their work in a series of lightning talks.

Batista's favorite project this year was a tower defense game, built from scratch. Half the participating programmers wrote the game's core, and coded its UI using pyglet, the Python OpenGL library. The other half invented an AI to play the game. With their responsibilities neatly divided, the teams were very productive: they completed a working game in four days. Inexperienced members were mixed in with experts on each team to accelerate their learning. "I actually knew only a little Python," says Agustín Curto. "I was just starting with the language, and it helped because I learned a lot by asking."

Tower defense game
By sponsoring new PyCamp coders, the PSF wasn't merely generous: it also made an investment in the future of the Python community in Argentina. José Luis Zanotti says, "It was such an incredible, fun, and educational experience that I decided to commit myself to be an active member of the community, working in their projects, and overall promoting the usage of Python in my geographic area."

Photos by Facundo Batista; full gallery on Flickr.

Tuesday, June 14, 2011

PyLadies gets a PSF Grant

The PSF has given a grant of US$1220 to the PyLadies for use at their women’s Python events. In addition, the Python Sprints project has announced a separate grant of US$300 to PyLadies to go toward organizing a Python sprint in Los Angeles.

PyLadies

PyLadies is a group of women who use and love the Python programming language. They organize workshops, meetups, and hackathons with a goal of increasing the number of women active in the Python community. They started in Los Angeles, California, but plan to expand with local chapters in other areas.

June 18: PyLadies/SoCal Python Interest Group Hackathon

The SoCal Python Interest Group and LA PyLadies are two of LA’s biggest Python user groups. They are teaming up for a day of sprinting Saturday June 18, 2011. Tickets are available through the eventbrite site.

Schedule:

  • 2-7pm: Hack on your own projects
  • 7-8pm: Dinner, drinks, and lightning talks
  • 8pm-midnight: Python Ladies’ Night 4 at The Hollywood Canteen. Gentlemen of the Python community and friends not attending the hackathon are invited too. The more, the merrier!

This is no ordinary sprint: thanks to the pythonsprints.com grant, at least 10 mentors will be on hand to provide one-on-one help and tutoring throughout the event. Mentors will bring beginners up to speed and teach attendees a variety of Python-related skills, such as git, PyPI packaging, Sphinx docs, installing Python, and other open-source subjects. Think of this as free Python tutoring!

Free T-shirts for Open Source Work

Participants in the hackathon who release their projects as open source (or contribute to an existing open source project) will receive limited-edition PyLadies/PyLadies Supporter t-shirts, funded by the PSF.

Invite the Smart Women in Your Life

The hackathon is open to participants of all skill levels. Invite a smart lady or two of any age to attend the event with you. Even if they are absolute beginners, the mentors will help them start learning Python through online tutorials such as Learn Python The Hard Way, while you hack on other projects.

Contact

Contact audreyr at pyladies dot com with questions about PyLadies or the hackathon on June 18.

Monday, March 14, 2011

Call for Applications: Sprint Funding

The PSF Sprints Committee has sent out a call for applications from groups who want funding to host sprints on Python-related development work.

Sprints Committee

The Sprints Committee was established in June 2010 to encourage and assist groups to come together to work on Python-related projects. The committee has successfully funded a number of sprints since it was created, and the PSF Board of Directors has recently set aside additional funding to be used for sprinting during the upcoming year.

Sprint Topics

Sprints on any topic related to Python may qualify for a grant. Groups can work on any of the interpreters (CPython, PyPy, Jython, IronPython, etc.), modules from the standard library, third-party libraries, development tools, or anything else affecting the community.

Sponsored sprints have covered topics including porting Genshi to Python 3, improvements to packaging as part of the Distribute/distutils project, and most recently, the PyPy winter sprint in Switzerland. Check out the sprints blog for more details.

Assistance

The Sprints Committee has prepared guides for sprinting on Python core and porting to Python 3 to help make your event successful. In addition to organizational support, the committee can also offer financial assistance in the form of grants.

Any sprint group can apply for a grant from to cover expenses directly related to a sprint event. That includes buying meals, renting meeting space, and other reasonable expenses. The maximum grant for an event is US$300.

If your group is interested in hosting a sprint, check out the full details of the call for applications at and contact the Sprints Committee at sprints@python.org.

Thursday, July 15, 2010

EuroPython 2010 Grant

The PSF Board has offered a $2,000 grant to the organizers of EuroPython 2010 to fund sprints and the travel expenses of selected sepakers who could not otherwise attend the conference.

Conference Details

EuroPython will be held July 19-22 in Birmingham, UK. As previously mentioned, this year's conference marks the first time a PSF members' meeting will be held outside of the United States.

See the EuroPython web site for more details, including the list of confirmed speakers and conference schedule.

Sunday, July 04, 2010

Montréal-Python Packaging Sprint

The Montréal-Python user group is holding a sprint to work on the Python packaging system Monday July 5, 2010.

Montréal-Python has been sprinting together since November 2009, and this will be the fifth in a series of sprints on packaging the group has held since March 2010. The goals for this week are being coordinated with Tarek Ziadé and the other developers from the team working on Distribute and distutils2, the new packaging libraries for Python. Returning participants will resume work that was begun at the previous meetings, and new sprinters will be given assistance learning their way around the code and configuring a development environment.

Details for Participants

The sprint will be held at Brasseurs Numériques, 1124 Marie-Anne, Suite 11, starting at 6:30 PM EDT (UTC -4). The facility is limited to 12 persons so if you plan to attend in person please RSVP on the wiki. You can also participate online by joining #montreal-python on irc.freenode.net

For more information about the planned activities, see the Montréal-Python wiki page for the event:

http://wiki.montrealpython.org/index.php/Packaging_no.5

Sponsorship

The PSF is pleased to be able to sponsor food and drinks for the event as a pilot project for the new Sponsored Sprints program. For more information about applying for funding of your own sprint, visit http://pythonsprints.com/.

Saturday, June 05, 2010

PSF Sponsored Sprints

At their May 10 meeting, the PSF Board create a new Sprint Committee to organize a series of sprints for working on Python. Jesse Noller is the committee chair.

This new "focused sprint" initiative is part of a concerted effort to attract more contributors to Python's development team and to speed the adoption of Python 3. The PSF has agreed to provide funding to groups interested in organizing sprints related to:

  • Python core tasks such as bug triage and evaluating patches
  • Python core documentation work
  • Porting existing third-party libraries to run under Python 3
  • Enhancing http://python.org/ with new content, organization, or design work
  • Development of PyPI

Over time, other projects may be added as the committee identifies them. Complete instructions for proposing a sprint for your group will be posted once they are worked out.

In the mean time, the Sprint Committee needs volunteers to help launch this project. The first steps will be to set up some communication channels, and then start developing several guides for new contributors. If you want to help out, contact Jesse Noller via sprints@python.org.

See the announcement on Jesse's blog for more details.