Development of new versions is done on `development`-branch, or sometimes shortlived feature branches. `master` contains latest release.
Keep this in mind when choosing where to start your work on.
## :tophat: Good Pull Request
### Contains
- 1 to 750 changes
- Descriptive commit messages
- Summary of what the PR contains
- Automatically or manually tested code
- (Summary of manual tests)
### Code
You can code with whichever style you find most comfortable, as long as it is readable, but be aware that it will be formatted after your PR has been merged.
- Variables describe what they contain
- Methods do one thing (Single Responsibility Principle)
- Comments
- When reason for doing something might be unclear, it is commented ("The value might be over 100, so it has to be checked")
- When something might break in the future, it is commented ("MySQL v5.6.2 might optimize this fix away")
- When something is unclear, it is commented ("I don't know if this works")
- Magic numbers are named with variables (`getItem(id)` instead of `API.getItem(5)`)
### Testing
Sometimes things do not work how they should, so testing is a good practice.
- [Instructions for running build and test goals](https://github.com/plan-player-analytics/Plan/wiki/Project-Setup#building-and-testing)
Because plugins often require mocking for tests, I do not require automatic tests for PRs.
## :chart_with_upwards_trend: Good Review on a Pull Request
Good reviews should leave both the reviewer and the contributor positive feeling about the interaction.