[AstroPy] Deployment and packaging
mperrin at stsci.edu
Tue Jun 14 22:53:11 EDT 2011
Packaging and distribution is definitely a hard problem - still unsolved in practice despite vast amounts of labor over decades (see: rpm, apt-get, cpan, gems, pip, iOS App store, and oh so many more). Given that vastly larger communities than astronomy have struggled with this issue, I think we should be careful to focus our efforts, and make use of existing tools whenever possible. And moreover acknowledge up front that a perfect solution to this problem does not exist.
> list below starts with basic ideas for yet another Python
> distribution, and ends with the two hard parts:
> - Base Python binary installation with NumPy, SciPy, matplotlib
So I'm a little surprised that your very first idea is for "yet another Python distribution". In my view it makes more sense to layer our efforts on top of some already existing effort. EPD is the most obvious - I can easily imagine a script that downloads and installs EPD and then installs some set of modules on top of that EPD, thus avoiding repeating effort that others have already provided and providing an install with wide compatibility with community provided tools from outside of astronomy too. Likewise, it would be pretty straightforward to have a meta-package on Macports, fink, or homebrew that downloads and installs some large suite of Python code using those existing package managers. In contrast, creating yet another Python installation would only exacerbate the problems of multiple competing Python installations confusing users and preventing code from running, no?
One reason that I quite like Macports is that it makes it easy to have dependencies on non-Python software. Of course, that's not a cross-platform solution but I can imagine a set of maintained-in-parallel packages on Mac and Linux package repositories.
On Jun 14, 2011, at 8:43 PM, Tom Aldcroft wrote:
> - Optional full install that includes "everything", ala EPD
> - Support for linux x86, x86_64, MacOS 10.5+ (with Windows at a lower priority)
> - Non-root, movable, installation which is contained in a single directory
> - Package management tools to upgrade some / all packages to latest on PyPI
> - IMPORTANT: buy-in from developers to distribute "pip installable"
> packages on PyPI
> - IMPORTANT: buy-in from developers of large tool packages to use this
> distribution instead of rolling their own.
> Apart from the last two (important) points, everything in the list is
> already exists in one form or another, e.g. sage, ActivePython, and
> probably James Turner's distribution-in-work. Sage is really bloated
> and I much prefer ActivePython (which is of course a commercial
> product and therefore not entirely suitable to this purpose).
> Getting everything on PyPI should not be too difficult, but getting
> large tool packages to use a new distribution will likely be a
> difficult and multi-year effort.
> - Tom
> AstroPy mailing list
> AstroPy at scipy.org
More information about the AstroPy