Skip to content

Commit ac1dee9

Browse files
authored
Add community contribution guidelines (#757)
1 parent 49f2f95 commit ac1dee9

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

CONTRIBUTING.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Contributing to proxy.py
2+
3+
This document describes how contributors can participate and iterate quickly while maintaining the `proxy.py` project standards and guidelines.
4+
5+
## Basic Guidelines
6+
7+
* Your pull request should NOT introduce any external dependency.
8+
* It is OK to use external dependencies within plugins.
9+
10+
## Environment Setup
11+
12+
Contributors must start `proxy.py` from source to verify and develop new features / fixes. See [Run proxy.py from command line using repo source](#from-command-line-using-repo-source) for usage instructions.
13+
14+
[![WARNING](https://img.shields.io/static/v1?label=MacOS&message=warning&color=red)](https://github.com/abhinavsingh/proxy.py/issues/642#issuecomment-960819271) On `macOS` you must install `Python` using `pyenv`, as `Python` installed via `homebrew` tends to be problematic. See linked thread for more details.
15+
16+
### Setup Git Hooks
17+
18+
You SHOULD NOT avoid these steps. Git hooks will help catch test or linting errors locally without pushing to upstream. This will save you a lot of time and allow you to contribute and iterate faster.
19+
20+
Pre-commit hook ensures tests are passing.
21+
22+
1. `cd /path/to/proxy.py`
23+
2. `ln -s $(PWD)/git-pre-commit .git/hooks/pre-commit`
24+
25+
Pre-push hook ensures lint and tests are passing.
26+
27+
1. `cd /path/to/proxy.py`
28+
2. `ln -s $(PWD)/git-pre-push .git/hooks/pre-push`
29+
30+
### Sending a Pull Request
31+
32+
All pull requests are tested using GitHub actions.
33+
34+
See [GitHub workflow](https://github.com/abhinavsingh/proxy.py/tree/develop/.github/workflows) for list of workflows.
35+
36+
## Communication
37+
38+
During the process of PR review, sometimes, you may get asked to update certain project configs. Example, a change in code introduced via your PR will result in a redundant lint guard. So we must make corresponding changes to ensure project health.
39+
40+
It's highly recommended that you participate in maintaining a high code-quality standard. For any reason, if you are unable to address the requested changes, please communicate the same to the reviewer.
41+
42+
Thank you!!!

0 commit comments

Comments
 (0)