Thank you for your interest! This document outlines the process and guidelines for contributing to the project. By following these guidelines, you can help ensure a smooth collaboration process and a consistent codebase.
Before opening a new issue, please ensure it isn't a duplicate.
Before opening a new issue, please ensure it isn't a duplicate.
If you want to submit a fix or propose a new feature, follow the guidelines below.
- Python 3.10 or greater
Poetry
-
Clone the repository and change it to your working directory.
-
Install the project:
$ poetry install
-
Activate the virtual environment:
$ poetry shell
-
Install the
pre-commit
hooks by running:$ pre-commit install
Formatting and linting tools will run before each commit.
Branch names should be descriptive and follow the format below:
<type>/<short-description>
- type: Describes the nature of the branch (e.g.,
feature
,fix
,docs
,refactor
). - short description: A short description of the branch's purpose, using kebab-case.
Commit messages should be clear and descriptive. They should follow the format below:
<type>[(<scope>)]: <short description>
- type: Describes the nature of the change (e.g.,
fix
,feature
,docs
,refactor
). - scope (optional): The part of the codebase the change affects (e.g.,
parsing
). - short description: A short description of the change.
-
Create a new branch: Create a new branch based on the
main
branch following the convention above. -
Make your changes: Implement your changes.
-
Commit your changes: Commit your changes following the required format.
-
Pull from upstream: Before pushing your changes, pull the latest changes from the
upstream
main branch:git pull upstream main
-
Push to your fork: Push your branch to your forked repository.
-
Open a pull request: Go to the original repository and open a pull request from your branch. Ensure that your PR is descriptive, mentioning the changes made and their purpose.
Once your pull request is submitted, maintainers or contributors might provide feedback. Address any comments, make necessary changes, and push those updates to your branch.