Hi there! Thank you for even being interested in contributing to canary.
This project uses Poetry as a dependency manager. Check out Poetry's documentation on how to install it on your system before proceeding.
❗Note: If you use Conda
or Pyenv
as your environment / package manager, avoid dependency conflicts by doing the following first:
- Before installing Poetry, create and activate a new Conda env (e.g.
conda create -n langchain python=3.9
) - Install Poetry (see above)
- Tell Poetry to use the virtualenv python environment (
poetry config virtualenvs.prefer-active-python true
) - Continue with the following steps.
To install requirements:
make install
This will install all requirements for running the package, examples, linting, formatting, tests, and coverage.
❗Note: If you're running Poetry 1.4.1 and receive a WheelFileValidationError
for debugpy
during installation, you can try either downgrading to Poetry 1.4.0 or disabling "modern installation" (poetry config installer.modern-installation false
) and re-install requirements. See this debugpy
issue for more details.
Now, you should be able to run the common tasks in the following section.
Type make
for a list of common tasks.
Formatting for this project is done via a combination of Black and isort via pre-commit.
To run formatting for this project:
make pre-commit
To run unit tests:
make test
If you add new logic, please add a unit test.
canary follows the semver versioning standard.
To use the automated release workflow you'll need to set up a PyPI account and create an API token. Configure the API token for this GitHub repo by going to settings -> security -> secrets -> actions, creating the PYPI_API_TOKEN
variable and setting the value to be your PyPI API token.
Once that's set up, you can release a new version of the package by opening a PR that:
- updates the package version in the pyproject.toml file,
- labels the PR with a
release
tag. When the PR is merged into main, a new release will be created.