2019-11-05 19:59:42 +08:00
# Hi there 🐵
2018-01-17 01:37:40 +08:00
Thanks for your interest in making the Monkey -- and therefore, your network -- a better place!
2019-09-01 19:09:42 +08:00
Are you about to report a bug? Sorry to hear it. Here's our
[Issue tracker ](https://github.com/guardicore/monkey/issues ).
2018-01-17 01:37:40 +08:00
Please try to be as specific as you can about your problem; try to include steps
to reproduce. While we'll try to help anyway, focusing us will help us help you faster.
2019-09-01 19:09:42 +08:00
If you want to contribute new code or fix bugs, please read the following sections. You can also contact us (the
2021-01-25 23:35:39 +08:00
maintainers of this project) at our [Slack channel ](https://infectionmonkey.slack.com/join/shared_invite/enQtNDU5MjAxMjg1MjU1LWM0NjVmNWE2ZTMzYzAxOWJiYmMxMzU0NWU3NmUxYjcyNjk0YWY2MDkwODk4NGMyNDU4NzA4MDljOWNmZWViNDU ).
2018-01-17 01:37:40 +08:00
2019-11-05 19:59:42 +08:00
## Submitting Issues
* **Do** write a detailed description of your bug and use a descriptive title.
* **Do** include reproduction steps, stack traces, and anything else that might help us verify and fix your bug.
You can look at [this issue ](https://github.com/guardicore/monkey/issues/430 ) for an example.
2018-01-17 01:37:40 +08:00
2019-11-05 19:59:42 +08:00
## Submitting Code
2018-01-17 01:37:40 +08:00
The following is a *short* list of recommendations. PRs that don't match these criteria won't be closed but it'll be harder to merge the changes into the code.
* **Do** stick to [PEP8 ](https://www.python.org/dev/peps/pep-0008/ ).
* **Do** target your pull request to the **develop branch** .
* **Do** specify a descriptive title to make searching for your pull request easier.
* **Do** list verification steps so your code is testable.
* **Don't** leave your pull request description blank.
* **Do** license your code as GPLv3.
2019-09-01 19:09:42 +08:00
Also, please submit PRs to the `develop` branch.
2019-11-05 19:59:42 +08:00
#### Unit Tests
2019-09-01 19:09:42 +08:00
**Do** add unit tests if you think it fits. We place our unit tests in the same folder as the code, with the same
2019-09-01 20:04:23 +08:00
filename, followed by the _test suffix. So for example: `somefile.py` will be tested by `somefile_test.py` .
2019-09-01 19:09:42 +08:00
Please try to read some of the existing unit testing code, so you can see some examples.
2019-11-05 19:59:42 +08:00
#### Branches Naming Scheme
2019-09-01 19:09:42 +08:00
**Do** name your branches in accordance with GitFlow. The format is `ISSUE_#/BRANCH_NAME` ; For example,
`400/zero-trust-mvp` or `232/improvment/hide-linux-on-cred-maps` .
2018-01-17 01:37:40 +08:00
2019-11-05 19:59:42 +08:00
#### Continuous Integration
We use [TravisCI ](https://travis-ci.com/guardicore/monkey ) for automatically checking the correctness and quality of submitted
pull requests. If your build fails, it might be because of one of the following reasons:
* Syntax errors.
* Failing Unit Tests.
* Too many linter warnings.
In any of these cases, you can look for the cause of the failure in the _job log_ in your TravisCI build.
2018-01-17 01:37:40 +08:00
2019-11-05 19:59:42 +08:00
#### Thank you for reading this before opening an issue or a PR, you're already doing good!