For the complete documentation index, see llms.txt. This page is also available as Markdown.

Contributing Guide

Development setup, coding standards, commit conventions, and the PR process.

Contributions to the Decentralization Manager are welcome. This guide covers setting up a development environment, the coding standards, commit conventions, and the pull request process. Please also review the project's Code of Conduct, and report any vulnerabilities via the Security Policy.

Development setup

The backend is built with the Rust toolchain and the frontend is a React application embedded into the Rust binary at build time. Build with cargo build (add --release for a release build), and for the frontend run npm install and npm run dev for a hot-reloading development server, or npm run build for a production build.

# Build the backend (add --release for an optimized build)
cargo build

# Frontend (run from the frontend/ directory)
npm install
npm run dev    # hot-reloading dev server
npm run build  # production build

Coding standards

Format Rust code with cargo fmt and lint with cargo clippy --all-targets --all-features -- -D warnings, which treats warnings as errors. Run cargo test for unit tests before opening a pull request.

# Format code
cargo fmt

# Lint (warnings treated as errors)
cargo clippy --all-targets --all-features -- -D warnings

# Run unit tests
cargo test

Testing

The integration test boots a local Canton network, spawns three manager instances, configures peers, and runs an end-to-end governance workflow covering onboarding, DAR distribution, governance contract deployment, the plugin scenarios, and the kick workflow. Run it with ./integration-tests/run.sh, adding --verbose when diagnosing a stuck or failing run. The same suite can run against a real Canton devnet cluster with ./integration-tests/run.sh --target devnet.

Commit conventions and pull requests

Follow the repository's commit message conventions and open a pull request for review. Ensure formatting, linting, and tests pass before requesting review, and keep changes focused so they are straightforward to review and merge.

Last updated