Contributing Guide
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
Section titled “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 installnpm run dev # hot-reloading dev servernpm run build # production buildCoding standards
Section titled “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 codecargo fmt
# Lint (warnings treated as errors)cargo clippy --all-targets --all-features -- -D warnings
# Run unit testscargo testTesting
Section titled “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.
# Run the integration test suite (quiet mode by default)./integration-tests/run.sh
# Verbose mode when diagnosing a stuck or failing run./integration-tests/run.sh --verbose
# Run against a real Canton devnet cluster./integration-tests/run.sh --target devnetCommit conventions and pull requests
Section titled “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.
Ask the docs
Answers come only from this documentation and can be wrong. Check the linked pages.
Ask a question about BitSafe, CBTC or the developer guides. For example: