Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Layout of project

The project consists of several components in a cargo workspace.

  • The three main crates, gda, amygdala and amygdala-api. These are all at the root level of the project, each in their own directory. They are referenced as workspace members in the root Cargo.toml file.
  • ci.py and the releng python module used to support building, testing and deployment via CI. Can also be used locally - see releng section
  • The book. This documentation built using mdbook
  • catalog-info.yaml - project information for the DLS dev-portal

Crate overview

GDA

The gda client command used to communicate with amygdala and control GDA.

Amygdala

The amygdala daemon that manages the running instance of the GDA server.

Amygdala API

The amygdala-api crate contains the message and service definitions used for communication between the other two applications. These definitions could also be used in future to support new applications, potentially in different languages.

CI scripts

The main ci.py script at the root of the project is used for CI to lint, test, build and deploy the project. It can also be used locally.

It depends of some types and utilities defined in the releng package.

The Book

The high level documentation (this site) is written as an mdbook. The source is in book/src and it can be built using mdbook build book from the root of the repo. This builds in into book/book. It can also be served by a development server offering live updates and reloading etc via mdbook serve book. See mdbook docs for more configuration options.

Generated content

The book contains the output of gda help commands. To keep these up to date, they are generated when the book is compiled. The commands that are run and the files that are written are listed in book/help_commands.csv and built by the mdbook-gen-help script. This is run automatically by mdbook as a preprocessor (configured in book/book.toml) and requires the path to the built applications via the BUILD_ARTIFACTS environment variable. If using the ci script to build everything (./ci.py build), this should be artifacts.

BUILD_ARTIFACTS=artifacts mdbook serve book

Remaining files

The remaining files are informational

  • README.md - introduction to the project and the main homepage when viewing the repo on gitlab
  • DEPLOYMENT.md - rough guide to running the amygdala process
  • DEVELOPMENT.md - guidelines to follow for developers - git workflow, review checklist etc. This is included in this book as Developer Reference
  • DLS_DEPLOYMENT.md - DLS specific description of the release procedure and version handling