Getting Started

Before getting started, fork this repo and clone your fork.

Development Environment

Tip

This project includes a devcontainer which can be used for development. See the devcontainer section for more details.

This project uses poetry to create Python virtual environment. This must be installed on your system before setting up your dev environment. Additionally, the poetry-dynamic-versioning plugin should be installed. Refer to the documentation of poetry-dynamic-versioning for how to install it based on how you installed poetry.

With poetry installed, run make setup to setup your development environment. This will create all the required virtual environments to work on Runway, build docs locally, and run integration tests locally. The virtual environments all have Runway installed as editable meaning as you make changes to the code of your local clone, it will be reflected in all the virtual environments.

devcontainer

Tip

When using the devcontainer, you can skip running make setup (and it’s sub commands) because this is done automatically when connecting to the container.

The devcontainer included in this project provides all of the tools required (node, npm, poetry, python, etc) for development and a few bonuses for quality of life (direnv, vscode extensions, etc). It’s not required to use this for development work, but does provide an easy and consistent way to get started.

The devcontainer bind mounts your ~/.aws/ directory. If this directory does not exist, the devcontainer will fail to start and raise a long error containing “bind source path does not exist”. To resolve this error, either remove the bind mount from the .devcontainer/devcontainer.json (don’t commit this change) or create the directory (it can be empty).

pre-commit

pre-commit is configured for this project to help developers follow the coding style. If you used make setup to setup your environment, it is already setup for you. If not, you can run make setup-pre-commit to to install the pre-commit hooks.

You can also run make run-pre-commit at any time to manually trigger these hooks.

pyright Type Checking

This project uses pyright to perform type checking. To run type checking locally, install pyright (make setup-npm) then run make lint or make lint-pyright.