Locked History Actions

Develop/GettingStarted

Getting Started with Galaxy Development

This page is a combination walk through guide and list of links meant to help new developers become acquainted with the Galaxy development ecosystem and how to contribute in a wide variety of ways.

Learn Galaxy

If you are unfamiliar with Galaxy - the best way to start by using Galaxy, for instance by walking through a simple analysis. The Galaxy 101 on usegalaxy.org is such a place to start. Those wishing to dive deeper into using Galaxy - checkout the following resources.

Develop a Tool

Once familiar with Galaxy, every developer should write at least one Galaxy tool - it is the most common way to extend Galaxy with new functionality. A "tool" wraps an external application, script, or shell command - describing both the user interface and how to translate it into a command-line via a simple XML file.

For those particularly interested in tool development the following section provides many more resources to read through and opportunities for contribution.

Tool Development Resources

Using the API

After tool development the second most common way to develop extensions to Galaxy - is not to writing extensions at all - but instead to write scripts or applications that leverage the Galaxy API.

The easiest and best documented way to consume the Galaxy API is using the Python library bioblend. Documentation for the alternative library for Java blend4j can be found here.

While this wiki contains additional documentation, it is quite dated and in some ways represents less than best practices. For more information it is probably best to review the source code documentation for the API or the source code itself.

Contributing to the Galaxy Core

See https://github.com/galaxyproject/galaxy/blob/dev/CONTRIBUTING.md

Contributing to the Extended Galaxy Ecosystem

In addition to the Galaxy core project and tool projects listed above - there are many open source projects related to Galaxy that would welcome contributions - many but certainly not all of them can be found on the galaxyproject landing page on github. Many more are in the following list (the Issues pages of these projects offer many great ways to contribute to the Galaxy ecosystem).