Thank you for your interest in Materialize! Contributions of many kinds are encouraged and most welcome.
If you have questions, please create a Github issue.
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/.
Prospective code contributors might find the good for external contributors tag useful.
It's a good idea to comment on any GitHub issue you're planning to pick up to let folks know. That way, you can get proactive advice and speedier reviews.
If you start work on the issue 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 an issue. 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: