# Development Guide

We welcome your PRs and feature enhancements.

You'll want to create a fork of the ConsoleMe repository, and follow the [Local Quick Start](https://hawkins.gitbook.io/consoleme/quick-start/local-development) guide using your fork.

We recommend using an IDE such as PyCharm or VS Code to get ConsoleMe running in a debug state.

Below is a very basic configuration of ConsoleMe in PyCharm. You'll need to set up the [virtual environment configuration](https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html) yourself.

![](https://3646283008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MHx2J68O31YPShOxOKk%2Fuploads%2Fgit-blob-56a415fe27e0a50b535c0bd2ca7d5b713e825f3c%2Fimage%20\(10\).png?alt=media)

After your virtual environment is installed, you'll want to install `pre-commit`. ConsoleMe uses pre-commit to enforce code linting and to run our unit tests on commit.

```
pre-commit install
```

Pre-commit will automatically run across changed files when you run a git commit. You can also force it to run across all files with:

```
pre-commit run -a
```

When creating a PR, we highly recommend that you select [`Allow Edits from Maintainers`](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork) on your PR for better collaboration.

After your fork is configured, set Netflix's ConsoleMe as an upstream, create a new commit, write your code, and push it to a branch on your fork.

```
git remote add upstream https://github.com/Netflix/consoleme.git
git checkout -b your_cool_feature
# Hack hack hack
# git add / git commit your changes
git push -u origin your_cool_feature
```

In the GitHub URL for your branch ( i.e.: <https://github.com/YOU/consoleme/pull/new/your\\_cool\\_feature> ), you should have the option to submit a pull request.
