From 287fbfbcd232f3b84e6d250d43721ac62a703bf1 Mon Sep 17 00:00:00 2001 From: pezkuwichain Date: Tue, 21 Apr 2026 20:27:35 +0000 Subject: [PATCH] docs: add DEVELOPMENT.md contributor setup guide --- DEVELOPMENT.md | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 DEVELOPMENT.md diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 00000000..ed54ccab --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,92 @@ +# Development Guide + +Quick reference for building and running Pezkuwi SDK locally. +For full documentation see the [Development Guide wiki](https://gitlab.com/pezkuwichain/pezkuwi-sdk/-/wikis/Development-Guide). + +## System Requirements + +| Resource | Minimum | Recommended | +|----------|---------|-------------| +| CPU | 4 cores | 8+ cores | +| RAM | 8 GB | 16+ GB | +| Disk | 50 GB | 100+ GB SSD | +| OS | Ubuntu 22.04 / macOS 13+ | Ubuntu 24.04 | + +### Dependencies (Ubuntu) + +```bash +sudo apt-get install -y \ + build-essential git clang cmake pkg-config \ + libssl-dev protobuf-compiler +``` + +### Dependencies (macOS) + +```bash +brew install cmake protobuf openssl +``` + +## Rust Setup + +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +rustup target add wasm32-unknown-unknown +``` + +> Toolchain version is pinned in `rust-toolchain.toml` (currently 1.88.0). +> `rustup show` will install it automatically. + +## Build + +```bash +# Type-check entire workspace (fast) +cargo check --workspace --locked + +# Build node binary +cargo build --release -p pezkuwi --locked + +# Binaries produced: +# target/release/pezkuwi +# target/release/pezkuwi-execute-worker +# target/release/pezkuwi-prepare-worker +``` + +## Run a Local Dev Node + +```bash +./target/release/pezkuwi --dev +``` + +## Tests + +```bash +# Unit tests +cargo test --workspace --lib --locked + +# With nextest (parallel, faster) +cargo nextest run --workspace --locked + +# Doc tests +cargo test --doc --workspace --locked +``` + +## Linting + +```bash +cargo fmt --all +cargo clippy --workspace --all-targets --all-features -- -D warnings +taplo format --config .config/taplo.toml +``` + +## Docs + +```bash +cargo doc --workspace --no-deps --open +``` + +## More + +- [Architecture](https://gitlab.com/pezkuwichain/pezkuwi-sdk/-/wikis/Architecture) +- [Custom Pallets](https://gitlab.com/pezkuwichain/pezkuwi-sdk/-/wikis/Custom-Pallets) +- [Contributing](./CONTRIBUTING.md) +