Development workflow

Prerequisites

  • Docker

Building

Since Orchest is a fully containerized application you will first have to build the containers.

# It is also possible to specify certain flags, running it without
# any will build all containers in parallel. Due to Docker's
# layering system this should be rather quick.
scripts/build_container.sh

Incremental development

Orchest support incremental development by starting Orchest in dev mode. This allows you to make code changes that are instantly reflected, without having to build the containers again.

# Before Orchest can be run in "dev" mode the front-end code has to
# be compiled.
scripts/dev_compile_frontend.sh

./orchest start dev

Note

dev mode is supported for the following services: orchest-webserver, auth-server, file-manager and orchest-api. For all other services you will have to run the build script again to rebuild the container (scripts/build_container.sh -i <service-name>).

In dev mode the repository code from the filesystem is mounted (and thus adhering to branches) to the appropriate paths in the Docker containers. This allows for active code changes being reflected inside the application. In dev mode the Flask applications are run in development mode.

Before committing

Install all development dependencies using:

# https://pre-commit.com/
pre-commit install

Run lints and tests with:

pre-commit run -a
scripts/run_tests.sh