Skip to content

Latest commit

 

History

History
61 lines (37 loc) · 2.49 KB

CONTRIBUTING.md

File metadata and controls

61 lines (37 loc) · 2.49 KB

Contributing to Canary

Hi there! Thank you for even being interested in contributing to canary.

🚀 Quick Start

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:

  1. Before installing Poetry, create and activate a new Conda env (e.g. conda create -n langchain python=3.9)
  2. Install Poetry (see above)
  3. Tell Poetry to use the virtualenv python environment (poetry config virtualenvs.prefer-active-python true)
  4. 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.

✅ Common Tasks

Type make for a list of common tasks.

Code Formatting

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

Testing

To run unit tests:

make test

If you add new logic, please add a unit test.

🏭 Release Process

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:

  1. updates the package version in the pyproject.toml file,
  2. labels the PR with a release tag. When the PR is merged into main, a new release will be created.