This document describes how to contribute to this repository. Pull requests containing bug fixes, updates, and extensions to the existing tools and tool suites in this repository will be considered for inclusion.
- Make sure you have a GitHub account
- Make sure you have git installed
- Fork the repository on GitHub
- Make the desired modifications - consider using a feature branch.
- Make sure you have added the necessary tests for your changes and they pass.
- Make sure submitted tools meet IUC Best Practices
- Open a pull request with these changes.
- Wrappers for new OSI licensed tools
- Visualization Plugins
- Updates for tools
- Enhancements for tools (e.g. supporting new parameters)
- Bug fixes
- Documentation improvements
- New test cases
- For tools of general interest, the IUC is usually willing to adopt tools that you (the developer) are abandoning.
- If there are tools that you find useful but seem to be abandoned and not updated, you're welcome to create an issue recommending that the IUC adopt that tool.
- Things already wrapped and currently maintained by other users
- Wrappers without tests
- New datatypes
- When possible, new datatypes should be added directly to the Galaxy codebase.
Contributed tools should include test cases for all tools. They need not necessarily cover all uses of the program, but should ensure that it is generally working. The Galaxy Wiki has a page on writing tests.
The IUC strongly recommends testing with planemo, which provides a simple command line utility for testing functionality
$ planemo test --install_galaxy my_tool.xml
Before a PR will be accepted, the IUC has some requirements on the submitted code (which we will be happy to help you achieve if you need the assistance).
- Tools must contain tests (and test-data)
- The tests must pass (
planemo test --install_galaxy my_tool.xml
) - The tools should pass linting by planemo (
planemo lint my_tool.xml
) - If there's a relevant paper for the tool, it should be cited in a citation block
- The tool must be licensed to allow use by anyone. The OSI maintains a list of appropriate licenses.