Development workflow


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.

Incremental development

Orchest supports 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.

./orchest start dev


dev mode is supported for the following services: orchest-webserver, auth-server, file-manager and orchest-api. For changes to other services you will have to run the build script again to rebuild the container (scripts/ -i <service-name>) and restart Orchest (./orchest restart --mode=dev) to make sure the newly build container is used.

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:

pre-commit install

Run formatters, linters and tests with:

pre-commit run -a