# Contributing

Thanks for contributing to MechWolf! We appreciate all the help we can get and every little bit counts. You don't need to be a technical expert to help out, and credit will always be given.

There are a bunch of ways that you can contribute to the project:

# How to contribute

# Bug reports

The easiest way to help out is to let us know if something is wrong so we can fix it. To file a bug report, go to please click here and fill out the form with as much information as you can.

# Feature requests

If you have an idea of way to make MechWolf better (even if you're not sure how to implement it), we want to know! In order to help us keep track of feature requests, we ask that you open a GitHub issue using the feature request form.

# Write documentation

We can always use more and clearer documentation. Our docs are written in a combination of Markdown (for normal text such as this), reStructuredText (for technical docs, such as for the API), and Jupyter notebooks (for the interactive tutorials).

# Fix bugs and implement features

Look through the GitHub issues for unfixed bugs and unimplemented features. Anything tagged with "enhancement" and "help wanted" is open to whoever wants to do it.

# Get started

  1. First, fork the repository on GitHub.
  2. Clone your fork:
    $ git clone git@github.com:your_name_here/MechWolf.git
    
  3. Set up your virtualenv:
    $ virtualenv -p python3.7 mechwolf-dev-env
    $ source mechwolf-dev-env/bin/activate
    
  4. Install MechWolf with the developer dependencies:
    (mechwolf-dev-env) $ cd MechWolf
    (mechwolf-dev-env) $ pip install -e .
    (mechwolf-dev-env) $ pip install -r requirements-dev.txt
    
  5. Set up pre-commit:
    (mechwolf-dev-env) $ pre-commit install
    
  6. Make a new branch:
    (mechwolf-dev-env) $ git checkout -b name-of-your-bugfix-or-feature
    
  7. Once you're done making your changes, make sure that the test suite passes:
    (mechwolf-dev-env) $ pytest
    
  8. Then, make your commit:
    (mechwolf-dev-env) $ git add *
    (mechwolf-dev-env) $ git commit -am "commit message here"
    (mechwolf-dev-env) $ git push origin name-of-your-bugfix-or-feature
    
    Pre-commit will make sure that your changes conform to our coding style, as well as that it passes some static analysis tests and is correctly typed.
  9. When you're done, create a pull request for us to review. As a general request, please ensure that the tests and documentation are updated before submitting your pull request. This allows us to review and accept it as quickly as possible. Furthermore, it should be compatible with all supported Python versions, which is currently only Python 3.7.