Fork & Clone Repository

Details on this process can be found in the GitHub Documentation.

Dependency Management: Poetry and other env/dependency managers

This project utilizes Poetry v1.8.2+ as a dependency manager.

❗Note: Before installing Poetry, if you use Conda, create and activate a new Conda env (e.g. conda create -n langchain python=3.10)

❗Note: If you use Conda or Pyenv as your environment/package manager, after installing Poetry, tell Poetry to use the virtualenv python environment (poetry config virtualenvs.prefer-active-python true)

❗Note: Please ensure that you are developing and testing in Python 3.10 to ensure compatibility.

Local Set Up

Install dependencies and set up precommit hooks:

make init

You must also install Graphviz if you intend to use visualization features.

Verify that proper dependencies are installed and the project is set up properly:

make test_unit
  • This will run all tests that don’t engage with the OpenAI API or require a database.

Create an .env file that contains the contents of example.env. Replace the OPENAI_API_KEY value with your OpenAI key if you intend to contribute to LLM dependent modules.

Testing

Run all tests:

make test
  • This will require the OPENAI_API_KEY environment variable to be declared in the .env file.
  • This will require a local instance of Neo4j running to test against.

Run all free tests:

make test_free
  • This will require a local instance of Neo4j running to test against.

Run all unit tests:

make test_unit

Run all integration tests:

make test_integration
  • This will require the OPENAI_API_KEY environment variable to be declared in the .env file.
  • This will require a local instance of Neo4j running to test against.

Formatting

Run formatter:

make format
  • This will format the project.

Formatting checks will also be executed via a precommit hook.

Documentation

Runway uses the NumPy documentation style guide. All public facing classes and methods should be documented in this manner.

Documentation will be refreshed from the main branch upon a new release.