|
| 1 | +Read our [Code of Conduct](CODE_OF_CONDUCT.md) to keep our community approachable and respectable. |
| 2 | + |
| 3 | +This guide will give you an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR. |
| 4 | + |
| 5 | +# Local Setup |
| 6 | +- Follow https://github.com/browserstack/enigma-public-central#setup for setting up the project locally. |
| 7 | + |
| 8 | +# Issues |
| 9 | + |
| 10 | +## Create a new issue |
| 11 | +If you spot an issue with the tool or you want to improve the tool by adding some functionality, search if an issue already exists for the same. |
| 12 | + |
| 13 | +If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring. |
| 14 | + |
| 15 | + ## Solve an issue |
| 16 | +Scan through our existing issues to find one that interests you. You can narrow down the search using labels as filters. As a general rule, we don’t assign issues to anyone. If you find a problem to work on, you are welcome to open a PR with a fix. |
| 17 | + |
| 18 | +## Did you write a patch that fixes a bug or adds functionality? |
| 19 | +- Commit the changes once you are happy with them. Always write a clear log message for your commits. |
| 20 | + - For commit message we follow [Conventional Commit Message Guideline](https://www.conventionalcommits.org). To enforce this we use [pre-commit](https://pre-commit.com), to setup the same go through [pre-commit setup section of the README](https://github.com/browserstack/enigma-public-central#for-contributing-code) |
| 21 | + - Make sure there are no lint issues, check lint issues by running `make lint`. If there are some in the portion which you have touched, fix those lint issues. |
| 22 | + - If you are making changes to config then please update [schema.json file](schema.json) also. |
| 23 | + - We use [semgrep](https://semgrep.dev) for static code analysis and finding vulnerabilities. To check issues locally run `make run_semgrep`. |
| 24 | +- Please test the tool locally so that by doing the above change there is nothing breaking in the project elsewhere. |
| 25 | + - To test project locally you can run `make test` |
| 26 | +- Don't forget to self-review to speed up the review process. |
| 27 | +- Open a new GitHub pull request with the fix/patch. |
| 28 | +- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. |
| 29 | +- Before submitting, please read the [Contributing to Django project](https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/) guide to know more about coding conventions and unit tests, etc. |
| 30 | +- Your PR is merged! |
| 31 | +- Congratulations 🎉 The Enigma team thanks you ✨. |
| 32 | +- Once your PR is merged, your contributions will be publicly visible on the Project Repo. |
| 33 | + |
| 34 | +## Coding conventions |
| 35 | +[Coding style | Django documentation](https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/) |
| 36 | + |
0 commit comments