๐Ÿผ Contributing to PandasAI

Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.

๐Ÿค How to submit a contribution

To make a contribution, follow the following steps:

  1. Fork and clone this repository
  2. Do the changes on your fork
  3. If you modified the code (new feature or bug-fix), please add tests for it
  4. Check the linting see below
  5. Ensure that all tests pass see below
  6. Submit a pull request

For more details about pull requests, please read GitHub's guides.

๐Ÿ“ฆ Package manager

We use poetry as our package manager. You can install poetry by following the instructions here.

Please DO NOT use pip or conda to install the dependencies. Instead, use poetry:

poetry install --all-extras --with dev

๐Ÿ“Œ Pre-commit

To ensure our standards, make sure to install pre-commit before starting to contribute.

pre-commit install

๐Ÿงน Linting

We use ruff to lint our code. You can run the linter by running the following command:

make format_diff

Make sure that the linter does not report any errors or warnings before submitting a pull request.

Code Format with ruff-format

We use ruff to reformat the code by running the following command:

make format

Spell check

We usee codespell to check the spelling of our code. You can run codespell by running the following command:

make spell_fix

๐Ÿงช Testing

We use pytest to test our code. You can run the tests by running the following command:

make tests

Make sure that all tests pass before submitting a pull request.

๐Ÿš€ Release Process

At the moment, the release process is manual. We try to make frequent releases. Usually, we release a new version when we have a new feature or bugfix. A developer with admin rights to the repository will create a new release on GitHub, and then publish the new version to PyPI.