of work they have to do. The deprecation policy is
just to give
extension maintainers a bit of breathing room so they don't have to
scramble to update their extension before it breaks.
Exactly. It also makes it easier for them to maintain their extensions for more than the
last version of MW.
As far as these specific proposals, the wording of the
deprecation
policy suggests that removal without deprecation should only be cases
where it's absolutely necessary. I think we should also allow such
removal when it seems probable that basically nobody actually used the
feature.
There are three "probability qualifiers" in that sentence (seems, probable,
basically). You just don't know if somebody now has to fix their code. And one benefit
of having a spelled out policy is to make sure that not only the high-profile breaking
changes are properly treated but also the small ones.
For instance, the feature being removed in this case
is only
useful for tests of MagicWords. It doesn't seem worth the hassle to
go through a whole procedure to remove it if it will probably affect
nobody, and almost certainly affect at most one or two people, and the
affected parties will just have to make a one-line change.
It is a one-line change from your perspective. For the maintainer it will be picking up
the extension after some time, fixing some unrelated bug, running the tests and have them
fail. Finding the problem should be easy enough (method not found), but they then have to
investigate, why that stupid method is missing all of a sudden and find and understand the
recommended solution, digging through commits and phabricator tickets. They then need to
apply the solution which, if they want clean self-contained commits, includes committing
or stashing their current code, opening a new branch, applying the fix, running the test,
merging the branch to master, picking up the original branch and rebasing it. All of this
on top of the small bug fix they actually came for.
I am aware that I am talking hypothetics here. You are probably right that nobody out
there is using this particular method and even if so, then their production code will not
immediately stop working. So, by all means use your best judgement and go ahead if you
think removing the method is justified. But please keep in mind that any time you safe
when bypassing the procedure may mean more hassle down the line.
Cheers
Stephan