Thank you for investing your time in contributing to our project! ✨.
Read our Code of Conduct to keep our community approachable and respectable.
In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
Use the table of contents icon on the top left corner of this document to get to a specific section of this guide quickly.
To get an overview of the project, read the README.
Install requirements for contributing:
- Please install python3 on your system. (It is needed for scripts to format your commit messages and handle CHANGELOG.rst file)
- Install venv module for python (linux users only):
sudo apt-get install python3-venv
- If you have python3.10, install it like:
sudo apt-get install python3.10-venv
- Run
install.py
script like:python3 ./.githooks/install.py
- Bug: If you spot a problem with a certain release or a problem, create a bug issue.
- Feature: If you want to add a new functionality to the project, create a feature issue.
Note: This workflow is designed based on git flow but please read till the end before doing anything.
- Pick or create a feature or bug issue.
- Fork the repository.
- Create a new branch.
- Do your changes on that branch.
- Debug and be sure about the changes.
- Add documentation for new functions and variables and any other new things you provided.
- Commit and push your changes. (see commit message guidelines)
- Create a pull request and mention your issue number inside the pull request.
Mostly do not touch or change the file and let the script handle it.
There is a template for how to commit, this template is based on conventional commit:
- <type>(<scope>): <subject>
Samples:
docs(changelog): update changelog to beta.5
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- test: Adding missing tests or correcting existing tests
This section can be written in two formats:
- (<package>-<function>)
- (<file,description...>)
Note: If you don't specify this part, remove parenthesis too.
A brief description about what just happened.
This is just a reminder for everyone to know what versioning system we are using.
Versioning in this project is based on semantic versioning:
vMajor.Minor.Patch-PreReleaseIdentifier
Example:
- v1.4.0-beta.1
Signals backward-incompatible changes in a module’s public API. This release carries no guarantee that it will be backward compatible with preceding major versions.
Signals backward-compatible changes to the module’s public API. This release guarantees backward compatibility and stability.
Signals changes that don’t affect the module’s public API or its dependencies. This release guarantees backward compatibility and stability.
Signals that this is a pre-release milestone, such as an alpha or beta. This release carries no stability guarantees.
For more information about versioning, read this.