Skip to content

[SYCL][Doc] Clean up contribution guide #1028

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 4, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 23 additions & 20 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

## License
Intel Project for LLVM* technology is licensed under the terms of the
Apache-2.0 with LLVM-exception license (
[LICENSE.txt](https://github.com/intel/llvm/blob/intel/llvm/LICENSE.TXT))
Apache-2.0 with LLVM-exception license ([LICENSE.txt](llvm/LICENSE.TXT))
to ensure our ability to contribute this project to the LLVM project
under the same license.

Expand Down Expand Up @@ -63,32 +62,36 @@ Then you just add a line to every git commit message:

Use your real name (sorry, no pseudonyms or anonymous contributions.)

If you set your `user.name` and `user.email` git configs, you can sign your commit automatically with `git commit -s`.
If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`.

## Contribution process

### Development

- Create a personal fork of the project on GitHub.
- Use **sycl** branch as baseline for your changes.
- Prepare your patch (follow [LLVM coding standards](https://llvm.org/docs/CodingStandards.html)).
- Build the project and run all tests (see [GetStartedWithSYCLCompiler.md](https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedWithSYCLCompiler.md))
- Create a personal fork of the project on GitHub
- Use **sycl** branch as baseline for your changes
- Prepare your patch (follow
[LLVM coding standards](https://llvm.org/docs/CodingStandards.html))
- Build the project and run all tests (see
[GetStartedWithSYCLCompiler.md](sycl/doc/GetStartedWithSYCLCompiler.md))

### Review and acceptance testing

- Create a pull request for your changes following [Creating a pull request instructions](https://help.github.com/articles/creating-a-pull-request/).
- When the pull request is created signed-off check is done.
- **check_pr** - verifies that the signed-off mark is added to each commit message.
- Once the pull request is approved by an Intel representative, build and functional testing are started.
- **sycl-ubu-x64-pr** - runs all LIT tests on machine with OpenCL runtimes for CPU and GPU.
- Approval is lost once the PR branch is updated. New approval and checks rerun are required.
- Once approval is received and all checks pass, the pull request is ready to be merged.
- Create a pull request for your changes following [Creating a pull request
instructions](https://help.github.com/articles/creating-a-pull-request/)
- CI will run signed-off check as soon as PR is created, see **check_pr** CI
check for results
- CI will run build and functional testing check as soon as PR is approved by
Intel representative
- New approval is needed if PR was updated (e.g. during code review)
- Once PR is approved and all checks pass, the pull request is ready for merge

### Merge

Merge of pull request is done only by project maintainers. There are three options:
- [Rebase and merge] The preferable choice for PRs containing a single commit.
- [Squash and merge] Used when there are multiple commits in the PR.
Squashing is done to shorten history and make sure that the project is buildable on any commit.
- [Create a merge commit] Used for pull down PRs to avoid duplication of
LLVM commits.
Project maintainers merge pull requests using one of the following options:
- [Rebase and merge] The preferable choice for PRs containing a single commit
- [Squash and merge] Used when there are multiple commits in the PR
- Squashing is done to make sure that the project is buildable on any commit
- [Create a merge commit] Used for LLVM pull-down PRs to preserve hashes of the
commits pulled from the LLVM community repository