Build Galaxy things in virtualized environments
Starforge: Build Galaxy things in virtualization
Things you can do with Starforge:
These things will be built in Docker. Additionally, wheels can be built in QEMU/KVM virtualized systems.
Documentation can be found at starforge.readthedocs.org
For all types of builds, begin by installing Docker.
There are two scripts that can be used, depending on the package recipes available:
$ ./build.sh <package> $ python build.py <package> --version 1.0
build.sh is the older format, and simply uses a single <package>build.sh file, like Atlas. build.py is the newer format, and uses yaml metadata in <package>/<version>/build.yml.
The base image for Galaxy packages is Debian Squeeze. This will hopefully produce binaries usable on Galaxy’s targeted platforms (at time of writing: CentOS 6+, Debian 6.0+, Ubuntu 12.04+).
$ ./build galaxy <package> $ python build.py <package>
To build packages against a different OS, you can use the --image flag, e.g.:
$ ./build <dist>[:tag] <package> $ python build.py <package> --image <dist>[:tag]
$ ./build ubuntu:trusty nginx $ python build.py nginx --image debian:squeeze
Building all the things:
There’s a separate build-all.sh which allows you to build all of the packages using their preferred build mechanism
The <version> option is optional, and defaults to the string 'default', which is useful for recipes that don’t have version specific changes (E.g. bcftools 1.0 builds identically to 1.2)
Starforge can build both pure Python and C-extension Python modules into wheels for Linux under Docker and for Mac OS X under QEMU/KVM. To do this, you’ll want to install Starforge (preferably in a Python virtualenv) using pip install starforge (to install from PyPI) or python setup.py install to install from the source.
Docker (and QEMU) images to use are specified in starforge/config/default.yml. To modify this file, copy it to $XDG_CONFIG_HOME/galaxy-starforge/config.yml ($XDG_CONFIG_HOME is, by default ~/.config). The sample file wheels/build/wheels.yml is used to determine what wheels can be built and their rules for building. To use this file, use the --wheels-config argument to starforge wheel or copy wheels.yml to $XDG_CONFIG_HOME/galaxy-starforge/wheels.yml.
Wheels can be built using starforge wheel <package>, e.g.:
$ starforge wheel pycrypto $ starforge wheel --no-qemu pysam # only build on docker
See the output of starforge --help for help using the Starforge command-line interface.
Pull requests to the Starforge repository on Github that modify wheels/build/wheels.yml can automatically be built for all specified platforms on a dedicated Starforge build server by the Galaxy Jenkins service. To utilize, modify wheels.yml as appropriate and create a pull request. Any member of the Galaxy Committers group can then authorize Jenkins to initiate the build. If it fails, you can modify the pull request and further builds can be triggered.
Images used to build wheels are uploaded to the Starforge Docker Hub repo and will be pulled as necessary. Typically you will only use the manylinux1-wheel and manylinux1-32-wheel images, which are manylinux CentOS 5-based images that will usually produce wheels usable on all Galaxy-supported platforms.
You can also produce “platform-specific” wheels by using the full-wheel imageset. This is useful if you want to link to distribution-specific system versions of non-standard libraries without bundling them in to the wheel.
Mac OS X
Mac OS X images are not provided due to legal reasons. Consult the osx documentation for details.
Originally Galaxy docker-build and later renamed Starforge, but as a collection of disjointed shell scripts, Python, and YAML used to build Galaxy Tool Shed dependencies, as well as rebuilding Debian and Ubuntu source packages with modifications (which itself came from a project created to do the same via Vagrant and Ansible called vadebuildsible).
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|File Name & Checksum SHA256 Checksum Help||Version||File Type||Upload Date|
|starforge-0.3-py2-none-any.whl (34.2 kB) Copy SHA256 Checksum SHA256||py2||Wheel||Jan 11, 2017|
|starforge-0.3.tar.gz (26.9 kB) Copy SHA256 Checksum SHA256||–||Source||Jan 11, 2017|