Development Sprints

When will sprints take place?

Monday, May 2, 2022 – Tuesday, May 3, 2022 at 8:00am - Sprint will be held in the 250 and 251 rooms and are free to attend with a PyCon US registration. NOTE: Please be familiar with the PyCon US Health & Safety Guidelines. Sprint days are part of the conference and only registered attendees of PyCon US can participate due to the guidelines put in place for the 2022 conference.

Development sprints are a key part of PyCon US, and a chance for the contributors to open-source projects to get together face-to-face for two days of intensive learning, development and camaraderie. Newbies sit with gurus, go out for lunch and dinner together, and have a great time while advancing their project.

What's a sprint?

PyCon Development Sprints are two days of intensive learning and development on an open source project of your choice, in a team environment. It's a time to come together with colleagues, old and new, to share what you've learned and apply it to an open source project.

In the crucible of a sprint room, teaming with both focus and humor, it's a time to test, fix bugs, add new features, and improve documentation. And it's a time to network, make friends, and build relationships that go beyond the conference.

PyCon provides the space and infrastructure (network, power, tables & chairs); you bring your skills, humanity, and brainpower (oh! and don't forget your computer).

Who can participate?

You! All experience levels are welcome; sprints are a great opportunity to get connected with, and start contributing to your favorite Python project. Participation in the sprints is free and included in your conference registration. Please go to your attendee profile on your dashboard and indicated the number of sprint days you will be attending.

If you would like to mentor a newcomer to sprints, fill out this form.

Who can run a sprint?

You! If you've never run a sprint before, the In-Person Event Handbook is an excellent guide.

Please edit this page and add your project according to the instructions below.

What's the schedule?

Sprints run all day from Monday, May 2nd and Tuesday, May 3rd. That's 8:00am to 11:00pm. Lunch will be provided

Where will the sprints be?

The Sprints will take place at the Salt Palace Convention Center. Each Sprinting project will claim its own room or if the room is large enough, it will share the space with other Sprinting Projects.

Which projects are sprinting?

If you are interested in leading a sprint, please add your project using the link below:

Please submit a sprint here and add a brief description of your project that will be listed below. Include links to what you'll be sprinting on. Indicate if the sprint will be newcomer friendly!

Have questions not covered here?

Reach out to pycon-sprints@python.org

Cloud Custodian


Cloud Custodian is a CNCF project that provides an open source rules engine that helps organizations define policies in yaml to better manage their cloud environments with automated governance, security, compliance and efficiency.

Submitted by Kapil | Anchor link

Hypothesis


Hypothesis helps you write better tests! With property-based testing, you no longer have to think of inputs and outputs - and with the Ghostwriter, you'll never stare at an empty file again. At PyCon, we'll be sprinting on a variety of goals suitable for intermediate to expert Pythonistas:

  • Improve the Docs: we'd like to overhaul our API reference, and make sure everything is clearly explained right where you'd expect. Great for fresh users, designers, and technical writers.
  • Support for new Typing features: the ecosystem is evolving fast, and we're keen to keep up with new additions in 3.10, 3.11, and Numpy.
  • Django: we're seeking a Django user who can help us add support for pytest-django without making silly mistakes.
  • Deep Magic: compiling our backend for speed? Supporting symbolic execution, grammar-based, and coverage-guided fuzzing? Evil tricks with Unicode and timezones? Reporting the reason that a test failed? We have plenty of expert-level challenges to sink your teeth into.
  • Something else? Bugs don't stay open for long, but we have dozens more small features and refactorings on the backlog - or bring your own idea!
Submitted by Zac | Anchor link

PyVista


PyVista: a community effort to make 3D visualization and analysis more approachable

PyVista is used across science and engineering disciplines. A diverse community use PyVista to visualize data/models in 3D, generate publication-quality illustrations, automate analysis workflows, and build custom applications leveraging PyVista's 3D capabilities.

Submitted by Alexander | Anchor link

yamm


The yamm project is a freshly open sourced python package developed by the National Renewable Energy Laboratory. The package maintains a collection of algorithms and wrappers for mapping GPS data to road networks (commonly know as "map-matching"). Currently, the package is used to support various NREL efforts to de-carbonize transportation including recent development and refinement of vehicle energy prediction tools to enable eco-routing in Google Maps and other applications.

We'll be sprinting on a variety of topics listed out in this discussion: https://github.com/NREL/yamm/discussions/2. No previous experience with map-matching or GIS is required although it would be helpful for getting up to speed quickly.

Submitted by Nick Reinicke | Anchor link

Pantsbuild & PEX


Pants 2 is a fast, scalable, user-friendly build system for codebases of all sizes. It's currently focused on Python, Go, Java, Scala, Shell, and Docker, with support for other languages and frameworks coming soon.

PEX is a tool to create self-contained executable Python virtual environments (.pex files).

At our sprint (Monday Only):

* Pantsbuild contributors can help you get Pants set up in your repo
* Pantsbuild contributors will talk to you about whether you can benefit
from monorepos
* First-time contributor tickets for both Pantsbuild and PEX

Submitted by Chris | Anchor link

Strawberry GraphQL


Strawberry is a GraphQL library for Python 3, inspired by dataclasses.

Strawberry makes use of type hints to allow you to easily create GraphQL APIs. At the sprints we'll be looking at fixing some long standing issues, improving docs and maybe prototyping new cool feature (rust rewrite of the core or a JIT compiler for the queries).

Submitted by Patrick | Anchor link

Cinder


Cinder is Meta’s internal performance-oriented Python runtime, powering Instagram Server in production, as well as various other internal Python applications across Meta.

It contains a number of performance optimizations, including bytecode inline caching, eager evaluation of coroutines, a method-at-a-time JIT, and an experimental bytecode compiler that uses type annotations to emit type-specialized bytecode that performs better in the JIT.

We have embarked on a journey to make Cinder more broadly available, by upstreaming some parts, and extracting other parts into a pip-installable extension.

We are excited to participate in the PyCon US 2022 dev sprints, where a bunch of us will be hacking on several upstreaming projects. If you are interested in this work, come chat with us at the dev sprints!

Submitted by Itamar | Anchor link

Semgrep


Semgrep is a customizable linter for finding bugs and enforcing standards in your code.

Its rules look like the code you already write; no abstract syntax trees or regex wrestling. In fact, to find all print calls, you can just search print(...). But Semgrep is also smart enough to parse 24 different languages, understand control flow, and variable propagation. In fact, it's possible to mirror the entirety of Bandit by just writing Semgrep patterns.

Submitted by Bence | Anchor link

django-simple-deploy


Helping new Django developers through their first deployment is often a difficult process. People go from a friendly resource like the Polls tutorial, to being thrown into a platform provider's documentation.

django-simple-deploy is a standalone management command that automates the initial deployment process. If people have an account on a provider's platform, they can deploy their project in three steps, before they even visit the provider's documentation. A typical deploy command looks like this:

python manage.py simple_deploy --automate-all --platform azure

After running this command, a live version of the project pops up in the user's browser.

The project works and has a baseline set of tests. Sprint goals:

  • Fix a bug with Azure deployment.
  • The project currently dumps a log of the entire deployment process. Expand on this to generate a friendly .html file that leads the user into the most relevant sections of the platform's documentation.
  • Identify one additional platform to support. The project is structured so you can write a new "recipe" for deployment to a specific platform.
  • Any new or existing issues.

This project does not aim to take the place of a platform's documentation. It aims to get new developers a working version of their project; then they can start to understand how the project was deployed, and how to maintain the deployment.

Any help, feedback, or discussion is welcome. :)

Submitted by Eric | Anchor link

Pyodide


Pyodide is a Python distribution for the browser and Node.js based on WebAssembly.

This sprint is focused on improving different components of Pyodide, to make the experience of Python in the browser better.

We also welcome participants interested in,
- adapting your Python applications to run in the browser
- working on better WASM support in CPython
- exploring other frameworks and projects in the ecosystem, such as PyScript, JupyterLite, Irydium, etc

Submitted by Roman Yurchak | Anchor link

pyjanitor


pyjanitor is a library of commonly-used data cleaning functions that operate on pandas DataFrames. We are beginner-friendly and are looking for newcomer contributors who would like to help improve the project's documentation while also getting experience contributing to an open-source project. We are also open to new functionality being contributed!

Submitted by Eric | Anchor link