.. include:: ./../macros.txt .. include:: ./../units.txt .. _PREFACE: Preface ======= This is the |foxbms| developer manual. Every developer working on the project **MUST** read this document to understand the development workflow. Changes to this document **MUST** be tracked under version control. The document is versioned as part of the |foxbms| documentation. Terms and their definitions related to the developer manual are described in :numref:`developer-manual-terms-and-definitions`. Structure --------- This document is separated into a :ref:`general style guide`, a :ref:`software developer manual` and a :ref:`hardware developer manual`. Terminology ----------- The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in BCP 14 in :cite:`RFC2119` and :cite:`RFC8174` when, and only when, they appear in all capitals and bold, as shown here. This terminology is used throughout all technical documents associated with |foxbms|. Version control --------------- In order for changes to be traceable, all changes in the |foxbms| project **MUST** be under version control. |git| is used for this task. The details of the development workflows are described in the respective developer manuals.