[Python-Dev] Keyword meanings [was: Accept just PEP-0426]
Stephen J. Turnbull
stephen at xemacs.org
Thu Dec 6 03:12:36 CET 2012
I understand the PEP author's frustration with continued discussion,
but I think this subthread on Obsoletes vs. Obsoleted-By is not mere
bikeshedding on names. It matters *which package* presents the
Donald Stufft writes:
> On Wednesday, December 5, 2012 at 6:18 PM, Barry Warsaw wrote:
> > On Dec 05, 2012, at 06:07 PM, Donald Stufft wrote:
> > > If you're installing B you've prescribed trust to that
> > > author. If you don't trust the author then why are you
> > > installing (and then executing) code they wrote.
The author may be a genius when it comes to writing code, and an idiot
when it comes to distributing it. Distribution is much harder than it
looks, as you know. Trusting the author's *content* and trusting the
author's *metadata* are not equivalent!
As far as I can see, the semantics of putting "Obsoletes: A" into B
without changing A are the same as the semantics of putting "Provides:
A" into B (without changing A). Only if A includes "Obsoleted-By: B"
can a user be confident that B is a true successor to A.
Furthermore, as has been pointed out, the presence of "Obsoleted-By"
in A has the huge advantage of informing users and developers of
dependent packages alike that A is obsolete when they try to update A.
If A is not changed, then an attempted update will tell them exactly
that, and they may never find out about B. But if A is modified in
this trivial way, the package system can automatically inform them.
This is also trivial, requiring no database queries.
"Simple is better than complex."
 A trustworthy author of B wouldn't use "Provides" unless he
thought B was indeed a drop-in, and presumbly superior, replacement
for A. And that's all that "Obsoletes" can tell you!
More information about the Python-Dev