-
Notifications
You must be signed in to change notification settings - Fork 6
4 "How Can I Help?"
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!
Here are things you can do at first if you want to join in on the fun:
- watch @ericsnowcurrently's talk at PyCon US 2019
- listen to his episode on @mikeckennedy's TalkPython['Podcast']
- take a look at the information in the project's wiki; it is meant to provide all the context needed for this project
- check out the different sub-projects and see what might be most interesting to you
- "interpreter isolation (runtime state -> interpreter state)" is the one dealing with the GIL
- "PEP 554 / testing" is the one exposing subinterpreters to Python code
- see if there are any open issues that attract your interest
- get in touch with @ericsnowcurrently if you have any questions
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.
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.
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?
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.