> On Jan 22, 2016, at 1:46 PM, Nathaniel Smith <n...@pobox.com> wrote:
> 
> On Jan 22, 2016 10:11 AM, "Donald Stufft" <don...@stufft.io 
> <mailto:don...@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.
> > The benefit of doing this, is that with a special value in that file that 
> > says
> > "this file belongs to the OS", then pip could start looking for that file 
> > and
> > require a --force flag before it modifies any files belonging to that 
> > project.
> > Then distributors like Debian, Fedora, etc could simply write out the 
> > INSTALLER
> > file with the correct value, and pip would start to respect their files by
> > default.
> 
> I'd like a little more clarity on exactly what circumstances justify setting 
> this flag. If I write a new python package manager, then should I set this 
> flag on all my packages because I don't trust anyone else to get things 
> right? :-)
> 
> Maybe the relevant thing is what I said above, that there is some system 
> tracking these files that is not using the dist-info directory as its 
> source-of-truth about what's installed, dependencies, etc.
> 
> -n
> 


-----------------
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to