# python-ideas HOWTO
Hello, and welcome to [python-ideas](https://mail.python.org/mailman3/lists/python-ideas.python.org/)!
This is a discussion list for speculative language changes to Python!
----
## First time posting?
A few quick tips:
* please read through the [Code of Conduct](https://www.python.org/psf/conduct/) for the Python community. It is enforced on all mailing lists and Python forums!
* Changes to Python begin with an understanding of how Python already works. We suggest asking questions on [python-list](https://mail.python.org/mailman/listinfo/python-list) before bringing a proposal to [python-ideas](https://mail.python.org/mailman3/lists/python-ideas.python.org/).
* Please remember that Python is run by volunteers, and respect their time and effort!
## More information on how decisions to evolve Python are made
Changing or adding features to the language affects a lot of people, and proposals are carefully discussed before any decisions are made. This care and consideration is one of the reasons why Python is an excellent language, and that's why we do it this way!
Are you interested in helping improve Python? Excellent! Read on!
---
### python-ideas
The [python-ideas](https://mail.python.org/mailman3/lists/python-ideas.python.org/) list is the place to engage in serious discussion about an idea for improving Python. It has many experienced Python developers on it, including several members of the Steering Council.
The python-ideas list is where we discuss how well an idea fits with Python's philosophy, concerns with technical implementation, issues of backwards compatibility, and anything else relevant.
If there is significant support on python-ideas for an improvement or change, then there are several possible next steps. If it's a small change, someone may simply implement it (e.g. [this discussion about dictionary features](https://mail.python.org/archives/list/python-ideas@python.org/thread/KLDQAPOIJEANCKYCHQZ536WHQ45I6UVW/)). If it's a bigger change, read on!
Once an idea for a major change or new feature has been discussed on python-ideas and the discussion has settled down into a broadly positive consensus, the primary backers for the idea should summarize the discussion in an informal writeup. This summary should contain all of the major pro and con discussion points from the mailing list discussion, phrased so that the participants on the mailing list agree that the summary is accurate.
Once the summary is posted to the list and everyone agrees the summary is accurate, at least one core developer needs to sponsor the idea for entry into the PEP process.
Here are some example discussions if you're curious about how the process works in practice!
* [Providing a separate equality method for hashable objects](https://mail.python.org/archives/list/python-ideas@python.org/thread/X2FXOYZ4GMA7CGEVQRZQDKSG2QNNHBQQ/) was discouraged for several reasons.
* A question about [updating documentation for `__instancecheck__`](https://mail.python.org/archives/list/python-ideas@python.org/thread/5BPDKWIBO3B4A7WPDGYR3YVCFQTFIBDX/) is [now an issue being considered](https://bugs.python.org/issue35083).
* [A request to add `suspend()` and `resume()` to `subprocess.Popen` objects](https://mail.python.org/archives/list/python-ideas@python.org/thread/NNNCG4IKUB4XYC7ZXLY4BCUG533MQJQY/) was rejected as relying on OS-specific and undocumented features.
* [This discussion on dictionary features](https://mail.python.org/archives/list/python-ideas@python.org/thread/KLDQAPOIJEANCKYCHQZ536WHQ45I6UVW/) led to some updated examples, but did not require substantial changes to Python.
* [This question on comparing floating point numbers](https://mail.python.org/archives/list/python-ideas@python.org/thread/A7T6ONKP3WG5AWE3Y5XLV3LUP4OIOOIT/#4265HINA65IX7JOZ62FL4MYXYDLHWMIX) became [PEP 485](https://www.python.org/dev/peps/pep-0485/), which implemented [math.isclose](https://docs.python.org/3/library/math.html).
* [This request for a briefer string format](https://mail.python.org/archives/list/python-ideas@python.org/thread/43VB6A7TMDT6MZWSLUVV3XMXXNUD2OJ4/#6MIGQNVACACD2LH5FWFCBOLYT3EA5MXL) became [PEP 498](https://www.python.org/dev/peps/pep-0498/), which implemented [formatted string literals ("f-strings")](https://docs.python.org/3/reference/lexical_analysis.html#f-strings).
----
### The PEP process
A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment. PEPs are the primary mechanisms for proposing major new features, for collecting community input on an issue, and for documenting the design decisions that have gone into Python.
The full PEP process is described in [PEP 1](https://www.python.org/dev/peps/pep-0001/), and you can see several examples of discussions above!
## How to get involved in the Python community
Python depends on volunteer effort, and is governed by the community of volunteers! There are many ways to volunteer in the Python community - it's not all about coding!
If you're new to Python and want to volunteer in the community, we suggest starting by reading [python-list](https://mail.python.org/mailman/listinfo/python-list) and [python-ideas](https://mail.python.org/mailman3/lists/python-ideas.python.org/), attending a local meetup, and/or participating in online forums. Python is widely used and there are many ways to get involved!
If you're interested in the maintenance and development of the Python language itself, please see [options for contributing to Python](https://www.python.org/dev/peps/pep-0013/#the-core-team) for some ideas. Python is run by and for the community (see the Python governance model in [PEP 13](https://www.python.org/dev/peps/pep-0013/)) and we welcome all comers!
If you're specifically interested in core Python *development*, you should sign up for the [core mentorship list](https://www.python.org/dev/core-mentorship/). You might also be interested in the [Python developer documentation](https://devguide.python.org/).
## Unresolved issues
* how should we describe [the discourse forum](https://discuss.python.org/c/ideas) vs the python-ideas mailing list?
* where does this fit in the dev guide? [see python-ideas thread about this document](https://mail.python.org/archives/list/python-ideas@python.org/thread/4HN5IOCF6Q642YDOK33NYKIRBPT4337P/#W6JBRKH66IYHRLTJYTMZSH7TQ6APZTYV)