[Catalog-sig] PEP 345 Update
Fred Drake
fdrake at acm.org
Sat Aug 14 04:13:26 CEST 2010
On Fri, Aug 13, 2010 at 8:34 PM, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
> Conflicts is useful to tell the installer a package cannot be
> installed if another one is installed,
I think there are actually a couple of separate cases:
1. The installations themselves are in conflict; common files are
overwritten by both packages perhaps, so they simply can't
coexist. This may happen with scripts or (distutils-style)
data files of the same location & name.
While I can imagine this happening, I don't recall any actual
examples.
2. Packages which cannot be correctly used together in a single
Python process. This can happen as a result of refactoring;
if a package is split into two, and the base interfaces are
moved to the new package, the new package may be incompatible
with older versions of the original package.
This I've seen, and we had no way to mark the incompatibility
in the metadata.
In the later case, there's not necessarily a reason not to install
the newer package alongside an older version of the original if
they aren't going to be used in the same process. An advisory
error would be appropriate, as well as a --force option to allow
a knowledgeable user to override the error.
Tools like zc.buildout, which assemble the working set provided
for each generated script independently, could make effective
use of the metadata to ensure appropriate package selections at a
finer level of granularity.
-Fred
--
Fred L. Drake, Jr. <fdrake at gmail.com>
"A storm broke loose in my mind." --Albert Einstein
More information about the Catalog-SIG
mailing list