Thank you for your interest in contributing to PowerAPI! There are multiple ways to contribute, and we appreciate all contributions.
We actively welcome any kind of contributions! Whether this contribution is:
- Bug report
- Documentation writing
- Suggestion for improvement (new feature, code improvement, ...), implemented or not
- Test improvement
- Discussion on current issues
- Fix for an existing issue
- ...
Feel free to propose your contribution!
All contributions should be under the same BSD 3 licence that covers the project.
We use pull requests to manage any change to the codebase. Please try to make your pull request as "atomic" as possible (related to one issue/feature). If you want to contribute to several issues or propose several distinct contributions, please create several pull requests to ease the review process. If you want to propose a codebase modification, you have to:
- Create a GitHub issue related to your issue/feature
- Fork the repository and create your branch from the
master
branch. Your branch have to follow the convention:<category>/<issue>/<description-kebab-case>
. Eg.feature/issue10/support-influxdb-2
. Some categories arefeature
andfix
. - Write new tests if your modifications are not covered by existing tests and have to be tested. In particular, if your contribution is a bug fix that have not been detected by existing tests, add a test to ensure that this issue will not reappear later.
- If you've modified the API or made any structural change in the architecture, update the documentation. Please notice that this kind of contribution will require the approval of Sponsors.
- Ensure that your code lint (using
pylint
,flake8
, andCodeQL
) and tests passes. - Issue a pull requests on the
master
branch. This way your modifications will be included in the next stable release.
Please notice that each pull request have to be reviewed before beeing accepted. Some modifications can be asked by the projet's maintainers. Commits' messages have to use Conventional Commits. Below we provide the list of messages types used for generating the release report:
fix
perf
refactor
style
docs
test
build
ci
chore
If you are working with PowerAPI and you encounter a bug, please let us know. You are welcome to submit an issue. This issue should describe the bug and it context with a small test or a code snippet that reproduce the issue.
Great, easy to understand, bug reports often include:
- A quick summary of the issue
- What was expected and what happened
- Step to reproduce
- Details on your execution environment:
- Power API version
- OS, kernel and CPU versions
- Optional notes on what you tried to solve the issue, guess on what may be wrong...
If you are interested to contribute to PowerAPI you can fixes reported bugs. They are listed in the issues with the label bug
Your pull request should contain a test that reproduce the bug, if the test do not already exist, and the bug fix. Please submit one pull request for each bug fix.
We use pylint
and flake8
as linter to enforce rules on the coding style. Please validate your contributions using those tools to ease the validation process.
We also use CodeQL
to detect bugs and security problems.
We use pytest-cov
to test that PowerAPI works as expected and to avoid regressions. Feel free to add new tests to improve code coverage!