# Contributing to ix

First off, thank you for considering contributing to `ix`! It's people like you that make `ix` such a great tool.

## Where do I go from here?

If you've noticed a bug or have a feature request, make one! It's generally best if you get confirmation of your bug or approval for your feature request this way before starting to code.

## Fork & create a branch

If this is something you think you can fix, then fork `ix` and create a branch with a descriptive name.

A good branch name would be (where issue #325 is the ticket you're working on):

```sh
git checkout -b 325-add-awesome-feature
```

## Implementing your fix or feature

At this point, you're ready to make your changes. Feel free to ask for help; everyone is a beginner at first.

## Running Tests

Before submitting your pull request, please ensure all tests pass:

```sh
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt --all
```

## Make a Pull Request

At this point, you should switch back to your master branch and make sure it's up to date with `ix`'s master branch:

```sh
git remote add upstream https://github.com/moeshawky/ix.git
git checkout main
git pull upstream main
```

Then update your feature branch from your local copy of master, and push it!

```sh
git checkout 325-add-awesome-feature
git rebase main
git push --set-upstream origin 325-add-awesome-feature
```

Finally, go to GitHub and make a Pull Request.