Skip to content

Latest commit

 

History

History
46 lines (34 loc) · 2.66 KB

CONTRIBUTIONS.md

File metadata and controls

46 lines (34 loc) · 2.66 KB

Moonbeam

Contributions

Moonbeam primarily uses GitHub Pull Requests to coordinate code changes. If you wish to propose a contribution, open a pull request and review the template, which explains how to document your proposal.

You may also consider joining our Discord server or Element room to discuss your changes.

Generated Documentation

You can explore our crate-level documentation. This documentation is automatically built and reflects the latest master commit.

Code style

Moonbeam is following the Substrate code style.

In addition, we incorporate several tools to improve code quality. These are integrated into our CI and are expected to pass before a PR is considered mergeable. They can also be run locally.

  • clippy - run with cargo clippy --release --workspace
  • rustfmt - run with cargo fmt -- --check
  • editorconfig - integrate into your text editor / IDE
  • prettier - run with npx prettier --check --ignore-path .gitignore '**/*.(yml|js|ts|json)' (runs against typescript code)

Directory Structure

The following is a list of directories of interest in development.

Directory Purpose
client/ Debug & Trace related code (rust)
docker/ Dockerfiles for running Moonbeam
moonbeam-types-bundle/ PolkadotJs types definitions for Moonbeam (typescript)
node/ Moonbeam's main node (rust)
pallets/ Moonmeam's Substrate runtime pallets (rust)
primitives/ More Debug & Trace related code (rust)
runtime/ Moonbeam's runtime (on-chain) code (rust, compiled to WASM)
scripts/ Utilities for launching and interacting with a Moonbeam chain (typescript)
specs/ Spec files used to generate genesis for well-known Moonbeam networks
tools/ Various tools generally related to development (typescript)