Martin v. Löwis added the comment:

This "clean uninstall" is a convention at least on Windows and Linux (except 
that on Linux, you have the option of leaving manually-edited configuration 
files behind if you wish).

An MSI can indeed invoke commands on uninstall (preferably of course before 
removing the actual Python interpreter, if the command needs Python). This is 
currently commented out in msi.py.

I agree that the current implementation correctly implements the PEP. The PEP 
says that it will leave files behind on uninstall, and it does. The PEP is 
silent on whether the option to install pip should be enabled by default, so it 
is off by default. If people really really want it, I could enable it by 
default, making it leave files behind. I would do so protestingly, and predict 
that users would complain.

The PEP also states that uninstallation is beyond its scope - so if 
uninstallation was added, no PEP change would be needed.

MSI also supports "authored" removal of files, i.e. I could explicitly 
hard-code a list of files to be removed on uninstall, see

http://msdn.microsoft.com/en-us/library/aa371201(v=vs.85).aspx

This supports wildcard file names, so I would only need to hardcode the list of 
directories to be removed.

Removal would only happen when the user originally selected to install pip. If 
it is done through a command, the command could opt to not remove pip if pip 
had been updated; the "authored" removal would remove the files regardless 
whether the had been updated (entirely new directories created in an update 
would be untouched).

One issue could be upgrades: currently, an upgrade (say to 3.4.1) is done by 
removing all files from the previous version, then installing all files of the 
new version. A command to remove should then not remove if the installed 
version is newer than the bundled one, or else the upgrade might downgrade pip.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19728>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to