So we have to make a trade-off between the burden on extension developers and on core developers. When it seems likely that basically no non-public extension/skin uses the feature, I think it's reasonable to say that we should do what's easiest for core developers. If a few people out there who didn't put their extensions where we can see them have to go to some trouble, that's life.
I agree that there is a trade-off to be done. I disagree about expecting code to be put where it is visible to core developers. I do appreciate that you go and look for where the functionality that you are working on is used outside core. But ultimately MW is publishing a public interface and it is unreasonable to expect all consumers of that interface to "register" and publish their code as well.
It is a one-line change from your perspective. For the maintainer it will be picking up the extension ...
You're right, but all that is just as true if we had deprecated the feature per the policy.
The difference is that in that case the test would have run through, throwing just a notice and the call to the deprecated function could have been removed another day. Of course, if they did not want to deal with breakages, that maintainer should not have pulled MW master in the first place and should have just worked on whatever MW version they left off of a few months ago when they last worked on their extension.
You're talking about someone who didn't check the release notes before upgrading to find out if his extension used any removed features, so presumably he also doesn't check the release notes for deprecated features. Either way, the release notes do say that it was removed (easily searchable by method name) and what to do instead. (Although in this case I think the "what to do instead" in the release notes could be improved upon.)
True. I don't know how other people do it, but I usually only scan the release notes for big changes and otherwise rely on deprecation notes to pop up. Doing otherwise would require me to maintain a register of all MW core functions called from my extensions and cross-checking it by hand.
Stephan