# Contributing to mutagen

Hi there! So you want to join the mutagen project or at least know what it entails? Welcome and read on!

## Getting started

High level approach:

1. Find something to fix/improve
2. Change code, tests, docs, whatever
3. If you changed code, run `cargo test` (once we have a test suite, that is) both in the `mutagen/` dir and the `plugin/` subdirectory.
   If you cannot get the code to build / tests to pass, don't fret, just mark your contribution as work in progress ("WIP").
4. Open a pull request. For that you need to fork the repository. See [GitHub's help page](https://help.github.com/articles/fork-a-repo/)
   for more information.

### Finding something to fix/improve

All issues on mutagen are mentored, if you want help with an issue just ask @llogiq.

Some issues are easier than others. The [good first issue](https://github.com/llogiq/mutagen/labels/good%20first%20issue)
label can be used to find the easy issues. If you want to work on an issue, please leave a comment to have it assigned
to you.

### Writing code, tests, docs, etc.

All contributions are equally welcome, whether it's refactorings for a more readable codebase, fixing a bug or implementing
new functionality, adding tests, documentation or setting up or improving CI, we'll be happy to have your contributions. 

### Getting your contribution into mutagen

Contributions to mutagen should be made in the form of GitHub pull requests. Each pull request will
be reviewed by a core contributor (someone with permission to land patches) and either landed in the
main tree or given feedback for changes that would be required.

All code in this repository is under either the [Apache License 2.0](LICENSE.Apache2) or the [MIT License](LICENSE.MIT).

## Conduct

We follow the [Rust Code of Conduct](http://www.rust-lang.org/conduct.html).


<!-- adapted from https://github.com/rust-lang-nursery/rust-clippy/blob/master/CONTRIBUTING.md -->
