At 01:34 AM 7/1/2009 +0200, Tarek Ziadé wrote:
On Wed, Jul 1, 2009 at 12:47 AM, Steven D'Aprano<steve@pearwood.info> wrote:
I don't see how this proposal will help in the second case. If you install distribution Spam, containing file spam.py, and then install distribution Ham, which requires spam.py, what is to prevent you from removing Spam and breaking Ham?
If you don't propose a solution for the dependency problem, you should say so.
This problem is solved as described later in the PEP, with the API that allows you to get the list of the distributions that use a given file. (thanks to the RECORD files)
If Spam and Ham use smap.py, and if you uninstall Spam, this file will not be removed because the API will tell you its used in both distributions.
That's not the scenario he's talking about. He's talking about the case where Ham has an 'install_requires' of Spam. That is, a runtime dependency, not a shared file.
Good question, I have never created such distribution. Aren't they read-only files ?
setuptools' bdist_egg command has an option to exclude source from an .egg, but it doesn't do anything special with permissions. I don't think any other current install tools support source-free installation.
2009/7/1 P.J. Eby <pje@telecommunity.com>:
At 01:34 AM 7/1/2009 +0200, Tarek Ziadé wrote:
On Wed, Jul 1, 2009 at 12:47 AM, Steven D'Aprano<steve@pearwood.info> wrote:
I don't see how this proposal will help in the second case. If you install distribution Spam, containing file spam.py, and then install distribution Ham, which requires spam.py, what is to prevent you from removing Spam and breaking Ham?
If you don't propose a solution for the dependency problem, you should say so.
This problem is solved as described later in the PEP, with the API that allows you to get the list of the distributions that use a given file. (thanks to the RECORD files)
If Spam and Ham use smap.py, and if you uninstall Spam, this file will not be removed because the API will tell you its used in both distributions.
That's not the scenario he's talking about. He's talking about the case where Ham has an 'install_requires' of Spam. That is, a runtime dependency, not a shared file.
Ah, right sorry I misunderstood... They are no plans to handle dependency installation / uninstallation / managment at distutils level. so if you remove Ham, it will not check what distributions use it. So yes, I'll add a note on this, That said, the APIs will be powerfull enough for a third-party package managers to handle this case by throwing for example a warning or an exception.
participants (2)
-
P.J. Eby -
Tarek Ziadé