- Rooch Network: Bitcoin-focused L2, Move-based “VApp container”. Main workspace under
crates/, Move runtime inmoveos/, frameworks inframeworks/, TS SDK undersdk/, apps underapps/.
- Tooling: Rust >= 1.91.1, Node >= 18 with pnpm, optional Docker.
- Install:
cargo build(ormake build),pnpm installwhere needed (use pnpm only). - Useful env:
RUST_LOG=debug,RUST_BACKTRACE=1,ROOCH_BINARY_BUILD_PROFILE=debug|optci.
- Build/test:
make build,make quick-check,make test,make test-rust,make test-move-frameworks,make test-move-examples. - Lint:
make lint(wrapscargo fmt -- --check+ clippy); TS:pnpm lint,pnpm prettier:check. - Move/CLI:
cargo build --profile debug(CLI attarget/debug/rooch),rooch init,rooch move build|test,rooch server start -n local. - Faster Rust tests:
cargo nextest run --workspace --all-features.
- Rust: rustfmt defaults, deny clippy warnings,
snake_casemodules, descriptive crate names (rooch-da,rooch-db, …). +- Move: align module/package names with framework folders; ASCII identifiers; deterministic manifests. - TS: Prettier + ESLint; PascalCase components, camelCase vars; sorted imports.
- Rust unit near code; integration in
crates/testsuite/. Filter withFILTER=for make targets. - Move: core with
make test-move-frameworks; examples withmake test-move-examples. - TS: package tests via
pnpm --filter ./sdk/typescript/<pkg> test; keep fixtures minimal.
- Message format:
<type>(<scope>): <subject>; types = feat/fix/refactor/ci/docs/chore/rfc. - Open draft PR early; include Summary and
Fixes #issueif applicable; attach repro steps/screenshots for UI. - Before requesting review:
make lint+ relevant tests green; list known gaps/follow-ups.
- Respect pnpm-only rule for JS/TS.
- When pruning/GC/snapshot/replay work, prefer existing commands under
rooch db state-prune .... - Keep instructions concise; avoid non-ASCII unless already present.