Skip to content

Topic: Modular Build — ESD build paths

The envisioned usage of the ESD includes:

  • EBRAINS (jupyter) lab
  • laptop use (i.e. run somewhere, use-as-downloaded or user-modified)
  • HPC use (flat deployment or containerized, site-admin-managed or user-handled)
  • service deployment (e.g., some k8s thing, or some classical systemd service)
  • GDPR-sensitive environments (e.g., "minimum-set" deployments)

→ i.e. to avoid duplication in the build flow, we need a modular build path.

Several aspects are important:

  • caching (sources, build results, spack buildcache, images)
  • handling of filesystem locations
  • restricted build environments (i.e. non-privileged to varying degree)

Spack defines a typical workflow that involves:

  • concretization → finding out the packages that should be "there", in which version/variant, etc.)
  • fetching of sources → downloading source packages that are to be built
  • fetching and installing from buildcache → downloading and installing from a buildcache
  • building and installing of packages from source
  • (and environment creation/handling things (first step: base compiler, but also env definition/creation/spezialiation, etc.)
Edited by Eric Müller