Thank you for your interest in contributing to Oligo Designer Toolsuite! Here's how you can effectively contribute:
- Fork and Clone: Fork this repository and clone your fork to your local machine. Always work in a new branch.
- Commit and Push: Commit changes to your branch and push them to your fork.
- Pull Request: Create a pull request from your branch to this repository.
-
Inheritance from Base Class: When creating a new function, make sure you put it in a class that inherit from the relevant base class. The base class offers a consistent structure shared across all classes in the sub-module. For example, a class designed for property filtering should inherit from
PropertyFilterBase
and must implement theapply
method. -
Unit Tests: Write unit tests for your contributions in the
test/test_<module_name>.py
file. Ensure they pass before submitting.
- Use Pre-defined Modules: Use our existing modules when building pipelines. If additional steps are needed, add them to the library, ensuring they align with our design.
- Raising Issues: If in doubt about any aspect, raise an issue on the repository, we would be very happy to help!
Please make sure all contributions are documented using reStructuredText (reST). This standard is chosen for its compatibility with Sphinx, enabling us to generate well-structured and consistent project documentation. Here's an example of reST documentation format:
def function(arg1, arg2):
"""
A brief description of the function.
:param arg1: Description of arg1.
:type arg1: int
:param arg2: Description of arg2.
:type arg2: str
:returns: Description of return value.
:rtype: bool
"""
pass
By adhering to these guidelines, you help maintain the quality of Oligo Designer Toolsuite. We appreciate your collaboration and contributions!