4767
Programming

How the Python Packaging Council Came to Be: A Step-by-Step Guide

Introduction

In April 2026, the Python community reached a significant milestone: the formal approval of the Python Packaging Council, a governance body outlined in PEP 772. This council now holds broad authority over packaging standards, tools, and implementations. If you’re part of an open-source community looking to establish similar governance, or simply curious about how the Python ecosystem evolves, this guide walks you through the process—from drafting a proposal to electing the council. Each step mirrors the real journey of PEP 772, which took over a year of discussion before receiving the steering council’s green light. By the end, you’ll understand the key phases and best practices for creating a governance council in a large, distributed community.

How the Python Packaging Council Came to Be: A Step-by-Step Guide

What You Need

  • A clear problem or need – Define why a governance council is necessary (e.g., to streamline packaging standards).
  • A formal proposal (PEP) – Python Enhancement Proposals (PEPs) are the standard way to propose major changes.
  • Community discussion platform – The Python Discourse forum was used for extensive deliberations.
  • A steering council or equivalent body – In Python’s case, the steering council had the final authority to approve the PEP.
  • Election infrastructure – For council member elections, a voting system and voter registration are needed.
  • Patience and time – The process took over a year, from first proposal to approval.

Step-by-Step Process

Step 1: Draft a PEP (Formal Proposal)

Start by writing a Python Enhancement Proposal (PEP). For the Packaging Council, this was PEP 772, titled “Packaging Council governance process.” The draft should clearly describe:

  • The council’s purpose and authority
  • Membership size (the approved version set it at five members)
  • Election procedures
  • How decisions will be made
  • Any relationship to existing governance (e.g., the steering council)

Use the standard PEP template and submit it to the PEP editors. Ensure the proposal is specific enough to avoid ambiguity but flexible enough to evolve.

Step 2: Initiate Community Discussion

Once the PEP is submitted, post it on the community’s primary discussion forum—for Python, that’s discuss.python.org. The PEP 772 discussion ran for many months across multiple threads. Encourage feedback from:

  • Packaging tool maintainers
  • Regular Python developers
  • Users of packaging tools
  • Anyone with governance experience

Moderate discussions constructively. Keep a public record of all comments and suggestions. The goal is to reach rough consensus on the core ideas.

Step 3: Revise the PEP Based on Feedback

After collecting community input, revise the PEP. PEP 772 underwent lengthy refinements. Common changes include:

  • Clarifying scope and authority of the council
  • Adjusting election methods (e.g., single transferable vote vs. simple majority)
  • Adding term limits or rotation rules
  • Specifying how disagreements between the council and steering council are resolved

Publish revised versions and call for further comments. Repeat until the proposal stabilizes.

Step 4: Submit for Final Approval

When the PEP is mature, submit it to the relevant final decision body. In Python’s case, the steering council approved PEP 772 on April 16, 2026. The approval may require a formal vote. Prepare a summary of the discussion and the final version.

  • Ensure the decision body has had time to review the PEP.
  • Be ready to answer last-minute questions.
  • If approved, announce the outcome to the community.

Step 5: Plan and Conduct Elections

With the PEP approved, implement the election process. For the Python Packaging Council, five members will be elected. The election is likely to happen in June 2026, after PyCon US 2026 (mid-May). Key tasks:

  • Define the voter eligibility (e.g., contributors to packaging, or the broader Python community).
  • Set up an election system (e.g., using Helios or a custom tool).
  • Announce the nomination period and election dates.
  • Allow candidates to present platforms.
  • Hold the vote and certify results.

Transparency is crucial. Publish vote counts and candidate statements.

Tips for Success

  • Start early and plan for extended timelines. PEP 772 took over a year from first proposal to approval. Rushing can lead to incomplete consensus.
  • Engage diverse voices. Packaging affects many stakeholders; actively reach out to underrepresented groups and user communities.
  • Document everything. Keep an archive of discussions, revision histories, and decisions. This helps future contributors understand the rationale.
  • Separate governance from technical decisions. The council should focus on standards and processes, not individual tool implementations.
  • Consider a trial period. Some communities start with a provisional council to test the model before making it permanent.
  • Coordinate with existing leadership. The steering council’s support was critical for PEP 772. Keep the decision body informed throughout the process.
  • Use PEPs as a model. The PEP process itself provides a transparent, structured way to propose and debate changes—replicate it for other governance initiatives.

By following these steps and heeding the tips, your community can establish a governance council that strengthens collaboration and accelerates decision-making, just as the Python Packaging Council aims to do.

💬 Comments ↑ Share ☆ Save