-
Notifications
You must be signed in to change notification settings - Fork 2
6 Build CI and Project Tooling
Relevant source files
The following files were used as context for generating this wiki page:
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 — Cargo.toml profiles, MSRV pin, packaging exclude list, locked dependency graph
- CI Workflows and Packaging Validation — ci.yml jobs, MSRV consistency check, crates.io dry-run, coverage.yml, linear-release.yml
- Code Quality, Licensing and Review Gates — REVIEW.md gates, cargo-deny/deny.toml, codacy, deepsource, licenses, docs assets
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
Figure 1: Cargo compilation profiles mapped to Cargo.toml declarations.
For details, see Cargo Manifest, Profiles and Dependencies.
Sources: [Cargo.toml:1-83]()
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
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]()
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.
- 1. Overview
- 1.1. Getting Started & Public API
- 1.2. Release History and Versioning
- 2. Core Runtime: SynapticMesh
- 2.1. Propagation APIs and Tick Semantics
- 2.2. Spike Delay Buffer (Ring Buffer)
- 2.3. Core Types and Error Model
- 2.4. Checkpointing and Serde State Restoration
- 3. Topology Subsystem
- 3.1. SynapticGraph and CSR Representation
- 3.2. Topology Generators
- 3.3. Wiring Rules, Dale's Law and Delay Assignment
- 3.4. Topology Digest
- 4. Sparse Maps and Channel Routing
- 4.1. ChannelRouter and RouterConfig
- 4.2. Neuromodulation and Plasticity
- 4.3. SparseSynapticMap (CSR)
- 5. Testing, Benchmarks and Quality Gates
- 5.1. Propagation Contract Tests
- 5.2. Checkpoint Resume Property Suite
- 5.3. Benchmarks and Unit Test Module
- 6. Build, CI and Project Tooling
- 6.1. Cargo Manifest, Profiles and Dependencies
- 6.2. CI Workflows and Packaging Validation
- 6.3. Code Quality, Licensing and Review Gates
- 7. Glossary