July 12, 2018·6 min read·engineeringpythongovernancepeps

Guido van Rossum leaves Python's language decisions to the core developers

Guido van Rossum steps down as BDFL after accepting PEP 572. His announcement leaves proposal decisions and the admission of core developers for the existing committers to organize.

Python's next governance decision will have to establish who is authorized to make governance decisions. Guido van Rossum's July 12 announcement removes him from the language's decision process without naming a successor. He asks the existing core developers to work out what follows. The immediate issue is the authority to settle proposals and admit new core developers, while routine development can continue through its existing arrangements.

The announcement follows his July 11 acceptance of PEP 572, the assignment-expression proposal. In explaining his withdrawal, van Rossum directly connects the decision with the difficulty of that debate and the reaction to his decisions. His message establishes his own account of the situation. It does not establish every participant's motives or justify treating disagreement over syntax as one uniform position.

I am often reluctant about Python itself while depending on the strength of its libraries. That makes the continuity of its decision process relevant even when a particular syntax proposal is not a reason to choose the language. Libraries need a language that can evolve through decisions its maintainers have the capacity and authority to carry out.

The withdrawal has a defined scope

Van Rossum says he wants to leave the decision process entirely. He also says he expects to remain an ordinary core developer for a while and remain available to mentor people. Those statements distinguish withdrawal from leadership authority from an immediate end to all participation in Python development.

This matters because a project's founder can occupy several roles at once. Writing code, helping contributors and settling a contested language proposal are different activities. The announcement retains room for the first two while declining responsibility for the last. Reading it as a complete departure would obscure the practical boundary he states.

He also distinguishes routine issue-tracker and GitHub decisions from the questions that need explicit attention. According to his message, he is rarely asked for an opinion on day-to-day matters, and those matters can continue as before. The project therefore does not need to treat every ordinary development action as newly unauthorized merely because the final language decision-maker is withdrawing.

That observation limits what can reasonably be inferred about immediate disruption. The message does not say that code review stops or that the issue tracker needs a replacement authority before anyone can proceed. It identifies a narrower institutional gap. A project may have distributed ordinary maintenance effectively while still relying on one person to decide exceptional questions.

The challenge for core developers is to preserve that working distribution of responsibility while defining what happens when ordinary agreement does not settle a proposal. Reassigning every existing maintenance task would answer a larger question than the announcement raises. Leaving exceptional decisions undefined would fail to answer the question it does raise.

PEP acceptance reveals the missing authority

Van Rossum names deciding PEPs as one of the most important responsibilities. The preceding day's acceptance message gives a concrete example of that responsibility in use. After a final round of feedback, he states that he accepts PEP 572 and points readers to the proposal and its revision history.

The message lists changes since the earlier posting. They include restrictions on unparenthesized assignment expressions in annotations and lambdas, clarification of assignment to comprehension loop variables, and clarification of operator precedence. The acceptance therefore concerns a proposal with specific syntax and semantics, not merely approval of a broad desire for shorter code.

It also ends by identifying implementation work as the next task. That separation matters. Accepting a proposal establishes the project's decision about a language change. Implementing the change is additional work. The acceptance message does not make assignment expressions available in an already released interpreter.

The governance transition concerns who can issue comparable decisions after van Rossum's withdrawal. A discussion may produce useful edits and strong arguments without producing an agreed result. The previous arrangement supplied a person authorized to settle the proposal. Whatever process the developers choose must explain how a discussion becomes a decision with sufficient authority for implementation work to proceed.

This need does not predetermine whether the replacement should be one person or a group. Van Rossum explicitly declines to select a successor and lists several possible forms of organization as questions. Those questions show that the future arrangement remains open. They should not be read as a settled shortlist or a recommendation for a particular structure.

My preference is for responsibilities that remain legible to contributors. A proposal author should be able to determine who evaluates a disputed change and what constitutes a decision. That is a judgement about the process Python now needs to define, not a claim that one specific model has already earned the developers' agreement.

Admission determines who can make future decisions

The second responsibility van Rossum identifies is inducting new core developers. This question affects the composition of the group asked to organize the transition. A governance process cannot remain well-defined indefinitely if it explains decisions but leaves the identity of its decision-makers unresolved.

Admission has a different timescale from deciding one proposal. A proposal decision settles a particular change. An admission decision changes who participates in maintaining the project and potentially in later governance decisions. The relationship becomes especially relevant when the existing committers are the people being asked to establish the next arrangement.

The announcement assigns that work to current committers rather than naming an external authority. It suggests that processes could be written as PEPs and might form something like a constitution. This is a possible method for recording the rules, not an adopted procedure for the transition. The message leaves the developers to determine the substance and how to agree on it.

Written procedures could help separate the authority attached to a role from the individual currently performing it. That is an implication of documenting these responsibilities. It would let contributors examine the rule for admitting a developer or accepting a proposal without reconstructing an informal expectation about the founder's involvement.

Such a document would also need to be clear about how it changes. The announcement does not supply that rule, so claiming an amendment mechanism now would invent an outcome. At this stage the concrete fact is that the existing developers have been asked to define processes for responsibilities previously associated with the BDFL arrangement.

Conduct obligations remain in place

Van Rossum's message explicitly states that the code of conduct still applies. He raises possible questions about removing someone from the group or banning someone from development lists covered by that code. The withdrawal from language decisions therefore does not mean that the project has withdrawn its existing conduct expectations.

This distinction belongs in the governance discussion because authority concerns people as well as syntax. A process may need to establish who can participate and what happens when participation must be restricted. The announcement identifies those questions without supplying a new disciplinary procedure.

The venue is also significant in a specific way. Van Rossum reminds readers that the python-committers list has public archives even though membership is limited to core developers. The request is directed to a defined group, while its record is available for others to read. Public visibility and decision-making membership are separate properties of this discussion.

For people who depend on Python without holding a core-developer role, the archive provides a way to understand what has actually been said. It does not give every reader a vote in a procedure that has not yet been defined. Keeping those distinctions clear helps avoid turning a public announcement into unsupported claims about who now controls the language.

The current task is to establish a process

The two dated messages establish a precise sequence. Van Rossum accepts PEP 572 on July 11. On July 12 he asks to leave decision-making, refuses to appoint a successor and asks the current committers to organize what comes next. His continued availability as a developer or mentor does not reverse that withdrawal of decision-making responsibility.

The transition therefore begins with a bounded set of unresolved questions. PEPs still need a way to reach authoritative decisions, and the project still needs a way to admit core developers. Routine maintenance has existing arrangements the announcement expects to continue. The developers' immediate work is to define the missing authority while retaining the development practices that already operate without frequent intervention from the BDFL.