[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