On 11 Oct, 2009, at 20:58, Lennart Regebro wrote:

2009/10/11 Ronald Oussoren <ronaldousso...@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
(without
a setup.py or other explicit dependency information), and yet later
decide
to uninstall "SuperWebFramework". If I understand the proposal correctly
the uninstallation of "SuperWebFrameWork" would break my scripts.

Yes of course.

IMHO that is a bad experience for the user, because it is very unintuitive 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.

Sigh.

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.

That's what I meant by "I have to explictly install something that is already installed to ensure that it doesn't go away in the future", and this is not a useful behaviour.


This might work in a serious
development environment, but can end up to be very annoying and confusing
for casual users.

Can you come up with something better? How will the packaging registry
know that you want a particular package installed if you don't tell
it?

The current proposal without tracking if I explicitly installed a package works fine and matches how system package managers work.

This does make it harder to uninstall something like TurboGears that installs lots of dependencies, but it should be possible to write a tool that makes that easier. One way to do this in a GUI-ish manner is to have a "show dependencies" checkbox when you uninstall a package, this would then show all dependencies and allow easy selection of them for deinstallation.

This gets you simular functionality as tracking explictly requested installs without needing additional metadata.

Ronald

Attachment: smime.p7s
Description: S/MIME cryptographic signature

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

Reply via email to