Contributing

Thank you for considering contributing to mutyper! This document outlines the guidelines and expectations for contributing to the project at github.com/harrispopgen/mutyper.

Table of Contents

Code of Conduct

This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to harris.kelley@gmail.com.

How to Contribute

We welcome contributions of all kinds—bug reports, feature requests, code contributions, documentation improvements, and more. To get started:

  1. Fork the repository to your own GitHub account

  2. Clone the repository to your local machine

  3. Create a new branch for your changes: git checkout -b your-branch-name

  4. Make your changes and commit them: git commit -m "your commit message"

  5. Push your changes to your forked repository: git push origin your-branch-name

  6. Create a Pull Request to merge your changes into the main repository

Reporting Bugs

If you find a bug or other issue with mutyper, please report it by opening a new issue on GitHub. Please include as much information as possible, including:

  • A clear and concise description of the problem

  • Steps to reproduce the issue

  • Expected behavior

  • Actual behavior

  • Screenshots or other relevant information

Requesting Features

If you have an idea for a new feature or improvement to mutyper, please submit it as a feature request on GitHub. Please provide a clear and concise description of the feature, including:

  • Why the feature is needed

  • How it would work

  • Any potential drawbacks or limitations

Pull Requests

If you would like to contribute code to mutyper, please submit a Pull Request on GitHub. Please follow these guidelines:

  • Ensure the code is well-tested and follows the style guidelines (see below)

  • Write clear and concise commit messages

  • Ensure the Pull Request description explains what the changes are and why they are needed

  • Ensure the Pull Request title is descriptive and includes the relevant issue number (if applicable)

  • Squash commits and rebase on the latest version of the main branch before submitting

Style Guidelines

We use Black, Docformatter, and Flake8 for formatting Python code and enforcing style. Please ensure your code is formatted/linted before submitting a Pull Request.

Testing Guidelines

We use pytest and doctest for testing. Please ensure your changes are well-tested and include new tests where appropriate. All tests should pass before submitting a Pull Request.

Documentation Guidelines

We use Sphinx for documentation, and running doctests. Please ensure your changes include any necessary updates to the documentation, including:

  • docstrings

  • doctests

  • API reference documentation

  • quickstart documentation

Acknowledgements

We welcome and appreciate all contributions to mutyper. Thank you for helping to improve the project!