From 33ba1face9e1f1bf025f37dc4e508143972845dc Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 28 Jan 2016 13:13:09 -0500 Subject: [PATCH] Link from the 16.01 announcement to the Admin wheels documentation, document the process of adding new wheels. --- doc/source/admin/framework_dependencies.rst | 44 ++++++++++++++++++++- doc/source/releases/16.01_announce.rst | 4 ++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/doc/source/admin/framework_dependencies.rst b/doc/source/admin/framework_dependencies.rst index 5a0693446db..f1e0e658433 100644 --- a/doc/source/admin/framework_dependencies.rst +++ b/doc/source/admin/framework_dependencies.rst @@ -1,3 +1,5 @@ +.. _framework-dependencies: + Galaxy Framework Dependencies ============================= @@ -567,8 +569,46 @@ complete. Adding additional wheels as Galaxy dependencies ----------------------------------------------- -**TODO** +New wheels can be added to Galaxy, or the versions of existing wheels can be +updated, using `Galaxy Starforge`_, Galaxy's Docker-based build system. -For the time being, see the `Galaxy Starforge`_ documentation. +The process is still under development and will be streamlined and automated +over time. For the time being, please use the following process to add new +wheels: +1. Install `Starforge`_ (e.g. with ``pip install starforge`` or ``python + setup.py install`` from the source). You will also need to have Docker + installed on your system. + +2. Obtain `wheels.yml`_ (this file will most likely be moved in to Galaxy in + the future) and add/modify the wheel definition. + +3. Use ``starforge wheel --wheels-config=wheels.yml `` to build the + wheel. If the wheel includes C extensions, you will probably want to also + use the ``--no-qemu`` flag to prevent Starforge from attempting to build on + Mac OS X using QEMU/KVM. + +4. If the wheel build is successful, submit a pull request to `Starforge`_ with + your changes to `wheels.yml`_. + +5. A `Galaxy Committers group`_ member will need to trigger an automated build + of the wheel changes in your pull request. Galaxy's Jenkins_ service will + build these changes using Starforge. + +6. If the pull request is merged, submit a pull request to Galaxy modifying the + files in `lib/galaxy/dependencies`_ as appropriate. + +You may attempt to skip directly to step 4 and let the Starforge wheel PR +builder build your wheels for you. This is especially useful if you are simply +updating an existing wheel's version. However, if you are adding a new C +extension wheel that is not simple to build, you may need to go through many +iterations of updating the PR and having a `Galaxy Committers group`_ member +triggering builds before wheels are successfully built. You can avoid this +cycle by performing steps 1-3 locally. + +.. _Starforge: .. _Galaxy Starforge: https://github.com/galaxyproject/starforge/ +.. _wheels.yml: https://github.com/galaxyproject/starforge/blob/master/wheels/build/wheels.yml +.. _Galaxy Committers group: https://github.com/galaxyproject/galaxy/blob/dev/doc/source/project/organization.rst#committers +.. _Jenkins: https://jenkins.galaxyproject.org/ +.. _lib/galaxy/dependencies: https://github.com/galaxyproject/galaxy/tree/dev/lib/galaxy/dependencies diff --git a/doc/source/releases/16.01_announce.rst b/doc/source/releases/16.01_announce.rst index bb48d20b3e2..42077012657 100644 --- a/doc/source/releases/16.01_announce.rst +++ b/doc/source/releases/16.01_announce.rst @@ -26,6 +26,10 @@ Highlights Work done as part of this to enable binary dependencies on Linux has been included with the recently released pip_ 8. + Detailed documentation on these changes and their impact under a variety of + Galaxy deployment scenarios can be found in the :ref:`framework-dependencies` + section of the Admin documentation. + **Nested Workflows** Workflows may now run other workflows as a single abstract step in the parent workflow. This allows for reusing or subworkflows in your analyses.