This document briefly describes how to contribute to the galaxy-central core project - also checkout our 2013 Galaxy Community Conference presentation] on the topic (video, presentation). For information on contributing more broadly to the Galaxy ecosystem and a deeper discussion of some of these points - please see the Develop section of the Galaxy Wiki.
If you have an idea for a feature to add or an approach for a bugfix - it is best to communicate with Galaxy developers early. The most common venue for this is the Galaxy Trello board. Browse through existing cards here and if one seems related comment on it. If no existing cards seem appropriate, a new issue can be opened using this form. Galaxy developers are also generally available via IRC and on the development mailing list.
-
If you are new to Mercurial - please check out this official tutorial
-
Make sure you have a free Bitbucket account
-
Fork the galaxy-central repository on Bitbucket to make your changes. (Many Galaxy instances target galaxy-dist - but active development happens on galaxy-central and this is where pull requests should be made).
-
Choose the correct Mercurial branch to develop your changes against.
-
Additions to the code base should be pushed to the
default
branch (hg checkout default
). -
Most bug fixes to previously release components (things in galaxy-dist) should be pushed to the
stable
branch (hg checkout stable
). -
Serious security problems should not be fixed via pull request - please responsibly disclose these by e-mailing them (with or without patches) to [email protected]. The Galaxy core development team will issue patches to public servers before announcing the issue to ensure there is time to patch and highlight these fixes widely. We will provide you credit for the discovery when publicly disclosing the issue.
-
-
If your changes modify code - please ensure the resulting files conform to Galaxy style guidelines.
-
Galaxy contains hundreds of tests of different types and complexity and running each is difficult and probably not reasonable at this time (someday we will provide a holistic test procedure to make this possible). For now, please just review the running tests documentation and run any that seem relevant. Developers reviewing your pull request will be happy to help guide you to running the most relevant tests as part of the pull request review process and may request the output of these tests.
-
Commit and push your changes to your Bitbucket fork.
-
Open a pull request with these changes. You pull request message should include:
-
A description of why the change should be made.
-
A description of implementation of the change.
-
A description of how to test the change.
-
Galaxy's Trello board is filled with bugs and ideas for enhancements, but we maintain a card with links to smaller issues we believe would make the best entry points for new developers.
For the most part, Galaxy tools should be published to the ToolShed and not in this repository directly. If you are looking to supply fixes for migrated core tools that used to exist in this repository - please checkout the tools-devteam repository on GitHub.
More information about tool development can be found on the wiki.