This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author loewis
Recipients dstufft, loewis, ncoghlan, ned.deily
Date 2013-11-23.10:13:13
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1385201593.69.0.553581378691.issue19728@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2013-11-23 10:13:13loewissetrecipients: + loewis, ncoghlan, ned.deily, dstufft
2013-11-23 10:13:13loewissetmessageid: <1385201593.69.0.553581378691.issue19728@psf.upfronthosting.co.za>
2013-11-23 10:13:13loewislinkissue19728 messages
2013-11-23 10:13:13loewiscreate