python / devguide

The Python developer's guide
https://devguide.python.org/
Creative Commons Zero v1.0 Universal
1.86k stars 781 forks source link

Document the workflow for deprecating something in CPython. #1419

Open Mariatta opened 1 month ago

Mariatta commented 1 month ago

Describe the enhancement or feature you'd like Document the workflow on how to deprecate something in CPython. Deprecating something in Python involves raising deprecation warning and then actually removing the code some time later (at least 2 release cycles). We don't have this process documented clearly.

Describe alternatives you've considered Currently this is undocumented process, and each of us has to just figure it out somehow.

Additional context Discussed on Discord core-workflow-and-bots channel, and now opening a ticket based on the discussions.

Basic process:

Other info:

encukou commented 1 month ago

This process is documented in PEP-387's Making Incompatible Changes section. It mentions the 2-release minimum, but also:

Also there's a "See if there’s any feedback" step, discussion, typeshed, and a mention of Py_DEPRECATED for C API deprecations.

hugovk commented 1 month ago

PEP 387 is the policy, and indeed includes the minimum and recommendations about a longer deprecation period.

However, I think it would be useful to have a practical guide in the devguide about the concrete steps (usually) needed, which don't belong in the PEP.

The devguide instructions should of course refer to the PEP for the policy details.

Mariatta commented 1 month ago

Hmm, I was expecting to find this info on the devguide, under Development Workflow. I think some docs in the peps repo really should be more in the devguide instead of the PEP, or perhaps the PEP can be the proposal, the background story.

The PEP also doesn't say stuff like: go add this to the pending-removal-in .. file.

So yeah I agree with Hugo, to have the detailed instructions in the devguide, and then add the .. seealso:: to the PEP.

encukou commented 1 month ago

IMO, a Process PEP should list the formal requirements, and the devguide should say how to meet them in practice. So, yes, please add this to Devguide! After that we can trim the PEP and have it link to devguide.

Mariatta commented 1 month ago

What is the workflow for "PendingDeprecationWarning"?

encukou commented 1 month ago

AFAIK, we don't use PendingDeprecationWarning in CPython any more.

Lincoln-developer commented 1 week ago

Hey @Mariatta I would love to work on this issue if no one is working on it. Thanks.

Mariatta commented 1 week ago

Hi @Lincoln-developer, yes please go ahead and create the PR.