Layout of project
The project consists of several components in a cargo workspace.
- The three main crates,
gda,amygdalaandamygdala-api. These are all at the root level of the project, each in their own directory. They are referenced as workspace members in the rootCargo.tomlfile. ci.pyand 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