On Thu, Sep 15, 2011 at 12:29 PM, Daniel Friesen lists@nadir-seen-fire.com wrote:
For awhile now we've had this pattern for deprecating interfaces:
- Mark it deprecated with @deprecated when you deprecate it
- In one or two releases add wfDeprecated
- A release or two after that or more remove the interface entirely
The rationale of not adding wfDeprecated seams to be so we don't spew warnings about recently deprecated methods to developers. ((Although after a discussion with Krinkle in #mediawiki we had a hard time justifying even that))
The fault of that pattern however is that as releases take time to come out by the time that the next release, or even the release after that, comes by developers have forgotten about the deprecation and forget to add the wfDeprecated for code they changed months ago and don't care about anymore. And the interfaces continue to be used without any notices to help notify people they're still using a deprecated interface which may only be half-functional.
I don't like this. Old interfaces should be either removed or fully supported to the extent that the interface allows. We can't spend our lives going around and changing code to fit some new-fangled interface when you can just make the old interfaces a wrapper around the new ones.