How to contribute
Thanks a lot for your interest in keeping alive the flame 🔥. We are very happy to integrate improvements suggested and/or developed by GitHub's community. Please, have a look at the information below before starting with your development or request.
⚠️ Please ask first before you start working on any significant new feature.
The steps are quite standard in the GitHub community:
- Submit an issue describing your proposed change or improvement to the issue tracker of this project.
- Before submitting the issue where the new change is explained, please make sure this change is not being already developed (or listed). You can always ask team members in case of doubt.
- Coordinate with team members that are listed on the issue in question. This will remove any potential redundancy, besides allowing for a better planning which should result in better code.
- If your proposed change is accepted, fork the repo, develop and test your code changes. Ensure that your code has an appropriate set of unit tests which all pass. This is quite important to us, so please make your maximum effort in writing a 100% unit-tested code.
- Submit a well documented pull request linked to the issue being addressed.
It's never a fun experience to have your pull request declined after investing a lot of time and effort into a new feature, which is why we encourage you to follow the procedure depicted above as closely as possible.
Our code formatting rules are implicitly defined by using multiple tools. You can check your code against these standards by running:
This is a meta-rule that runs all the utilities used for checking and applying Flama coding standards, but it can be done individually as follows:
Flama uses Black for formatting the code to adhere to the Black code style (PEP 8 compliant):
Isort is used to reorganize library imports:
Code quality checking
Flake8 is used to determine if the code quality is high enough as required to be accepted:
Static type checking
Flama is completely static typed. To make sure your code fulfils this constraint, you can check it using pyright:
This will automatically fix any style violations in your code.
You can run the test suite using the following commands:
Remember, for any pull request to be accepted, we need to know that all tests are being passed. So, please ensure that all tests are passing when submitting a pull request. Last, but not least, if you're adding new features to Flama, you need to include the tests required.