Setting up the project for local development will require all of the following the be installed:
- git (version
2.39
or higher) - ffmpeg (version
6.0
or higher) - python (version
3.11
or higher) - Poetry (version
1.8
or higher) - node (version
18.0
or higher) - optionally docker (version
24.0
or higher)
NOTE: docker is an optional but preferred way to develop. If you are using docker, all other dependencies above will not be required except for git.
Setting up the project using docker is simple. Simply run the following command with docker installed:
# NOTE: ensure to specify the dev docker compose file for features like hot reload when code changes
docker compose -f docker-compose.dev.yml up --build
NOTE: using this method will only allow running the project. You must setup the project without docker to be able to generate, format, lint, and check the project.
Setting up the project without docker will require that the above dependencies are all installed. After which you can run the following commands:
# Enable corepack, it is disabled by default in the supported versions of NodeJS
corepack enable
# Prepare corepack based on the packageManager specified in the projects package.json
corepack prepare
# Install all dependencies
pnpm install
# Run the projects API and web app in development mode
pnpm dev:web
# Run the projects API and extension in development mode
pnpm dev:extension
The project uses a generated client to interact with the api based on its OpenAPI specification.
To generate an up to date client, run the following command:
pnpm generate
NOTE: this will first generate the openapi.json specification in the api, then generate the client, and apply any patches we have made. These generated files should be committed to source control.
Running formatting on the project can be done using the following command:
pnpm format
Running linting on the project can be done using the following command:
pnpm lint
Running checking on the project can be done using the following command:
pnpm check
If you plan to fix a bug with the project, please start by putting in a bug report issue in the GitHub repository.
Please ensure that once you make a bug fix you run pnpm changeset
to generate a changeset entry for the bug fix.
If you plan to add a new feature to the project, please start by putting in a feature request issue in the GitHub repository. This will ensure tracking of the feature request, as well as provide information about what you are attempting to implement.
After developing a new feature it is important that you test it thoroughly locally first before submitting a pull request.
Please ensure that once you develop a feature you run pnpm changeset
to generate a changeset entry for the feature.