CINXE.COM
PEP 609 – Python Packaging Authority (PyPA) Governance | peps.python.org
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="color-scheme" content="light dark"> <title>PEP 609 – Python Packaging Authority (PyPA) Governance | peps.python.org</title> <link rel="shortcut icon" href="../_static/py.png"> <link rel="canonical" href="https://peps.python.org/pep-0609/"> <link rel="stylesheet" href="../_static/style.css" type="text/css"> <link rel="stylesheet" href="../_static/mq.css" type="text/css"> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" media="(prefers-color-scheme: light)" id="pyg-light"> <link rel="stylesheet" href="../_static/pygments_dark.css" type="text/css" media="(prefers-color-scheme: dark)" id="pyg-dark"> <link rel="alternate" type="application/rss+xml" title="Latest PEPs" href="https://peps.python.org/peps.rss"> <meta property="og:title" content='PEP 609 – Python Packaging Authority (PyPA) Governance | peps.python.org'> <meta property="og:description" content="This document describes a governance model for the Python Packaging Authority (PyPA). The model is closely based on existing informal practices, with the intent of providing clarity into the functioning of the PyPA and formalizing transparent processes ..."> <meta property="og:type" content="website"> <meta property="og:url" content="https://peps.python.org/pep-0609/"> <meta property="og:site_name" content="Python Enhancement Proposals (PEPs)"> <meta property="og:image" content="https://peps.python.org/_static/og-image.png"> <meta property="og:image:alt" content="Python PEPs"> <meta property="og:image:width" content="200"> <meta property="og:image:height" content="200"> <meta name="description" content="This document describes a governance model for the Python Packaging Authority (PyPA). The model is closely based on existing informal practices, with the intent of providing clarity into the functioning of the PyPA and formalizing transparent processes ..."> <meta name="theme-color" content="#3776ab"> </head> <body> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="svg-sun-half" viewBox="0 0 24 24" pointer-events="all"> <title>Following system colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="9"></circle> <path d="M12 3v18m0-12l4.65-4.65M12 14.3l7.37-7.37M12 19.6l8.85-8.85"></path> </svg> </symbol> <symbol id="svg-moon" viewBox="0 0 24 24" pointer-events="all"> <title>Selected dark colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path> </svg> </symbol> <symbol id="svg-sun" viewBox="0 0 24 24" pointer-events="all"> <title>Selected light colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </symbol> </svg> <script> document.documentElement.dataset.colour_scheme = localStorage.getItem("colour_scheme") || "auto" </script> <section id="pep-page-section"> <header> <h1>Python Enhancement Proposals</h1> <ul class="breadcrumbs"> <li><a href="https://www.python.org/" title="The Python Programming Language">Python</a> » </li> <li><a href="../pep-0000/">PEP Index</a> » </li> <li>PEP 609</li> </ul> <button id="colour-scheme-cycler" onClick="setColourScheme(nextColourScheme())"> <svg aria-hidden="true" class="colour-scheme-icon-when-auto"><use href="#svg-sun-half"></use></svg> <svg aria-hidden="true" class="colour-scheme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg aria-hidden="true" class="colour-scheme-icon-when-light"><use href="#svg-sun"></use></svg> <span class="visually-hidden">Toggle light / dark / auto colour theme</span> </button> </header> <article> <section id="pep-content"> <h1 class="page-title">PEP 609 – Python Packaging Authority (PyPA) Governance</h1> <dl class="rfc2822 field-list simple"> <dt class="field-odd">Author<span class="colon">:</span></dt> <dd class="field-odd">Dustin Ingram <di at python.org>, Pradyun Gedam <pradyunsg at gmail.com>, Sumana Harihareswara <sh at changeset.nyc></dd> <dt class="field-even">Sponsor<span class="colon">:</span></dt> <dd class="field-even">Paul Ganssle <paul at ganssle.io></dd> <dt class="field-odd">Discussions-To<span class="colon">:</span></dt> <dd class="field-odd"><a class="reference external" href="https://discuss.python.org/t/pep-609-pypa-governance/2619">Discourse thread</a></dd> <dt class="field-even">Status<span class="colon">:</span></dt> <dd class="field-even"><abbr title="Currently valid informational guidance, or an in-use process">Active</abbr></dd> <dt class="field-odd">Type<span class="colon">:</span></dt> <dd class="field-odd"><abbr title="Normative PEP describing or proposing a change to a Python community process, workflow or governance">Process</abbr></dd> <dt class="field-even">Topic<span class="colon">:</span></dt> <dd class="field-even"><a class="reference external" href="../topic/governance/">Governance</a>, <a class="reference external" href="../topic/packaging/"> Packaging</a></dd> <dt class="field-odd">Created<span class="colon">:</span></dt> <dd class="field-odd">05-Nov-2019</dd> <dt class="field-even">Post-History<span class="colon">:</span></dt> <dd class="field-even">05-Nov-2019</dd> </dl> <hr class="docutils" /> <section id="contents"> <details><summary>Table of Contents</summary><ul class="simple"> <li><a class="reference internal" href="#abstract">Abstract</a></li> <li><a class="reference internal" href="#rationale">Rationale</a></li> <li><a class="reference internal" href="#terminology">Terminology</a></li> <li><a class="reference internal" href="#goals">Goals</a><ul> <li><a class="reference internal" href="#goals-of-the-pypa">Goals of the PyPA</a><ul> <li><a class="reference internal" href="#provide-support-for-existing-projects-under-the-pypa">Provide support for existing projects under the PyPA</a></li> <li><a class="reference internal" href="#foster-the-creation-and-acceptance-of-standards-for-pypa-projects">Foster the creation and acceptance of standards for PyPA projects</a></li> <li><a class="reference internal" href="#guide-decisions-which-affect-multiple-pypa-projects">Guide decisions which affect multiple PyPA projects</a></li> <li><a class="reference internal" href="#determine-which-projects-should-be-under-the-guidance-of-the-pypa">Determine which projects should be under the guidance of the PyPA</a></li> <li><a class="reference internal" href="#enforce-adherence-to-a-code-of-conduct-across-all-projects">Enforce adherence to a Code of Conduct across all projects</a></li> </ul> </li> <li><a class="reference internal" href="#non-goals-of-the-pypa">Non-goals of the PyPA</a><ul> <li><a class="reference internal" href="#determine-who-is-and-isn-t-a-pypa-member">Determine who is and isn’t a PyPA member</a></li> <li><a class="reference internal" href="#micromanage-individual-projects">Micromanage individual projects</a></li> <li><a class="reference internal" href="#develop-and-maintain-standalone-code-of-conduct">Develop and maintain standalone Code of Conduct</a></li> </ul> </li> <li><a class="reference internal" href="#goals-of-the-pypa-s-governance-model">Goals of the PyPA’s Governance Model</a><ul> <li><a class="reference internal" href="#transparency-in-pypa-membership">Transparency in PyPA membership</a></li> <li><a class="reference internal" href="#document-pypa-s-use-of-peps">Document PyPA’s use of PEPs</a></li> </ul> </li> </ul> </li> <li><a class="reference internal" href="#processes">Processes</a><ul> <li><a class="reference internal" href="#specifications">Specifications</a></li> <li><a class="reference internal" href="#governance">Governance</a><ul> <li><a class="reference internal" href="#pypa-committer-votes">PyPA Committer Votes</a><ul> <li><a class="reference internal" href="#addition-of-a-project-to-the-pypa">Addition of a project to the PyPA</a></li> <li><a class="reference internal" href="#creation-of-a-new-project-in-the-pypa">Creation of a new project in the PyPA</a></li> <li><a class="reference internal" href="#removal-of-a-project-from-pypa">Removal of a project from PyPA</a></li> <li><a class="reference internal" href="#updates-to-the-governance-specification-processes">Updates to the Governance/Specification Processes</a></li> </ul> </li> <li><a class="reference internal" href="#leaving-pypa">Leaving PyPA</a></li> <li><a class="reference internal" href="#code-of-conduct-enforcement">Code of Conduct enforcement</a></li> </ul> </li> </ul> </li> <li><a class="reference internal" href="#copyright">Copyright</a></li> </ul> </details></section> <section id="abstract"> <h2><a class="toc-backref" href="#abstract" role="doc-backlink">Abstract</a></h2> <p>This document describes a governance model for the Python Packaging Authority (PyPA). The model is closely based on existing informal practices, with the intent of providing clarity into the functioning of the PyPA and formalizing transparent processes for the PyPA.</p> </section> <section id="rationale"> <h2><a class="toc-backref" href="#rationale" role="doc-backlink">Rationale</a></h2> <p>The Python Packaging Authority (PyPA) is a collaborative community that maintains and advances many of the relevant projects in Python packaging. The software and standards developed through the PyPA are used to package, share, and install Python software and to interact with indexes of downloadable Python software such as <a class="reference external" href="https://pypi.org">PyPI</a>, the Python Package Index.</p> <p>Currently, the PyPA is an informal and loosely defined organization that lacks true authority, and the inclusion of a given project under the PyPA umbrella or the creation of new projects has been done in an ad-hoc, one-off manner. Similarly, individual membership in the PyPA is not well-defined.</p> <p>While this model has more or less worked for the PyPA in the past, it results in an organization which is missing certain features of a stable ecosystem, namely a clear and transparent decision-making process. This PEP seeks to rectify this by defining a governance model for the PyPA.</p> </section> <section id="terminology"> <h2><a class="toc-backref" href="#terminology" role="doc-backlink">Terminology</a></h2> <p>Relevant terms for groups of individual contributors used in this PEP:</p> <dl class="simple"> <dt><strong>PyPA members</strong>:</dt><dd>Anyone with the triage bit or commit bit, on at least one project in the <a class="reference external" href="https://github.com/pypa">PyPA organization</a>.</dd> <dt><strong>PyPA committers</strong>:</dt><dd>Anyone with the commit bit on at least one project in the PyPA organization, which should correspond to everyone on the <a class="reference external" href="https://mail.python.org/mm3/mailman3/lists/pypa-committers.python.org/">PyPA-Committers</a> mailing list.</dd> <dt><strong>PyPA community</strong>:</dt><dd>Anyone who is interested in PyPA activity and wants to follow along, contribute or make proposals.</dd> <dt><strong>Packaging-WG members</strong>:</dt><dd>As described in the <a class="reference external" href="https://wiki.python.org/psf/PackagingWG">Packaging-WG Wiki page</a>. For clarity: there is no formal relationship between the Packaging-WG and PyPA. This group is only included in this list to disambiguate it from PyPA.</dd> </dl> </section> <section id="goals"> <h2><a class="toc-backref" href="#goals" role="doc-backlink">Goals</a></h2> <p>The following section formalizes the goals (and non-goals) of the PyPA and this governance model.</p> <section id="goals-of-the-pypa"> <h3><a class="toc-backref" href="#goals-of-the-pypa" role="doc-backlink">Goals of the PyPA</a></h3> <p>These goals are the primary motivation for the existence of the PyPA. These goals are largely already being carried out, even though most have not been explicitly defined.</p> <section id="provide-support-for-existing-projects-under-the-pypa"> <h4><a class="toc-backref" href="#provide-support-for-existing-projects-under-the-pypa" role="doc-backlink">Provide support for existing projects under the PyPA</a></h4> <p>In the event that a given project needs additional support, or no longer has active maintainers, the PyPA will ensure that the given project will continue to be supported for users to the extent necessary.</p> </section> <section id="foster-the-creation-and-acceptance-of-standards-for-pypa-projects"> <h4><a class="toc-backref" href="#foster-the-creation-and-acceptance-of-standards-for-pypa-projects" role="doc-backlink">Foster the creation and acceptance of standards for PyPA projects</a></h4> <p>The PyPA should, as much as possible, strive for standardization and coordination across PyPA projects, primarily though the governance process outlined below. PyPA projects are expected to abide by applicable specifications maintained by the PyPA.</p> </section> <section id="guide-decisions-which-affect-multiple-pypa-projects"> <h4><a class="toc-backref" href="#guide-decisions-which-affect-multiple-pypa-projects" role="doc-backlink">Guide decisions which affect multiple PyPA projects</a></h4> <p>The PyPA community (especially PyPA members) should be expected to provide opinions, insight and experience when ecosystem-wide changes are being proposed.</p> </section> <section id="determine-which-projects-should-be-under-the-guidance-of-the-pypa"> <h4><a class="toc-backref" href="#determine-which-projects-should-be-under-the-guidance-of-the-pypa" role="doc-backlink">Determine which projects should be under the guidance of the PyPA</a></h4> <p>For example: accepting new projects from the community, organically creating projects within the PyPA, etc.</p> </section> <section id="enforce-adherence-to-a-code-of-conduct-across-all-projects"> <h4><a class="toc-backref" href="#enforce-adherence-to-a-code-of-conduct-across-all-projects" role="doc-backlink">Enforce adherence to a Code of Conduct across all projects</a></h4> <p>Generally this means leading by example, but occasionally it may mean more explicit moderation.</p> </section> </section> <section id="non-goals-of-the-pypa"> <h3><a class="toc-backref" href="#non-goals-of-the-pypa" role="doc-backlink">Non-goals of the PyPA</a></h3> <p>These are specific items that are explicitly _not_ goals of the PyPA.</p> <section id="determine-who-is-and-isn-t-a-pypa-member"> <h4><a class="toc-backref" href="#determine-who-is-and-isn-t-a-pypa-member" role="doc-backlink">Determine who is and isn’t a PyPA member</a></h4> <p>This is for members of individual projects to decide, as they add new members to their projects. Maintainership of a project that is under the PyPA organization automatically transfers membership in the PyPA.</p> </section> <section id="micromanage-individual-projects"> <h4><a class="toc-backref" href="#micromanage-individual-projects" role="doc-backlink">Micromanage individual projects</a></h4> <p>As long as the project is adhering to the Code of Conduct and following specifications supported by the PyPA, the PyPA should only concerned with large, ecosystem-wide changes.</p> </section> <section id="develop-and-maintain-standalone-code-of-conduct"> <h4><a class="toc-backref" href="#develop-and-maintain-standalone-code-of-conduct" role="doc-backlink">Develop and maintain standalone Code of Conduct</a></h4> <p>PyPA projects follow <a class="reference external" href="https://www.python.org/psf/conduct/">the PSF Code of Conduct</a>.</p> </section> </section> <section id="goals-of-the-pypa-s-governance-model"> <h3><a class="toc-backref" href="#goals-of-the-pypa-s-governance-model" role="doc-backlink">Goals of the PyPA’s Governance Model</a></h3> <p>These are new goals which the governance model seeks to make possible.</p> <section id="transparency-in-pypa-membership"> <h4><a class="toc-backref" href="#transparency-in-pypa-membership" role="doc-backlink">Transparency in PyPA membership</a></h4> <p>Provide a transparent process for decisions taken, regarding project membership in the PyPA.</p> </section> <section id="document-pypa-s-use-of-peps"> <h4><a class="toc-backref" href="#document-pypa-s-use-of-peps" role="doc-backlink">Document PyPA’s use of PEPs</a></h4> <p>Formally document how the PyPA uses Python Enhancement Proposals (PEPs), for maintaining interoperability specifications defined by the PyPA.</p> </section> </section> </section> <section id="processes"> <h2><a class="toc-backref" href="#processes" role="doc-backlink">Processes</a></h2> <p>The processes for the PyPA’s activities are outlined below:</p> <section id="specifications"> <h3><a class="toc-backref" href="#specifications" role="doc-backlink">Specifications</a></h3> <p>The PyPA will use PEPs for defining, and making changes to, the interoperability specifications maintained by the PyPA. Thus, the Python Steering Council has the final say in the acceptance of these interoperability specifications.</p> <p>It is expected (but not required) that the Python Steering Council would delegate authority to sponsor and/or approve/reject PEPs related to packaging interoperability specifications, to individuals within the PyPA community. At the time of writing (June 2020), the Python Steering Council has <a class="reference external" href="https://github.com/python/steering-council/blob/master/process/standing-delegations.md#pypa-delegations">standing delegations</a> for currently active packaging interoperability specifications.</p> <p>The details of the process of proposing and updating the interoperability specifications are described in the <a class="reference external" href="https://www.pypa.io/en/latest/specifications">PyPA Specifications</a> document.</p> </section> <section id="governance"> <h3><a class="toc-backref" href="#governance" role="doc-backlink">Governance</a></h3> <section id="pypa-committer-votes"> <h4><a class="toc-backref" href="#pypa-committer-votes" role="doc-backlink">PyPA Committer Votes</a></h4> <p>A PyPA member can put forward a proposal and call for a vote on a public PyPA communication channel. A PyPA committer vote is triggered when a PyPA committer (not the proposer) seconds the proposal.</p> <p>The proposal will be put to a vote on the <a class="reference external" href="https://mail.python.org/mm3/mailman3/lists/pypa-committers.python.org/">PyPA-Committers</a> mailing list, over a 7-day period. Each PyPA committer can vote once, and can choose one of <code class="docutils literal notranslate"><span class="pre">+1</span></code> and <code class="docutils literal notranslate"><span class="pre">-1</span></code>. If at least two thirds of recorded votes are <code class="docutils literal notranslate"><span class="pre">+1</span></code>, then the vote succeeds.</p> <p>PyPA committer votes are required for, and limited to, the following kinds of proposals:</p> <section id="addition-of-a-project-to-the-pypa"> <h5><a class="toc-backref" href="#addition-of-a-project-to-the-pypa" role="doc-backlink">Addition of a project to the PyPA</a></h5> <p>Proposing the acceptance of a project into the PyPA organization. This proposal must not be opposed by the existing maintainers of the project.</p> </section> <section id="creation-of-a-new-project-in-the-pypa"> <h5><a class="toc-backref" href="#creation-of-a-new-project-in-the-pypa" role="doc-backlink">Creation of a new project in the PyPA</a></h5> <p>Proposing the creation of a new tools / project in the PyPA organization.</p> </section> <section id="removal-of-a-project-from-pypa"> <h5><a class="toc-backref" href="#removal-of-a-project-from-pypa" role="doc-backlink">Removal of a project from PyPA</a></h5> <p>Proposing the removal of a project in the PyPA organization.</p> </section> <section id="updates-to-the-governance-specification-processes"> <h5><a class="toc-backref" href="#updates-to-the-governance-specification-processes" role="doc-backlink">Updates to the Governance/Specification Processes</a></h5> <p>Proposing changes to how the PyPA operates, including but not limited to changes to its specification and governance processes, and this PEP.</p> </section> </section> <section id="leaving-pypa"> <h4><a class="toc-backref" href="#leaving-pypa" role="doc-backlink">Leaving PyPA</a></h4> <p>A project that is a part of the PyPA organization, can request to leave PyPA.</p> <p>Such requests can made by a committer of the project, on the <a class="reference external" href="https://mail.python.org/mm3/mailman3/lists/pypa-committers.python.org/">PyPA-Committers</a> mailing list and must clearly state the GitHub user/organization to transfer the repository to.</p> <p>If the request is not opposed by another committer of the same project over a 7-day period, the project would leave the PyPA and be transferred out of the PyPA organization as per the request.</p> </section> <section id="code-of-conduct-enforcement"> <h4><a class="toc-backref" href="#code-of-conduct-enforcement" role="doc-backlink">Code of Conduct enforcement</a></h4> <p>Each project that is a part of the PyPA organization follows <a class="reference external" href="https://www.python.org/psf/conduct/">the PSF Code of Conduct</a>, including its incident reporting guidelines and enforcement procedures.</p> <p>PyPA members are responsible for leading by example. PyPA members occasionally may need to more explicitly moderate behavior in their projects, and each project that is a part of the PyPA organization must designate at least one PyPA member as available to contact in case of a Code of Conduct incident. If told of any Code of Conduct incidents involving their projects, PyPA members are expected to report those incidents up to <a class="reference external" href="https://wiki.python.org/psf/ConductWG/Charter">the PSF Conduct WG</a>, for recording purposes and for potential assistance.</p> </section> </section> </section> <section id="copyright"> <h2><a class="toc-backref" href="#copyright" role="doc-backlink">Copyright</a></h2> <p>This document is placed in the public domain or under the CC0-1.0-Universal license, whichever is more permissive.</p> </section> </section> <hr class="docutils" /> <p>Source: <a class="reference external" href="https://github.com/python/peps/blob/main/peps/pep-0609.rst">https://github.com/python/peps/blob/main/peps/pep-0609.rst</a></p> <p>Last modified: <a class="reference external" href="https://github.com/python/peps/commits/main/peps/pep-0609.rst">2023-09-09 17:39:29 GMT</a></p> </article> <nav id="pep-sidebar"> <h2>Contents</h2> <ul> <li><a class="reference internal" href="#abstract">Abstract</a></li> <li><a class="reference internal" href="#rationale">Rationale</a></li> <li><a class="reference internal" href="#terminology">Terminology</a></li> <li><a class="reference internal" href="#goals">Goals</a><ul> <li><a class="reference internal" href="#goals-of-the-pypa">Goals of the PyPA</a><ul> <li><a class="reference internal" href="#provide-support-for-existing-projects-under-the-pypa">Provide support for existing projects under the PyPA</a></li> <li><a class="reference internal" href="#foster-the-creation-and-acceptance-of-standards-for-pypa-projects">Foster the creation and acceptance of standards for PyPA projects</a></li> <li><a class="reference internal" href="#guide-decisions-which-affect-multiple-pypa-projects">Guide decisions which affect multiple PyPA projects</a></li> <li><a class="reference internal" href="#determine-which-projects-should-be-under-the-guidance-of-the-pypa">Determine which projects should be under the guidance of the PyPA</a></li> <li><a class="reference internal" href="#enforce-adherence-to-a-code-of-conduct-across-all-projects">Enforce adherence to a Code of Conduct across all projects</a></li> </ul> </li> <li><a class="reference internal" href="#non-goals-of-the-pypa">Non-goals of the PyPA</a><ul> <li><a class="reference internal" href="#determine-who-is-and-isn-t-a-pypa-member">Determine who is and isn’t a PyPA member</a></li> <li><a class="reference internal" href="#micromanage-individual-projects">Micromanage individual projects</a></li> <li><a class="reference internal" href="#develop-and-maintain-standalone-code-of-conduct">Develop and maintain standalone Code of Conduct</a></li> </ul> </li> <li><a class="reference internal" href="#goals-of-the-pypa-s-governance-model">Goals of the PyPA’s Governance Model</a><ul> <li><a class="reference internal" href="#transparency-in-pypa-membership">Transparency in PyPA membership</a></li> <li><a class="reference internal" href="#document-pypa-s-use-of-peps">Document PyPA’s use of PEPs</a></li> </ul> </li> </ul> </li> <li><a class="reference internal" href="#processes">Processes</a><ul> <li><a class="reference internal" href="#specifications">Specifications</a></li> <li><a class="reference internal" href="#governance">Governance</a><ul> <li><a class="reference internal" href="#pypa-committer-votes">PyPA Committer Votes</a><ul> <li><a class="reference internal" href="#addition-of-a-project-to-the-pypa">Addition of a project to the PyPA</a></li> <li><a class="reference internal" href="#creation-of-a-new-project-in-the-pypa">Creation of a new project in the PyPA</a></li> <li><a class="reference internal" href="#removal-of-a-project-from-pypa">Removal of a project from PyPA</a></li> <li><a class="reference internal" href="#updates-to-the-governance-specification-processes">Updates to the Governance/Specification Processes</a></li> </ul> </li> <li><a class="reference internal" href="#leaving-pypa">Leaving PyPA</a></li> <li><a class="reference internal" href="#code-of-conduct-enforcement">Code of Conduct enforcement</a></li> </ul> </li> </ul> </li> <li><a class="reference internal" href="#copyright">Copyright</a></li> </ul> <br> <a id="source" href="https://github.com/python/peps/blob/main/peps/pep-0609.rst">Page Source (GitHub)</a> </nav> </section> <script src="../_static/colour_scheme.js"></script> <script src="../_static/wrap_tables.js"></script> <script src="../_static/sticky_banner.js"></script> </body> </html>