For significant changes or enhancements to the design or architecture of Notion, we use a Request For Comments (RFC) process. Everyone, including the core team, follows this process.
We encourage you to share your ideas and feedback with us!
Code of Conduct
Notion is intended to compile with Rust 1.33 or newer.
To compile Notion from source, use Cargo:
Installing Local Builds
To install a locally built copy of Notion, you can use the helper scripts provided in the
cargo build ./dev/unix/build.sh debug ./dev/unix/install.sh
cargo build --release ./dev/unix/build.sh ./dev/unix/install.sh
We use Rust’s official rustfmt tool in our CI to ensure consistent style in the Notion codebase.
To ensure your code is formatted correctly, make sure you have installed
rustup component add rustfmt
and run the following before submitting your PR:
cargo fmt --all
Visual Studio Code
If you use Visual Studio Code with the official Rust plugin, you can configure your editor to automatically format on save.
When developing, we suggest you set the
NOTION_DEV environment variable to 1 and the
RUST_BACKTRACE environment variable to
full. This will provide extra diagnostic information to stderr on crashes. We have an issue on file to improve the quality of diagnostics.
To run the tests in this repo, run the following:
cargo test --all --features mock-network
Notion is licensed under a permissive BSD 2-clause license.