This commit is contained in:
Dannon Baker
2015-02-08 15:09:23 -05:00
+93
View File
@@ -0,0 +1,93 @@
# Contributing
This document briefly describes how to contribute to the
galaxy-central core project - also checkout the video of our [2013
Galaxy Community Conference
presentation](http://vimeo.com/channels/581875/73486255) on the
topic. For information on contributing more broadly to the Galaxy
ecosystem and a deeper discussion of some of these points - please see
the [Develop](https://wiki.galaxyproject.org/Develop/) section of the
[Galaxy Wiki](https://wiki.galaxyproject.org/).
## Before you Begin
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](https://wiki.galaxyproject.org/Issues). Browse through existing
cards [here](http://bit.ly/gxytrello) and if one seems related comment
on it. If no existing cards seem appropriate, a new issue can be
opened using [this form](http://galaxyproject.org/trello). Galaxy
developers are also generally available via
[IRC](https://wiki.galaxyproject.org/GetInvolved#IRC_Channel) and on
the [development mailing list](http://dev.list.galaxyproject.org/).
## How to Contribute
* If you are new to Mercurial - please check out this [official
tutorial](http://mercurial.selenic.com/wiki/Tutorial)
* Make sure you have a free [Bitbucket
account](https://bitbucket.org/account/signup/)
* Fork the galaxy-central repository on
[Bitbucket](https://bitbucket.org/galaxy/galaxy-central/fork) to
make your changes. (Many Galaxy instances target
[galaxy-dist](https://bitbucket.org/galaxy/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 galaxy-lab@bx.psu.edu. 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](https://wiki.galaxyproject.org/Develop/BestPractices).
* 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](https://wiki.galaxyproject.org/Admin/RunningTests)
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](https://confluence.atlassian.com/display/BITBUCKET/Fork+a+Repo,+Compare+Code,+and+Create+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.
## A Quick Note about Tools
For the most part, Galaxy tools should be published to the
[ToolShed](https://wiki.galaxyproject.org/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](https://github.com/galaxyproject/tools-devteam)
repository on GitHub.
More information about tool development can be found [on the
wiki](https://wiki.galaxyproject.org/Develop).