[Distutils] PEP 376, the INSTALLER file, and system packages

Nathaniel Smith njs at pobox.com
Fri Jan 22 17:17:12 EST 2016

On Fri, Jan 22, 2016 at 11:28 AM, Donald Stufft <donald at stufft.io> wrote:

> On Jan 22, 2016, at 1:46 PM, Nathaniel Smith <njs at pobox.com> wrote:
> On Jan 22, 2016 10:11 AM, "Donald Stufft" <donald at stufft.io> wrote:
> >
> > PEP 376 added a file to the .dist-info directory called "INSTALLER"
> which was
> > supposed to be:
> >
> >     This option is the name of the tool used to invoke the installation.
> >
> > However, nothing has really ever implemented it and it's gone largely
> ignored
> > until just recently pip 8.0 started writing the INSTALLER file into the
> > metadata directories with a value of "pip".
> >
> > I'd like to propose adding a special cased value to add to the installer
> file
> > that will tell projects like pip that this particular installed thing is
> being
> > managed by someone else, and we should keep our hands off of it.
> According to
> > PEP 376 the supported values for this file are r"[a-z0-9_-.]", however I
> think
> > since nobody has ever implemented it, we could expand that so that it so
> you
> > can also have a special value, of "dpkg (system)" or maybe that's not
> worth it
> > and we could just have "system" as a special value.
> I think we want more than just "system", because the same user could have
> some packages managed by dpkg and some by conda, both of which have their
> own dependency resolution mechanisms that are outside pip's and could get
> broken if pip removes stuff willy-nilly. And when pip errors out, you want
> to be able to explain to the user "this package is managed by conda, and
> using pip on it may break your conda setup..." versus "this package is
> managed by Debian, and using pip on it may break your Debian setup...".
> (Actually I'm not sure what the status these days is of mixing pip and
> conda -- they've gotten somewhat better at handling it. Is the proposed
> behavior in pip when it sees this flag something that distribution
> maintainers have asked for? Are they present in this thread?)
> Yea, that’s why I thought about dpkg (system) or system(Debian) or
> something. The main reason I can think of for preferring “system” is if we
> don’t want to change the valid characters for a value in this file. Then
> you can have system(Debian) and system(Conda) and everything will work just
> fine.

Maybe to simplify the discussion we should just forget about INSTALLER,
leave it in peace to be what the PEP says ("fyi this is the last program to
touch this, in case anyone cares"), and add a new file with whatever
syntax/semantics make sense. Filenames are cheap and plentiful, and no
reason to complicate this discussion with hypothetical backcompat worries.


Nathaniel J. Smith -- https://vorpus.org <http://vorpus.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20160122/3ba52add/attachment-0001.html>

More information about the Distutils-SIG mailing list