This document defines how we ship high-confidence changes in this repository.
- Install system dependencies.
# Ubuntu/Debian sudo apt update && sudo apt install build-essential cmake libssl-dev pkg-config # macOS brew install openssl cmake
- Install Rust toolchain
1.88(seerust-toolchain.toml).rustup toolchain install 1.88 rustup default 1.88 rustup component add rustfmt clippy rust-src
- Clone and enter the repository.
git clone https://github.com/tangle-network/blueprint.git cd blueprint
cli/:cargo-tangleCLI.crates/: SDK crates (core,manager,networking,stores,testing-utils, etc.).examples/: reference blueprints that must stay buildable.docs/: long-form specifications, RFCs, and operator guides..github/: CI workflows and PR automation.
- Branch prefixes:
feature/for featuresfix/for bug fixesdocs/for docs-only changesrefactor/for internal code movementtest/for test-only updates
- Commit format: Conventional Commits (
feat(scope): ...,fix(scope): ...).
Run these before opening a PR:
cargo fmt --all
cargo clippy --workspace --all-targets --all-features -D warnings
cargo test --workspace --all-features
cargo build --workspace --all-featuresFor focused iteration, use cargo test -p <crate>.
Blueprint follows a harness-first workflow for risky changes:
- Reproduce the problem with the smallest failing harness/test.
- State invariants and fail-closed behavior before implementing.
- Patch the code.
- Prove the fix with targeted tests and negative-path coverage.
- Document operational impact (operator/customer/developer) when behavior changes.
Use the playbook for full guidance:
docs/engineering/HARNESS_ENGINEERING_PLAYBOOK.mddocs/engineering/HARNESS_ENGINEERING_SPEC.mddocs/engineering/HARNESS_REVIEW_CHECKLIST.md
Every PR must:
- Fill out the PR template completely.
- Include verification commands with pass/fail outcomes.
- Call out risks, migration notes, and behavior changes.
- Add tests for new logic and regressions.
- Update docs/examples when interfaces or flows change.
Large changes may require an RFC in docs/rfcs/.
Reviewers should prioritize:
- Correctness and security regressions.
- Backward-compatibility and migration clarity.
- Test quality (including negative/fail-closed paths).
- Operational observability and rollback safety.
For questions, open an issue or use Discord: https://discord.com/invite/cv8EfJu3Tn.