-
Notifications
You must be signed in to change notification settings - Fork 432
Guidance for contributors
UCX uses Git for source code management, Jenkins for continuous integration, and Google’s C++ test framework for unit testing.
-
Follow the code style and logging style
-
Format the commit message as follows:
MODULE/UNIT1/UNIT2/..: Summary
for example:
UCT/SHM: Fix shared memory deadlock.
-
Everything should be submitted as a pull request ("PR") from a branch.
NO DIRECT PUSH TO MASTER! -
No PRs over 500 lines of added code.
3rd party code can be larger, but has to be in a separate PR -
API changes have to be in a separate PR, which includes only the minimal set of changes required for making the code compile and tests pass. The implementation of new functionality should be a stub.
API changes have to be approved bybbenton
. -
When both renaming and changing a file, separate the two to different commits.
-
If you need to fix your PR, there are 2 options: amend (replace) your commit, or add new commit with fixes.
- Before anyone has posted comments on the PR, it's allowed to amend.
Example: Fixing bugs found in automatic tests. - If some comments have been posted, the fixes should be in a new commit.
Reason: Tracking fixes of code review.
-
Fork the project from openucx/ucx to create your copy gituser/ucx
-
Clone the code from gituser/ucx:
git clone <XXXX>
-
Create a new branch for your bugfix, feature, or enhancement:
git branch topic/bugfix_123
-
Switch your workspace to a newly created branch:
git checkout topic/bugfix_123
-
Commit your changes:
git commit .
-
Push the changes in your branch (topic/bugfix_123) to your copy gituser/ucx :
git push origin topic/bugfix_123
. If the default upstream for the branch is not defined, add-u
flag to the push command. The flag sets default upstream for the branch. -
Submit your change to the openucx/ucx by opening a pull request. After submitting the PR, the code is reviewed by the reviewers/maintainers. Once the reviewers and authors reach an agreement, the author requests the maintainer to merge the changes.
-
Delete the branch:
git push origin :topic/bugfix_123
More details here:
- http://scottchacon.com/2011/08/31/github-flow.html
- https://github.com/blog/1124-how-we-use-pull-requests-to-build-github
-
One or more of UCX maintainers has to approve (:+1:) the PR in order to merge it.
-
Before requesting a review, please make sure the automatic tests pass.
See the UCX Testing Procedure -
PRs which are waiting for review should be marked with the label "Ready for review". It's also advisable to tag the relevant reviewer.
-
PRs which were reviewed and currently waiting for a fix and/or response, are marked with "Waiting for Author Response".
Everybody are welcome to post comments on every PR. However a final approval should be given by the maintainers. Also, changes which affect API (especially UCP API) should be coordinated with UCX users.
List of maintainers:
-
shamisp
- Pavel Shamis, ARM -
yosefe
- Yossi Itigin, Mellanox -
bbenton
- Brad Benton, AMD (API gatekeeper) -
alex-mikheev
- Alex Mikheev, Mellanox -
alinask
- Alina Sklarevich, Mellanox -
manjugv
- Manjunath Gorentla Venkata, ORNL -
MattBBaker
- Mathew Baker, ORNL -
hppritcha
- Howard Pritchard, LANL
Primary maintainers per component:
- UCP:
yosefe
,shamisp
.
Note changes in UCP require an approval from both maintainers.
Note API changes require an approval frombbenton
- UCS, UCT:
yosefe
,shamisp
- UCT/ib:
yosefe
,alex-mikheev
- UCT/shm:
alinask
,shamisp
,manjugv
- UCT/uGNI:
hppritcha
,manjugv
,MattBBaker