(Disclaimer: this email does not advocate using eggs; it's a comment on
needed functionality in bdist_mpkg, however it gets implemented.)
At 02:49 PM 12/14/2005 +0100, M.-A. Lemburg wrote:
> > I have definitely had real-world experience where bdist_mpkg fails
> > miserably. The worst cases are when a module turns into a package, or
> > is moved from inside a package to top-level, etc. The old code is still
> > around and gets imported, requiring the user to manually obliterate
> > something inside their site-packages.
>
>The installer preinstall/upgrade scripts can take care
>of this.
Only if the upgrade script knows what files are installed; this is much
easier to handle with an .egg, since PEP 262 was never added to the distutils.
> > Moving to eggs is the right solution, taking what bdist_mpkg currently
> > does and making it available to everyone is a bad idea.
>
>I think differently, but you know that, so I won't elaborate.
Until/unless Apple adds uninstallation support, you'll need to duplicate
egg functionality in some other way to support this. If you implement a
bdist_mpkg that *doesn't* duplicate at least some egg functionality, then
Bob is correct: it's a *very* bad idea.
>You don't change package hierarchies that often and if you
>do, you have to be careful not to break backwards compatibility
>anyway.
Your argument here appears to be, "things are hard the way we do them now,
but that's okay because we experts know they're hard and if you're not an
expert you don't deserve to have things work. There's no need to do things
more easily because we already know how to do them the hard way." I'm not
sure how that approach helps the distutils "move forward" in any way.
> > A version in distutils proper would also be a pain in my ass, because
> > that would trump the third party command name and compel me to rename it.
>
>We could use a different command name, e.g. bdist_macosx.
Actually, setuptools-based commands trump non-setuptools commands, as long
as the project uses setuptools. If it doesn't use setuptools, you can
force it to by using:
python -c "import setuptools;execfile('setup.py')" ...
in place of:
python setup.py ...
So I don't think adding a bdist_mpkg to distutils would actually result in
any chapping of Bob's posterior. :)
But I do think that anybody building a bdist_mpkg needs to have it support
uninstallation (e.g. by creating an uninstall script) and upgrading (by
finding any previous version and running its uninstall script). Otherwise,
there is no reason (that I understand, anyway) to *have* a bdist_mpkg
format; it won't be doing anything you can't do with say, bdist_dumb or a
plain "setup.py install".
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig