Developer Guide¶ Developing Galacticus The Galacticus Build System Coding Galacticus Style Conventions Node Class Hierarchy Builder Galacticus Preprocessor Directives Numerical Tools Computation Dependencies and Data Files Optimization Global Functions Galacticus Metadata Enumerations Defined Constants Classes Testing and Continuous Integration Test suites The CI pipeline Before opening a pull request Adding New Classes Code Directives Identifying Components and Mass Types Components Existing Classes Analytic Solvers Subsystems Creating a New Class Overview of Classes Creating a new class Traversing a Merger Tree The treeNode class Traversing examples Building Docker Images Build Environment Galacticus itself Versions and Releases Semantic Versioning Determining the Exact Version Used Release Steps