Skip to content

Latest commit

 

History

History
72 lines (56 loc) · 3.09 KB

CONTRIBUTING.md

File metadata and controls

72 lines (56 loc) · 3.09 KB

Contributing

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.

How to Contribute

What to contribute

  • 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

Abandoned Tools

  • 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.

What not to contribute

  • 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.

Tests

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

Requirements for Contributions

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)
  • Continuous integration tests must pass:
    • The tests must pass (planemo test --install_galaxy my_tool.xml)
    • The tools must pass linting by planemo (planemo lint my_tool.xml)
    • Any Python or R script must pass linting with flake8 and lintr, respectively
  • 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
  • At least one approving review by an IUC member