Thanks for starting this discussion and sharing the ideas. My own thoughts:
* As to mpmath, it contains essential things that should imho be part
of sympy, also it's just 8 files, no nested directories, so we just
plain copy them to sympy and that's it. That's imho the best solution
here and this is how it is done now. So I think mpmath is a non-issue.
* pyglet: I think we could distribute sympy-pure.tar.gz (without
pyglet) and sympy.tar.gz (with pyglet). Unfortunately this means more
work for the release manager, as now he needs to test two tarballs,
but if it's worthy, let's do it. The only real problem here is the
sys.path hack, but that is imho only needed in python2.4, so this
should soon become non-issue anyway, as I think in python2.5 it coud
be fixed by relative imports and we don't need any sys.path things
anymore. An argument could be the size of pyglet --- is there a
problem with it? For me the size is ok.
> So, is sympy an everything-but-the-kitchen-sink, batteries-included library,
> or a svelte library with lots of optional add-ons?
Both. It should be easy enough to get the job done. Imho it needs to
be judged on case by case basis, so for mpmath and pyglet, see my
thoughts above.
Ondrej
Sure, I am not against. As always, the only real requirement is that
the thing is easy to maintain, test and produce (e.g. now it's enough
for me to do setup.py bdist_wininst).
OK, so to move things forward, the reason for using a particular
mpmath and a particular pyglet is that those are versions that are
known to work with sympy.
So let's try to figure out how to use pyglet without touching
sys.path. If we succeed, is anyone against leaving both mpmath and
pyglet in sympy?
If we fail, then we'd have to release two tarballs, one with, the
other without, pyglet.
Ondrej
Why do you not like it? Because of the size of the included files?
There shouldn't be any other side effect.
>
>> If we fail, then we'd have to release two tarballs, one with, the
>> other without, pyglet.
>>
>
> What's so wrong with sys.path hacking?
Because it's leaving side effects for the user, which is very, very
bad. Also it does't work always, for example on the google app engine.
Ondrej
Eggs work by monkey patching sys.patch, which has some "interesting"
consequences. IMHO thisis not acceptable. It has been pointed out that
these consequences can be avoided by patching setuptools. This patch is
not happening, and setuptools development process is not transparent. I
consider setuptools as a neat toy, but not mature and useable for
production. Not everybody agrees with me :).
Gaėl
I do! :)
Ondrej
For instance you can no longer override the import of a module by
installation a newer version of it... unless you use setuptools. Users
also get confused as to what is imported, and this results in strange bug
reports.
> Do you think distutils is better than setuptools?
It is orthogonal. These two tools attempt to solve two different
problems: installation and packaging.
> I want it to work like every good Windows installer. It should remove
> old files and not break installations.
I don't know if it does this for windows. It certainly does not do this
for Linux.
> Guido for example apparently does not agree with you. :) (http://
> mail.python.org/pipermail/python-dev/2006-April/063964.html)
That's old news. There has been quite a flame at Pycon this year (2008)
about setuptools. I do not have the impression Guido is terribly
satisfied with the state of the project. The problem is that it is the
only project trying to tackle this challenge.
Gaël
I am not against setuptools per se, only I want sympy to work with the
traditional tools, which currently is distutils. My own experience
with projects using setuptools is that it is very fragile, but if
someone is interested in supporting setuptools, let's do it (under the
assumption that the distutils way will still just work).
Ondrej
What is the current state ? Are "eggs" the all-agreed-upon future ?
Thanks,
Sebastian Haase