# Dedal  This repository provides functionalities to easily ```managed spack environments``` and ```helpers for the container image build flow```. **Setting up the needed environment variables** The ````<checkout path>\dedal\.env```` file contains the environment variables required for OCI registry used for caching. Ensure that you edit the ````<checkout path>\dedal\.env```` file to match your environment. The following provides an explanation of the various environment variables: # OCI Registry Configuration Sample for concretization caches # ============================= # The following variables configure the Harbor docker OCI registry (EBRAINS) used for caching. # The hostname of the OCI registry. e.g. docker-registry.ebrains.eu CONCRETIZE__OCI_HOST="docker-registry.ebrains.eu" # The project name in the Docker registry. CONCRETIZE__OCI_PROJECT="concretize_caches" # The username used for authentication with the Docker registry. CONCRETIZE__OCI_USERNAME="robot$concretize-cache-test+user" # The password used for authentication with the Docker registry. CONCRETIZE__OCI_HOST="###ACCESS_TOKEN###" # OCI Registry Configuration Sample for binary caches # ============================= # The following variables configure the Harbor docker OCI registry (EBRAINS) used for caching. # The hostname of the OCI registry. e.g. docker-registry.ebrains.eu BUILDCACHE_OCI_HOST="docker-registry.ebrains.eu" # The project name in the Docker registry. BUILDCACHE_OCI_PROJECT="binary-cache-test" # The username used for authentication with the Docker registry. BUILDCACHE_OCI_USERNAME="robot$binary-cache-test+user" # The password used for authentication with the Docker registry. BUILDCACHE_OCI_HOST="###ACCESS_TOKEN###" For both concretization and binary caches, the cache version can be changed via the attributes ```cache_version_concretize``` and ```cache_version_build```. The default values are ```v1```. Before using this library, the following tool must be installed on Linux distribution: ```` apt install -y bzip2 ca-certificates g++ gcc gfortran git gzip lsb-release patch python3 python3-pip tar unzip xz-utils zstd ```` ```` python3 -m pip install --upgrade pip setuptools wheel ```` # Dedal library installation ```sh pip install dedal ``` # Dedal CLI Commands The following commands are available in this CLI tool. You can view detailed explanations by using the `--help` option with any command. ### 1. `dedal install-spack` Install spack in the install_dir folder. **Options:** - `--spack_version <TEXT>` : Specifies the Spack version to be installed (default: v0.23.0). - `--bashrc_path <TEXT>` : Defines the path to .bashrc. ### 2. `dedal set-config` Sets configuration parameters for the session. **Options:** - `--use_cache` Enables cashing - `--use_spack_global` Uses spack installed globally on the os - `--env_name <TEXT>` Environment name - `--env_path <TEXT>` Environment path to download locally - `--env_git_path <TEXT>` Git path to download the environment - `--install_dir <TEXT>` Install directory for installing spack; spack environments and repositories are stored here - `--upstream_instance <TEXT>` Upstream instance for spack environment - `--system_name <TEXT>` System name; it is used inside the spack environment - `--concretization_dir <TEXT>` Directory where the concretization caching (spack.lock) will be downloaded - `--buildcache_dir <TEXT>` Directory where the binary caching is downloaded for the spack packages - `--gpg_name <TEXT>` Gpg name - `--gpg_mail <TEXT>` Gpg mail contact address - `--cache_version_concretize <TEXT>` Cache version for concretizaion data - `--cache_version_build <TEXT>` Cache version for binary caches data - `--view <SpackViewEnum>` Spack environment view - `--update_cache <bool>` Flag for overriding existing cache ### 3. `dedal show-config` Show the current configuration. ### 4. `dedal clear-config` Clears stored configuration ### 5. `dedal add-spack-repo` Adds a spack repository to the spack environments. **Options:** - `--repo_name <TEXT>` Repository name [required] - `--path <TEXT>` Repository path to download locally [required] - `--git_path <TEXT>` Git path to download the repository [required] ### 6. `dedal setup-spack-env` Setups a spack environment according to the given configuration. ### 7. `dedal concretize` Spack concretization step. ### 9. `dedal install-packages` Installs spack packages present in the spack environment defined in configuration. **Options:** - `--jobs <INTEGER>` Number of parallel jobs for spack installation # Dedal's UML diagram 