Build Guide¶
This guide covers building Micromegas from source and setting up a development environment.
Prerequisites¶
- Rust - Latest stable version
- Python 3.8+
- Docker - For running PostgreSQL
- Git
- Build tools - C/C++ compiler and linker (required for Rust compilation)
- Linux:
sudo apt-get install build-essential clang mold - macOS:
xcode-select --install - Windows: Install Visual Studio Build Tools
mold linker requirement
On Linux, the project requires the mold linker as configured in .cargo/config.toml. This provides faster linking for large projects.
Additional CI Tools¶
For running the full CI pipeline locally, you'll need:
Rust Development¶
Clone and Build¶
git clone https://github.com/madesroches/micromegas.git
cd micromegas/rust
# Build all components
cargo build
# Build with optimizations
cargo build --release
# Build specific component
cargo build -p telemetry-ingestion-srv
Testing¶
# Run all tests
cargo test
# Run tests with output
cargo test -- --nocapture
# Run specific test
cargo test -p micromegas-tracing
Format and Lint¶
# Format code (required before commits)
cargo fmt
# Run linter
cargo clippy --workspace -- -D warnings
# Run full CI pipeline
python3 ../build/rust_ci.py
Advanced Builds¶
# Clean build
cargo clean && cargo build
# Release with debug symbols for profiling
cargo build --profile release-debug
# Profiling build
cargo build --profile profiling
# Cross-platform build
rustup target add x86_64-pc-windows-gnu
cargo build --target x86_64-pc-windows-gnu
Python Development¶
cd python/micromegas
# Install dependencies
poetry install
# Run tests
pytest
# Format code (required before commits)
black .
Documentation¶
# Install dependencies
pip install -r mkdocs/docs-requirements.txt
# Start development server
cd mkdocs
mkdocs serve
# Build static site
mkdocs build
Next Steps¶
- Contributing Guide - How to contribute to the project
- Getting Started - Set up a development instance
- Architecture Overview - Understand the system design