→ Slides doi: 10.7490/f1000research.1112736.1
, Penn State University Abstract
Galaxy is a large application with many moving pieces and dependencies on numerous outside applications and libraries. As Galaxy is a Python application, some of these dependencies are Python modules. Other dependencies include a proxy (web) server, database server, and possibly a distributed resource manager (for cluster job submission). The task of installing and orchestrating the operation of these components can be difficult, in part due to Galaxy’s desire to support the wide variation in computing environments and policies at sites where Galaxy is installed.
In order to ease the burden for Galaxy administrators, we have made several improvements to Galaxy dependency handling and installation. Galaxy’s Python dependencies were tightly controlled by Galaxy and used an outdated format. Significant work was undertaken to modernize the handling of these dependencies while loosening control, in order to give more flexibility to administrators. Galaxy is now fully compatible with the standard Python packaging tool chain, including pip and wheel, and further, it can now be used with the Anaconda Python distribution.
Another point of administrator frustration is installing and updating the Galaxy code itself. Galaxy is currently distributed via git, but administrators often prefer system package managers. Building upon the dependency management changes, it is now possible to create Galaxy packages and install them in the same manner as more traditional system software packages. This also allows for tighter integration with system-level dependencies such as proxy and database servers.