Thank you for your interest in Materialize! Contributions of many kinds are encouraged and most welcome.
If you have questions, please create a Github discussion.
The best place to start using Materialize is probably the documentation instructions.
After using Materialize, if you'd like to contribute, extensive documentation on our development process is available in the doc/developer folder.
Materialize is written entirely in Rust. Rust API documentation is hosted at https://dev.materialize.com/api/rust/.
If you're interested in contributing to Materialize, please create a Github
discussion
describing the work you're planning to pick up. Prospective code contributors might
find the D-good for external contributors
tag useful.
If you start working on a contribution before hearing back from a Materialize engineer, there is a risk that we may not be able to accept your changes. The team may not have bandwidth to review your changes, or the code in question may require specialized knowledge to modify without introducing bugs. When in doubt, wait for a Materialize engineer to respond before starting work!
Bug reports are welcome, and the most effective way to report a bug is to file a discussion. As Materialize is under rapid development, it is helpful if you report the version of Materialize that you are using, and if it a crash report, the stack trace.
When landing large or substantial changes, we want to make sure users are aware of the work you're doing! This means we require:
- Coordination with a technical writer to generate or update user-facing documentation that will show up on <materialize.com/docs>. If you have questions, open an issue with the
A-docs
tag. - Generating release notes by describing your change in
doc/user/release-notes.md
. If there any questions about which version the feature will be released in, consult <materialize.com/docs/versions> or chat with us.
- All new features
- All API changes
- Large bug fixes
Some areas that are well suited for external contributions are:
- Adding SQL functions
- Adding pg_catalog tables to support more tools and integrations
Areas that are not well suited for external contributions: