This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

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

Quick Start

For all types of builds, begin by installing Docker.

Tool Shed Dependencies

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]

e.g.

$ ./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

Notes on the two build scripts

build.py

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)

Python Wheels

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 Request wheel builder

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.

Notes on images

Linux

Images used to build wheels on a variety of platforms are uploaded to the Starforge Docker Hub repo and will be pulled as necessary. Typically you will only use the base-wheel and base32-wheel images, which are Debian Squeeze-based images that will usually produce wheels usable on all Galaxy-supported platforms. The exception is the case when you need to install non-standard system libraries whose versions or location will differ by Linux distribution. In this case, a “full” set of images consisting of all distributions with official images in Docker Hub can be built. This is controlled in wheels/build/wheels.yml, see psycopg2 for an example.

Mac OS X

Mac OS X mages are not provided due to legal reasons. Consult the osx documentation for details.

History

Starforge is maintained by the Galaxy Project and community. A list of contributors to the project can be found on GitHub.

0.2.1 (2016-05-27)

  • Do a case-insensitive comparison for cached tarball names (uWSGI’s project name is uWSGI but its source tarballs are named uwsgi-*). 7672547

0.2 (2016-05-19)

  • Added support for building manylinux1 wheels. 0dbecb7

0.1.1 (2016-01-20)

  • Only running prebuild during wheel builds (and not sdists) was too naive, since this prevents changing the version number of sdists in the prebuild action (a common use of the prebuild action). Instead, allow for separate wheel, sdist, and all prebuild actions. Reverts the behavior of 9008c57. Issue 64
  • Install Galaxy pip from Github instead of wheels.galaxyproject.org so that Starforge images can be built with new versions of Galaxy pip before they are released. 97b4ba4

0.1 (2016-01-12)

  • Reimplemented the wheel building scripts as a library and starforge command line
  • Wrote some documentation

Older than 0.1

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).

Release History

Release History

0.2.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.1.dev0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
starforge-0.2.1-py2-none-any.whl (31.9 kB) Copy SHA256 Checksum SHA256 py2 Wheel May 27, 2016
starforge-0.2.1.tar.gz (21.7 kB) Copy SHA256 Checksum SHA256 Source May 27, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting