# How to contribute

We'd love to accept your patches and contributions to this project.

To get started with contributing, please take a look at the
[Contributing](https://iree.dev/developers/general/contributing/) guide.

## Getting in touch

*   [GitHub issues](https://github.com/iree-org/iree/issues): Feature requests,
    bugs, and other work tracking
*   [IREE Discord server](https://discord.gg/wEWh6Z9nMU): Daily development
    discussions with the core team and collaborators
*   [iree-discuss email list](https://groups.google.com/forum/#!forum/iree-discuss):
    Announcements, general and low-priority discussion

## Community guidelines

This project follows the
[LF Projects code of conduct](https://lfprojects.org/policies/code-of-conduct/).
