Skip to content

6 Build CI and Project Tooling

Raul Cardenas Montoya edited this page Sep 19, 2026 · 1 revision

Build, CI and Project Tooling

Relevant source files

The following files were used as context for generating this wiki page:

Purpose and Scope

This page provides a high-level overview of the build configuration, continuous integration (CI) workflows, and project hygiene tooling used in synaptic-wiring. The project utilizes Cargo for dependency management, profile tuning, and packaging, while GitHub Actions enforces strict Minimum Supported Rust Version (MSRV) compliance, multi-platform compilation, and packaging validation.

For deep technical details, see the child pages:


Cargo Manifest, Profiles and Dependencies

The project manifest configures package metadata, publishing exclusions, and compilation profiles tailored for neural network simulation performance. The MSRV is strictly pinned to 1.98.1 across configurations Cargo.toml:1-10. To prevent bulky publishes, non-source assets like documentation, CI files, and config files are excluded from .crate archives Cargo.toml:22-34.

Four distinct build profiles are defined to optimize iteration speed, test execution, release binary size, and benchmarking accuracy Cargo.toml:57-83.

graph TD
    sub-topic["Build Profiles & Manifest"] --> Dev["[profile.dev] (opt-level = 0, incremental)"]
    sub-topic --> TestProfile["[profile.test] (inherits dev, opt-level = 1)"]
    sub-topic --> Release["[profile.release] (opt-level = 3, lto = thin, strip = true)"]
    sub-topic --> Bench["[profile.bench] (inherits release, debug = true, strip = false)"]

    style sub-topic fill:#fff,stroke:#000,stroke-width:1px
    style Dev fill:#fff,stroke:#000,stroke-width:1px
    style TestProfile fill:#fff,stroke:#000,stroke-width:1px
    style Release fill:#fff,stroke:#000,stroke-width:1px
    style Bench fill:#fff,stroke:#000,stroke-width:1px
Loading

Figure 1: Cargo compilation profiles mapped to Cargo.toml declarations.

For details, see Cargo Manifest, Profiles and Dependencies.

Sources: [Cargo.toml:1-83]()


CI Workflows and Packaging Validation

Continuous integration is driven by GitHub Actions workflows that guarantee cross-platform compilation, linting correctness, and MSRV synchronization [^1]. The primary validation pipeline ensures that Cargo.toml, rust-toolchain.toml, README.md, and workflow configurations never diverge on Rust version pins .github/workflows/ci.yml:35-79.

graph TD
    NL_Validate["MSRV Consistency Check"] --> Code_Validate["validate job in .github/workflows/ci.yml"]
    NL_Package["crates.io Dry-Run & Packaging List"] --> Code_Package["package job in .github/workflows/ci.yml"]
    
    Code_Validate --> CheckPin["grep rust-version Cargo.toml & verify workflow files"]
    Code_Package --> CargoPkg["cargo package --locked --list"]

    style NL_Validate fill:#fff,stroke:#000,stroke-width:1px
    style Code_Validate fill:#fff,stroke:#000,stroke-width:1px
    style NL_Package fill:#fff,stroke:#000,stroke-width:1px
    style Code_Package fill:#fff,stroke:#000,stroke-width:1px
    style CheckPin fill:#fff,stroke:#000,stroke-width:1px
    style CargoPkg fill:#fff,stroke:#000,stroke-width:1px
Loading

Figure 2: Natural language validation stages mapped to GitHub Actions job steps in ci.yml.

For details, see CI Workflows and Packaging Validation.

Sources: [.github/workflows/ci.yml:1-166]()


Code Quality, Licensing and Review Gates

Project hygiene relies on automated static analysis, license verification, and rigorous review guidelines specified in REVIEW.md. Tooling integrations such as cargo-deny, Codacy, and DeepSource enforce compliance before code merges into the main branch.

For details, see Code Quality, Licensing and Review Gates.

Sources: [Cargo.toml:22-34](), [.github/workflows/ci.yml:92-98]()


[^1]: MSRV: Minimum Supported Rust Version.

Clone this wiki locally