forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial version of contributing guide. (rust-lang#506)
* Add initial version of contributing guide. * Highlight the preferential usage of the Enzyme compiler explorer to explore bugs and issues.
- Loading branch information
1 parent
313c989
commit 8827a70
Showing
1 changed file
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Contributing Guide | ||
|
||
Thank you for your interest in contributing to Enzyme! There are multiple ways to contribute, and we appreciate all contributions. In case you have questions, you can either use the [Discourse](https://discourse.llvm.org/c/projects-that-want-to-become-official-llvm-projects/enzyme/45) or the #enzyme channel on [Discord](https://discord.gg/xS7Z362). | ||
|
||
|
||
## Ways to Contribute | ||
|
||
### Bug Reports and Feature Requests | ||
|
||
If you are working with Enzyme, and run into a bug, or require additional features, we definitely want to know about it. Please let us know by either creating a [GitHub Issues](https://github.com/EnzymeAD/Enzyme/issues), or starting a thread in Enzyme's [LLVM Discourse Category](https://discourse.llvm.org/c/projects-that-want-to-become-official-llvm-projects/enzyme/45). | ||
|
||
### Bug Fixes | ||
|
||
If you are interested in contributing code to Enzyme, issues labeled with the [good-first-issue](https://github.com/EnzymeAD/Enzyme/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) keyword in the [GitHub Issues](https://github.com/EnzymeAD/Enzyme/issues) are a good way to get familiar with the code base. If you are interested in fixing a bug please comment on it to let people know you are working on it. | ||
|
||
> The easiest way to explore code in Enzyme is by using our [Compiler Explorer](https://enzyme.mit.edu/explorer) instance. | ||
If you are unable to reproduce the bug in Compiler Explorer, try to reproduce and fix the bug with upstream LLVM. Start by building LLVM from source as described in [Installation](https://enzyme.mit.edu/Installation/) and use the built binaries to reproduce the failure described in the bug. | ||
|
||
### Language Integrations | ||
|
||
In case you are interested in integrating Enzyme with a programming language which compiles to the LLVM IR, we encourage you to take a look at the [Language Frontend Guide](), and post on the [Discourse Category](https://discourse.llvm.org/c/projects-that-want-to-become-official-llvm-projects/enzyme/45) to let people know that you are working on it. | ||
|
||
## How to Submit a Pull Request | ||
|
||
Once you have a pull request ready, it is time to submit it. The pull request should: | ||
|
||
- Include a small unit test | ||
- Conform to the [LLVM Coding Standards](https://llvm.org/docs/CodingStandards.html). You can use the [clang-format-diff.py](https://reviews.llvm.org/source/llvm-github/browse/main/clang/tools/clang-format/clang-format-diff.py) or [git-clang-format](https://reviews.llvm.org/source/llvm-github/browse/main/clang/tools/clang-format/git-clang-format) tools to automatically format your patch properly. | ||
- Not contain any unrelated changes | ||
- Be an isolated change. Independent changes should be submitted as separate pull requests as this makes reviewing easier. | ||
|
||
Before sending a pull request for review, please also try to ensure it is formatted properly. We use clang-format for this, which has git integration through the git-clang-format script. On some systems, it may already be installed (or be installable via your package manager). If so, you can simply run it – the following command will format only the code changed in the most recent commit: | ||
|
||
```bash | ||
git clang-format HEAD~1 | ||
``` | ||
|
||
Note that this modifies the files, but doesn't commit them - you'll likely want to run | ||
|
||
```bash | ||
git commit --amend -a | ||
``` | ||
|
||
in order to update the latest commit with all pending changes. | ||
|
||
> If you don't already have `clang-format` or `git-clang-format` installed on your system, the `clang-format` binary will be built alongside clang, and the git integration can be run form `clang/tools/clang-format/git-clang-format`. | ||
## Code of Conduct | ||
|
||
As an LLVM Incubator Project we expect all participants to abide by the [LLVM Community Code of Conduct](https://llvm.org/docs/CodeOfConduct.html). |