id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc	branch	branch_author	launchpad_bug
5645	Document the correct way to deprecate a function in Twisted	exarkun		"We have a pretty strict process for deprecations.  It's simple, but the steps all need to be followed exactly:

  * Do not change the function's behavior as part of this process
  * Cause usage of the function to emit a `DeprecationWarning`
    * either call `warnings.warn`
    * or use one of the APIs in `twisted.python.deprecate`
  * The warning text must include the version of Twisted in which the function is first deprecated (which will always be a version in the future)
  * The warning text should recommend a replacement, if one exists
  * The warning must ""point to"" the code which called the function.  For example, in the normal case, this means `stacklevel=2` passed to `warnings.warn`.
  * There must be a unit test which verifies these things.
    * Unit tests can use `TestCase.flushWarnings` or `callDeprecated` or one of the other helpers.
  * A `.removal` news fragment must be added.

Maybe I forgot some things, too.
"	enhancement	new	normal		core		documentation				
