[Distutils] tracking requested vs dependency installs in PEP 376 metadata
eric at trueblade.com
Mon Oct 12 02:06:05 CEST 2009
Ronald Oussoren wrote:
> On 11 Oct, 2009, at 20:58, Lennart Regebro wrote:
>> 2009/10/11 Ronald Oussoren <ronaldoussoren at mac.com>:
>>>>> That is, I install "SuperWebFramework==1.0" which happens to depend on
>>>>> peak-rules. I later start using peak-rules in my own simple scripts
>>>>> a setup.py or other explicit dependency information), and yet later
>>>>> to uninstall "SuperWebFramework". If I understand the proposal
>>>>> the uninstallation of "SuperWebFrameWork" would break my scripts.
>>>> Yes of course.
>>> IMHO that is a bad experience for the user, because it is very
>>> that I have to explicitly install something that's already installed to
>>> ensure that it doesn't go away in the future.
>> But this is how all installs/uninstalls work and MUST work. If you
>> uninstall the software that you use, then you can't use it. It's a
>> simple necessity of life.
> 1) Install TurboGears, this installs simplejson as one of its dependencies
> 2) Notice that simplejson gets installed and is a useful module, then
> use that in your own scripts
> 3) Uninstall TurboGears
> With proposal of tracking which packages are installed as a dependency
> of other packages and automaticly uninstalling them when the package
> that depends on them gets uninstalled step 3 would break my scripts
> unless I explictly tell the installer that I really want to use
> simplejson in step 2.
You really need to evaluate the dependency graph when uninstalling, a
simple bit doesn't help.
Image step 2B above: install Yapper, which uses simplejson.
Even if step 3 wants to uninstall simplejson, it now needs to know that
other installed "module distributions" (as the term is used by
distutils) depend on it.
More information about the Distutils-SIG