Welcome to the MAX community! 🧑🚀 We're very excited that you're interested in contributing to the project.
The following procedures and guidelines aim to create an environment where open source contributors and the teams at Modular can work together effectively toward the continued improvement of MAX.
There are many ways to contribute, from joining our forum or Discord community, to filing bugs, to contributing documentation, examples, or code.
-
Check the contribution areas to see which kinds of change the part of MAX you want to improve accepts. Every area currently accepts bug fixes only.
-
Where an area accepts larger changes, open an issue to discuss the change before you open a pull request. The owning team marks the issue
acceptedonce it's ready for a PR. -
Read our issue and PR etiquette. It sets out what we expect from you when engaging with the modular/modular repository, including our rules on AI-assisted contributions and on keeping pull requests small.
-
Read the Code of Conduct on GitHub.
Note
We limit new contributors to two concurrent open pull requests.
The contribution process takes you from signaling your intent on an issue through to your change shipping in a nightly.
For the mechanics of forking, branching, and opening a pull request against this repository, see the Modular contributor guide on GitHub.
- MAX framework developer guide: Set up your environment, build MAX, and run the minimal test matrix. Also covers local test prerequisites such as Hugging Face auth, model downloads, and GPU-only targets.
- Debug MAX model accuracy: Find where a MAX pipeline diverges from its PyTorch reference.
- Kernel benchmarking with
kbenchand kernel profiling with Nsight Compute: Show that a kernel fix doesn't regress performance. - Benchmarking a MAX endpoint: Measure throughput and latency of a serving change.
- Mojo docstring style guide: How to document Mojo APIs. Python docstrings use RST with Google-style sections; match the module you're editing.
Thank you for your contributions! ❤️