Thank you for your interest in contributing to this project! All types of contributions are welcome, no matter how big or small.
I highly encourage that you read this guide before submitting a PR. It won't take you more than five minutes to read!
These are mostly guidelines, not rules. Use your best judgment.
-
Consistent code formatting is important. I use automatic code formatters (prettier for Javascript, black for Python).
-
I use code climate to detect code smells. I really appreciate code that is written with readability in mind. I always think about how I can reduce cognitive complexity of my code before committing them.
-
I try to adhere to this commit style guide when I word my commit messages.
-
I like it when people are nice to each other. I don't like mean or rude people.
-
Before contributing, it's probably better to discuss the change you wish to make in an issue first. An issue explaining what you want to accomplish, why you want to do it, and how would do it.
-
Thoughtfully-written explanations and the rationale of the pull request is always appreciated!
-
Explanations of issues and PRs don't have to be long. Two or three sentences might be sufficient in a lot of cases, probably.
-
Your PR will most likely NOT be merged if the CI build fails.
-
I prefer PRs with fewer commits. Squash the commits and push force if you need to. But of course, it's better if all the changes in a single commit are logically connected.
-
Including corresponding tests in your PR is always appreciated.
-
For whatever purpose it may serve, here's a simple git workflow I try to stick to.
- Work on an existing issue (feature request, bug, etc)
- Add new tests and test cases to improve code coverage
- Work on optimizations, performance, speed, efficiency improvements
- Report and fix bugs
- Suggest idiomatic code and better software practices
- Suggest ways to improving code quality / readability
- Suggest additional refactors to reduce cognitive complexity or what not
- Improve user interface / experience and design
- Improve documentation and code comments
- Your own cool idea! Feature requests. Suggest an idea for this project.
- None of the above