Skip to content

Commit f143725

Browse files
committed
README: Add contributing section
1 parent 795e671 commit f143725

File tree

1 file changed

+61
-10
lines changed

1 file changed

+61
-10
lines changed

README.md

Lines changed: 61 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,69 @@ SlicerExecutionModel is documented here: https://www.slicer.org/wiki/Documentati
1616
Contributing
1717
------------
1818

19-
Once you've made your great commits:
19+
There are many ways to contribute to SlicerExecutionModel, with varying levels of effort. Do try to
20+
look through the documentation first if something is unclear, and let us know how we can
21+
do better.
2022

21-
1. [Fork][fk] SlicerExecutionModel
22-
2. Create a topic branch - `git checkout -b my_branch`
23-
3. Push to your branch - `git push origin my_branch`
24-
4. Create an [Issue][is] with a link to your branch
25-
5. That's it!
23+
- Ask a question on the [Slicer forum][forum]
24+
- Submit a feature request or bug, or add to the discussion on the [issue tracker][is]
25+
- Submit a [Pull Request][pr] to improve the SlicerExecutionModel or its documentation
2626

27+
We encourage a range of contributions, from patches that include passing tests and
28+
documentation, all the way down to half-baked ideas that launch discussions.
2729

28-
Meta
29-
----
30+
### How to submit a PR
3031

31-
* Code: `git clone git://github.com/Slicer/SlicerExecutionModel`
32-
* Bugs: <http://github.com/Slicer/SlicerExecutionModel/issues>
32+
If you are new to SlicerExecutionModel development and you don't have push access to the
33+
SlicerExecutionModel repository, here are the steps:
34+
35+
1. [Fork and clone](https://help.github.com/articles/fork-a-repo/) the repository.
36+
2. Create a branch.
37+
3. [Push](https://help.github.com/articles/pushing-to-a-remote/) the branch to your GitHub fork.
38+
4. Create a [Pull Request][pr].
39+
40+
This corresponds to the ``Fork & Pull Model`` mentioned in the
41+
[GitHub flow](https://guides.github.com/introduction/flow/index.html) guides.
42+
43+
If you have push access to SlicerExecutionModel repository, you could simply push your branch
44+
into the main repository and create a [Pull Request][pr]. This
45+
corresponds to the ``Shared Repository Model`` and will facilitate other developers to checkout your
46+
topic without having to [configure a remote](https://help.github.com/articles/configuring-a-remote-for-a-fork/).
47+
It will also simplify the workflow when you are *co-developing* a branch.
48+
49+
When submitting a PR, make sure to add a ``Cc: @slicer/slicerexecutionmodel`` comment to notify SlicerExecutionModel
50+
developers of your awesome contributions. Based on the
51+
comments posted by the reviewers, you may have to revisit your patches.
52+
53+
### Automatic testing of pull requests
54+
55+
When you submit a PR to the SlicerExecutionModel repo, CircleCI will run the build and test suite on the
56+
head of the branch. If you add new commits onto the branch, those will also automatically
57+
be run through the CI process. The status of the CI process (passing, failing, or in progress) will
58+
be displayed directly in the PR page in GitHub.
59+
60+
The CircleCI build will run according to the [circle.yml file](circle.yml),
61+
which is useful as an example for how to set up your own environment for testing.
62+
63+
Your test results will be posted on [SlicerExecutionModel's dashboard](http://slicer.cdash.org/index.php?project=SlicerExecutionModel).
64+
These results will list any failed tests. You can reach your
65+
build by clicking the build status link on your GitHub PR.
66+
67+
### How to integrate a PR
68+
69+
Getting your contributions integrated is relatively straightforward, here is the checklist:
70+
71+
- All tests pass
72+
73+
- Consensus is reached. This requires that a reviewer adds an "approved" review via GitHub with no
74+
changes requested, and a reasonable amount of time passed without anyone objecting.
75+
76+
Next, there are two scenarios:
77+
78+
- You do NOT have push access: A SlicerExecutionModel core developer will integrate your PR.
79+
- You have push access: Simply click on the "Merge pull request" button.
80+
81+
Then, click on the "Delete branch" button that appears afterward.
3382

3483
License
3584
-------
@@ -45,4 +94,6 @@ limitations under the License.
4594

4695
[fk]: http://help.github.com/forking/
4796
[is]: http://github.com/Slicer/SlicerExecutionModel/issues
97+
[pr]: http://github.com/Slicer/SlicerExecutionModel/pulls
98+
[forum]: https://discourse.slicer.org/
4899

0 commit comments

Comments
 (0)