On Tue, Jul 31, 2018 at 10:43 AM, Stephan Gambke <s7eph4n(a)protonmail.com> wrote:
There are three "probability qualifiers" in
that sentence (seems, probable, basically). You just don't know if somebody now has to
fix their code.
Correct -- I can't know, because they didn't put their code in a place
where code search finds it. What we can deprecate or remove and how
quickly is always a guess vis-a-vis extensions that we can't see. I
*do* know that it would be a significant hassle to go through the
deprecation procedure for every ancient crufty method from 2004 (or
whatever) that we want to get rid of. We would be paying a definite
cost for a gain that might not even exist.
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.
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.
You're right, but all that is just as true if we had deprecated the
feature per the policy. 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.)