All contributions are welcome, including new features, bug fixes, and documentation improvements. Please follow the guidelines below to make the contribution process as smooth as possible.
We use the Git-Flow branching model.
The branch names are prefixed with feature/
, bugfix/
, hotfix/
, docs/
or ci/
.
The main
branch is the stable branch. Your pull requests should be made against the main
branch.
All of commits should follow the Conventional Commits convention.
This convention is used to generate the changelog and bump project version by commitizen
.
So, please follow the convention when you commit.
All of code should follow the PEP 8 -- Style Guide for Python Code. The pre-commit hooks are defined in pre-commit config file. The hooks will check and format the code style automatically when you commit. If you don't know how to use pre-commit, please refer pre-commit documentation.
The title of the pull request should be the same as the title of the branch.
If branch name is feature/awesome-feature
, the title of the pull request should be feat: awesome feature
.
We use poetry for dependency management.
Our dependencies are defined in pyproject.toml file and poetry.lock file.
Do not edit this file manually. If you want to add or remove dependencies, please use poetry add
or poetry remove
command.
poetry shell
This command will activate the virtual environment and install all dependencies.
poetry install
Do not use pip install
command.
If you want to install dependencies for production, use poetry install
command.
poetry install --with <group>
Use --with
option to install dependencies for specific group.
If all
keyword is used, all dependencies will be installed.
Our dependencies are divided into 3 groups: dev
, test
, and docs
.
dev
: dependencies for developmenttest
: dependencies for testingdocs
: dependencies for documentation
Note: The poetry are required to contribute this project. If you don't know how to use it, please refer dependency management section.
- Fork the repository on GitHub
- Create a branch for the new feature
- Make your changes, committing at logical breaks
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to the original repository
We use SemVer for versioning. For the versions available, see the tags on this repository.
The version bump is done by commitizen
and the Github Actions. If you want to see this mechanism,
please refer our bump-version action
or commitizen documentation.