Development Overview
The Development section covers everything you need to set up a working development environment, build ChronoLog from source, and run its test suite. Whether you are fixing a bug, adding a feature, or exploring the codebase, start here to get your toolchain in place.
What's in this section
Environment Setup
ChronoLog builds on Linux with a C++17 compiler and manages its dependency tree through Spack. This page walks through two setup paths: building from source with Spack v0.21.2 or using the pre-built Docker image with all dependencies included. It also covers optional IDE configuration for CLion and VS Code.
See Environment Setup for the full setup instructions.
Building for Development
Once your environment is ready, the developer deployment scripts handle the build-install-run cycle. This page documents the single-node (local_single_user_deploy.sh) and cluster (single_user_deploy.sh) scripts, their execution modes (build, install, start, stop, clean), and all available options including build type, directory paths, and process counts.
See Building for Development for build workflows and script reference.
Running Tests
ChronoLog's test suite spans unit, functional, integration, end-to-end, communication and overhead tests, with 527 CTest entries in a Debug build, plus integration scripts that deploy their own daemons and the distributed pipeline. This page catalogs the tests, explains how to run subsets with CTest, and documents which tests need a running deployment or are disabled.
See Running Tests for the full test catalog and execution instructions.
Typical workflow
- Set up your environment — install dependencies via Spack or pull the Docker image
- Build in Debug mode — use
local_single_user_deploy.sh --build --build-type Debug - Install — use
local_single_user_deploy.sh --install - Run tests —
ctest --output-on-failure -j$(nproc)from the build directory - Start ChronoLog — use
local_single_user_deploy.sh --startfor manual/integration tests that need a live deployment