@@ -3,8 +3,6 @@ SlicerExecutionModel
33
44[ ![ Circle CI] ( https://circleci.com/gh/Slicer/SlicerExecutionModel.svg?style=svg )] ( https://circleci.com/gh/Slicer/SlicerExecutionModel )
55
6- [ ![ ] ( https://images.microbadger.com/badges/image/slicer/slicerexecutionmodel.svg )] ( https://microbadger.com/images/slicer/slicerexecutionmodel )
7-
86Overview
97--------
108
@@ -16,20 +14,88 @@ SlicerExecutionModel is documented here: https://www.slicer.org/wiki/Documentati
1614Contributing
1715------------
1816
19- Once you've made your great commits:
17+ There are many ways to contribute to SlicerExecutionModel, with varying levels of effort. Do try to
18+ look through the documentation first if something is unclear, and let us know how we can
19+ do better.
20+
21+ - Ask a question on the [ Slicer forum] [ forum ]
22+ - Submit a feature request or bug, or add to the discussion on the [ issue tracker] [ is ]
23+ - Submit a [ Pull Request] [ pr ] to improve the SlicerExecutionModel or its documentation
24+
25+ We encourage a range of contributions, from patches that include passing tests and
26+ documentation, all the way down to half-baked ideas that launch discussions.
27+
28+
29+ ### How to submit a PR
30+
31+ If you are new to SlicerExecutionModel development and you don't have push access to the
32+ SlicerExecutionModel repository, here are the steps:
33+
34+ 1 . [ Fork and clone] ( https://help.github.com/articles/fork-a-repo/ ) the repository.
35+ 2 . Create a branch.
36+ 3 . [ Push] ( https://help.github.com/articles/pushing-to-a-remote/ ) the branch to your GitHub fork.
37+ 4 . Create a [ Pull Request] [ pr ] .
38+
39+ This corresponds to the `` Fork & Pull Model `` mentioned in the
40+ [ GitHub flow] ( https://guides.github.com/introduction/flow/index.html ) guides.
41+
42+ If you have push access to SlicerExecutionModel repository, you could simply push your branch
43+ into the main repository and create a [ Pull Request] [ pr ] . This
44+ corresponds to the `` Shared Repository Model `` and will facilitate other developers to checkout your
45+ topic without having to [ configure a remote] ( https://help.github.com/articles/configuring-a-remote-for-a-fork/ ) .
46+ It will also simplify the workflow when you are * co-developing* a branch.
47+
48+ When submitting a PR, make sure to add a `` Cc: @slicer/slicerexecutionmodel `` comment to notify SlicerExecutionModel
49+ developers of your awesome contributions. Based on the
50+ comments posted by the reviewers, you may have to revisit your patches.
51+
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+
68+ ### Testing environments
69+
70+ With each PR, SlicerExecutionModel is built and tested against multiple version of ITK. Each
71+ environment is made available in docker images:
72+
73+ * Each environment is described in a `` Dockerfile `` found in a `` Docker-ITK-vX.Y.Z `` subdirectory of [ test] ( ./test ) .
74+ * Testing using a given environment is enabled updating the [ circle.yml] ( circle.yml ) file.
75+ * Before enabling an environment, associated docker image has to be (1) built locally running the ` build.sh ` script
76+ and (2) manually pushed to [ dockerhub] ( https://hub.docker.com/r/slicer/slicerexecutionmodel/tags/ ) .
77+
78+ Available environments are:
79+
80+ * [ ![ ] ( https://images.microbadger.com/badges/version/slicer/slicerexecutionmodel:itk-v4.8.0_use_system_libraries-off.svg )] ( https://microbadger.com/images/slicer/slicerexecutionmodel:itk-v4.8.0_use_system_libraries-off )
81+ * [ ![ ] ( https://images.microbadger.com/badges/version/slicer/slicerexecutionmodel:itk-v4.10.1_use_system_libraries-off.svg )] ( https://microbadger.com/images/slicer/slicerexecutionmodel:itk-v4.10.1_use_system_libraries-off " Get your own version badge on microbadger.com ")
82+
83+
84+ ### How to integrate a PR
85+
86+ Getting your contributions integrated is relatively straightforward, here is the checklist:
87+
88+ - All tests pass
2089
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!
90+ - Consensus is reached. This requires that a reviewer adds an "approved" review via GitHub with no
91+ changes requested, and a reasonable amount of time passed without anyone objecting.
2692
93+ Next, there are two scenarios:
2794
28- Meta
29- ----
95+ - You do NOT have push access: A SlicerExecutionModel core developer will integrate your PR.
96+ - You have push access: Simply click on the "Merge pull request" button.
3097
31- * Code: ` git clone git://github.com/Slicer/SlicerExecutionModel `
32- * Bugs: < http://github.com/Slicer/SlicerExecutionModel/issues >
98+ Then, click on the "Delete branch" button that appears afterward.
3399
34100License
35101-------
@@ -45,4 +111,6 @@ limitations under the License.
45111
46112[ fk ] : http://help.github.com/forking/
47113[ is ] : http://github.com/Slicer/SlicerExecutionModel/issues
114+ [ pr ] : http://github.com/Slicer/SlicerExecutionModel/pulls
115+ [ forum ] : https://discourse.slicer.org/
48116
0 commit comments