On 05/15/2012 10:32 PM, Scott Gray wrote:
You can add a method by the same name if you need to, but you can't change an
existing method's signature.
1: Add new method. Nothing broken, nothing calls new code.
2: Modify existing old method to use new method. Old method using new
method, new method is now tested. This verifies that the interface for
external callers hasn't broken.
3: Modify all *other* code to call new method. This removes the use of
the old method from internal code, in preparation for (6).
4: Deprecate old method. This warnings existing developers to clear out
their memory of how the software works, and use the new way.
5: wait until deprecated old method is in release branch
6: remove old method.
See how I've done the recent mass-delegator deprecations. I'm
fast-tracking some of the steps, but all the steps are still there. And
I'm still doing extensive testing, even reading the diffs many times.
So far, the commits I've done have existed since December, 2010, and
there are additional lines I have to fix now.