Skip to content

4 "How Can I Help?"

Eric Snow edited this page May 31, 2023 · 1 revision

Thank you for coming here! It means a lot. :)

As a project this one has a lot going for it. The subject matter is interesting. There are many opportunities to learn new things, particularly about CPython's internals and get involved in Python core development. The project has a real impact on the Python community, not only on hidden things like maintainability but also on additional functionality/utility, performance, and extensibility. It's notable that several groups of people already doing some of the work have goals other than multi-core Python, but that overlap with this project in a large portion of the tasks that have to get done. This says a lot about this value of doing this work. And you can help!

This is a big project, relative to the number of little things that have to be done. However, nearly all of it is small pieces of work that could be done by anyone with the interest and time. Furthermore, like most projects it benefits from different perspectives. So this is a perfect situation for involving a variety of people. Hopefully you feel comfortable helping out. :)

Below you will find information on how you can help. Again, thanks for coming!

Getting Started

Here are things you can do at first if you want to join in on the fun:

At any point do not hesitate to comment on issues or open new ones, especially if you find out-of-date or otherwise incorrect information, or you find that something is missing or confusing.

Important Details

This project was started by @ericsnowcurrently (a CPython core develper) several years ago. This GitHub repo/project is only a tool for keeping track of information and for organizing the effort. The actual work is still part of CPython core development. Active tasks here will link to issues on bugs.python.org where the work is actually done. PRs and reviews happen on github.com/python/cpython. Conversations about significant changes happen on the python-dev mailing list, like normal. All participants here should behave themselves in the same way as is expected for Python core development.

What Help Is Needed?

Nearly all the technical work is broken down as issues and organized into sub-projects. However, there is a variety of important work that anyone can do, which might not be covered as issues or on the sub-projects.

Overall here's an attempt at listing all the different needs of the project, at a high level:

  • write code
  • review PRs
  • interact with the core team (e.g. on BPO and python-dev)
  • run benchmarks
  • create benchmarks
  • write tests
  • fix tests
  • identify use cases
  • monitor bugs & coordinate fixing them
  • coordinate other efforts
  • write documentation
  • write examples
  • coordinate effort
  • manage resources (like this wiki)
  • evangelize
  • solicit feedback from the community (especially from extension module authors)
  • others?

Communication and Collaboration

The project doesn't really have a dedicated channel for general communication. (I suppose we could start up a mailing list or use discuss.python.org.) For now you can reach out to @ericsnowcurrently or post a message to the python-dev mailing list.

Collaboration is mostly ad hoc, and mostly through either issues here or issues on bugs.python.org.