A couple quick thoughts - I went down the thought process of reviewers should be active and familiar with the area, but found it difficult to put names to a given submodel. Maybe leave it as a general 'rule' without putting names to it?
- The editor commits some update
- A reasonable message is included in the commit, explaining what was updated.
- Given there is only a few characters allowed in the first line of commit, the second line of text should probably be used.
- Generally, a separate commit should be performed for each submodel. An exception to this would be if the multiple models relate as part of some effort (some cross-model contribution).
- IISOMI modeling guidelines must be followed, and reviews must assure that the guidelines are being adhered to before discussion occurs in some working team.
- Appropriate packages should be used for various entities (associations in the associations package, diagrams in the diagram package, classes in the ObjectClasses package, etc.)
- Descriptions and stereotypes should be appropriately applied.
- The committer should assign reviewers
- at least one reviewer should be assigned (two or more is fine)
- The reviewer performing the +1 must be familiar with the area.
- If a second reviewer is not assigned by the committer, the reviewer will add a second reviewer.
- Per the process below, one reviewer will presumably perform a +1, the other a +2 and merge.
- The committer can also supply a gendoc output of the submodel (or the relevant portion of the submodel), supplying it to the committers to facilitate easier approval.
- A reasonable message is included in the commit, explaining what was updated.
- Reviewers
- The committer cannot review, approve, or merge their own contribution.
- Reviewers should not work for the same company as the committer (at least not the reviewer performing the +1)
- Reviewers should be familiar with the subject area of the contribution if possible. This suggests they participate on the weekly calls related to the contribution. It is noted that there may be exceptions to this (work on party, business interaction, etc. may be "new" to all.
- Approvals
- Generally, commits to gerrit are a "work in progress" given commits are encouraged on a weekly basis. We want to turn these around quickly to facilitate further development (commit on Friday, approved and merged for recloning and further work the following Monday).
- The first reviewer should only do a +1 (or -1).
- In order to perform the review, the reviewer has either downloaded the Papyrus model files, loaded them into Papyrus and reviewed, or reviewed the output of the model (WIKI, gendoc, etc), or in some other way is familiar with the commit.
- The second reviewer will then
- perform the +2 and merge. This reviewer will either 'trust' the review of the first reviewer and/or perform a review themselves.
- reject the contribution (-1)
- Provide a +1 and assign a third reviewer if one is not already assigned. This is presumably for situations where the committer is not comfortable providing the +2 and merge.
- If multiple reviewers are assigned, all are not required to review to do the merge, just the first two.
- If an additional reviewer examines the commit at a later time and a major concern is raised, the commit can be abandoned.
- For contributions of new material not yet socialized and/or not fully developed, a fairly 'relaxed' review with perhaps some suggestions is very reasonable.
Note: In the past, Deng Hui has carried the burden of merging all commits. This proposal will relieve him of that burden - any committer can merge given the guidelines above.