Contributing Guide
Community
We use Discord for community discussion. You can use this permanent invite to join our Discord server!
We welcome issues and pull requests on GitHub!
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
Contribution to Notion is organized under the terms of the Contributor Covenant Code of Conduct. The lead maintainer of Notion, Dave Herman, personally promises to work actively to uphold that code of conduct. We aim to foster a community that is welcoming, inclusive, empathetic, and kind. If you share those goals and want to have a ton of fun building cool JavaScript tools and playing with Rust, we invite you to join us!
Development
Rust
Notion is intended to compile with Rust 1.31 or newer.
Formatting
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 rustfmt
:
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.
Debugging
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.
Tests
To run the tests in this repo, run the following:
cargo test --all --features mock-network
License
Notion is licensed under a permissive BSD 2-clause license.