I had kicked off a discussion a while back at https://discuss.python.org/t/how-do-we-want-to-manage-additions-removals-to-... about how to manage the stdlib (this has nothing to with *what* the stdlib is and thus what belongs in it). It finally bubbled up in the SC agenda and after discussing things we have three proposals:
- Update PEP 2 to say a PEP is necessary to add a module to the stdlib
- Update PEP 4 to say that a PEP is necessary to deprecate/remove a module
- Mark PEP 411 as obsolete and thus dropping the idea of provisional modules
The PEP requirements are because the stdlib is important to manage appropriately and since it's a shared resource it should be something we all discuss. The PEP process seems like a good mechanism for both keeping what we bring in under control while also making sure people don't break people's code needlessly with removals.
The dropping of the concept of provisional modules is from simply having not seen any true benefit that could have been had in other ways (e.g. typing, asyncio, importlib.metadata). In pretty much all cases the APIs could have evolved publicly first and then been brought into the stdlib once stable (if at all), so the concept of "provisional" just doesn't seem worth keeping around.
We wanted to see if there was consensus around any of these ideas, hence this email. 🙂