# How to contribute

Please follow these steps when contributing to Remill:

1. Create a [GitHub issue](https://github.com/lifting-bits/remill/issues/new) describing the goals and milestones of your contribution. For example, if you want to implement a particular class of instructions, then create a check-box list within your issue for each instruction.

2. Create a branch with a short and descriptive name. If you created Issue #N for your branch, then a suggested name for the branch would be `issue_N_short_description`. Prefixing the branch name with `issue_N_` is not required, though. For example, if your issue is "Implement MMX instructions", then two good branch names would be `mmx_support`, or `issue_N_mmx_support`.

3. Use the milestone check-boxes and comments section to track the progress of your branch and request feedback.

4. Make either incremental, or "complete" [pull requests](https://help.github.com/articles/about-pull-requests/) based on your branch. An incremental pull request is appropriate when you've reached one or more milestones, your branch is in a merge-able state, and all tests pass.