Changes between Version 44 and Version 45 of Developers/DevelopingCodeChanges
- Timestamp:
- 2017-09-22T23:04:31+02:00 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Developers/DevelopingCodeChanges
v44 v45 9 9 Until end of 2015, the PI if a given development action was expected to develop the code and its documentation in a development branch, to go through the different validation steps, and to submit it at the end to a reviewer, the positive answer of the review being a prerequisite for a merge into the NEMO reference. \\ 10 10 Since Merge Party meeting end of 2015, the process has been changed to a more efficient and reliable process, in order to avoid disagreement and a lock at the review step. The sequence described below is presently to be followed for each development of the NEMO System Team's workplan. 11 12 == Development Procedure 13 14 === Description 11 15 12 16 A brief overview of the process is given below. … … 23 27 subgraph clusterWorkflow { 24 28 label = "Worflow per action"; peripheries = 0; labeljust = centered;/* labelloc = b */ 25 Actions [ shape = record, label = "<aA> Action A | <aB> Action B\n( postponed) | <aC>Action C | <aD>Action D | <aE>Action E" ]29 Actions [ shape = record, label = "<aA> Action A | <aB> Action B\n(cancelled) | <aC>Action C | <aD>Action D | <aE>Action E" ] 26 30 Workflow [ shape = Mrecord, label = "{ Development Plan | Preview | Coding\n&\nValidation | Review }" ] 27 Branches [ shape = record, label = "<bA>Branch A\n(validated) | <bC>Branch C\n(d issallowed) | <bD>Branch D\n(validated) | <bE>Branch E\n(not ready)" ]31 Branches [ shape = record, label = "<bA>Branch A\n(validated) | <bC>Branch C\n(declined) | <bD>Branch D\n(validated) | <bE>Branch E\n(incomplete)" ] 28 32 29 33 } … … 49 53 }}} 50 54 51 Each development action is expected to be described in the yearly workplan including name of PI, and name(s) of {pre,re}viewer(s) 55 === Workplan content 52 56 53 Merging back with the trunk is not described here. 57 The yearly workplan is discussed within System Team, submitted to Developer's Committee, and approved by Steering Committee. It must include, for each development action, its motivation, status, main tasks so as a PI, and a previewer (which will also be the reviewer). \\ 58 If needed, previewer can be divided into a "Science Previewer" and a "System Previewer". The name of Previewer should be added only once he did accept the task, and before submission of workplan to Developer's Committee. 54 59 55 == Workplan content60 == Action Workflow 56 61 57 The yearly workplan is discussed within System Team, submitted to Developer's Committee, and approved by Steering Committee. It must include, for each development action, its motivation, status, main tasks so as a PI name, and a previewer (which will also be the reviewer) name. If needed, previewer can be divided into a "Science Previewer" and a "System Previewer". The name of Previewer should be added only once he did accept the task, and before submission of workplan to Developer's Committee. 62 === Follow-up #follow 58 63 59 == Detailed description of implementation plan and Preview step 64 {{{#!th 60 65 61 Once the workplan has been approved, the code development is planned. The PI should create: 66 '''Wiki''' 62 67 63 * '''Associated wiki page''' for explanation. Please follow carefully the following indications: 68 }}} 69 {{{#!th 70 71 '''Ticket''' 72 73 }}} 74 |- 75 {{{#!td style="vertical-align: top" 76 77 [[NewPage(id=WPAction, parent=wiki/2017WP, template=WorkPlanAction, placeholder=Wikipage name, button=Create action's wikipage)]] 78 '' '''Reminder for wiki page name''': '{WG or INSTITUTE}-{NUM}_{PIS}-{KEYWORDS}' '' 79 80 This page will permit to follow the ongoing work through different steps for explanation 81 Please follow carefully the following indications: 64 82 * '''Create review page from the root page of the yearly workplan `wiki/${YEAR}WP`''' 65 83 * Once this last page is created, you do not need to edit it like a typical wiki page to complete the requested fields: just complete the fields in the writeable areas and click on "Submit" button at the end of the section to save your additions … … 72 90 * (P)Review status 73 91 74 This page will permit to follow the ongoing work through different steps and will go with: 92 }}} 93 {{{#!td style="vertical-align: top" 94 {{{#!html 95 <p></p> 96 <form action="/nemo/newticket?summary=summary&type=type&version=version" method="get"> 97 <input type="hidden" name="type" value="Development" /> 98 <input type="hidden" name="version" value="" /> 99 <input type="text" name=summary size=51 placeholder="Ticket subject"/> 100 <input type="submit" value="Open action's ticket"/> 101 </form> 102 }}} 75 103 76 * A '''linked ticket''' to gather the group discussion. The following fields have to be set in a appropriate way: 77 * ''''Cc': (P)Reviewer(s) and possible follower(s) should be added for further email notification.''' 78 * 'Component': the area the change is being targeted for. 79 * 'Type': 'development branch' 80 * 'Owner': the code developer 104 \\to gather the group discussion. 105 The form should set few fields ('Type': 'Development' and 'Milestone' to current WP) but others fields have to be set in a appropriate way: 106 * 'Cc': add email(s) of people outside NEMO ST for further notification. 107 * 'Component': the area the change is being targeted for. 81 108 82 The other fields in the !ticket (e.g. 'Priority', 'Milestone', 'Keywords') should also be set appropriately.109 The other fields in the ticket (e.g. 'Priority', 'Keywords') should also be set appropriately. 83 110 84 Once the wiki page is completed by PI (detailed implementation plan), the PI will submit it to Previewer. The Previewer will discuss with PI to reach full agreement on detailed implementation plan (in a maximum of 2 weeks starting when PI submits wiki page to Previewer).[[BR]]The PI is responsible to give all requested details.[[BR]]The Previewer is responsible to check with all experts that implementation plan is indeed correct and compatible with the other developments going on in parallel during the year. Objective is to avoid the need for a full rewriting at the end (which did happen sometimes previously) 111 }}} 85 112 86 == Start the coding == 113 Once the wiki page is completed by PI (detailed implementation plan), the PI will submit it to Previewer. The Previewer will discuss with PI to reach full agreement on detailed implementation plan (in a maximum of 2 weeks starting when PI submits wiki page to Previewer). \\ 114 The PI is responsible to give all requested details. \\ 115 The Previewer is responsible to check with all experts that implementation plan is indeed correct and compatible with the other developments going on in parallel during the year. Objective is to avoid the need for a full rewriting at the end (which did happen sometimes previously) 116 117 === Start the coding 118 87 119 Once the Previewer has sent the green light (approval of detailed implementation plan and summary of changes in reference manual), the PI can created the corresponding development branch. The branch should be created from the up to date version of NEMO as chosen for each year (usually the trunk at a give fixed revision for a give year, see minutes of NEMO System Team videoconferences. Development can progress on this new branch. 88 120 … … 113 145 * Changes in the reference manual should be also written as soon as possible, and before review process 114 146 115 == Review147 === Review 116 148 117 149 Once your development is completed, PI requests work of Reviewer(s) for scientific or technical correctness. … … 122 154 * The documentation is sufficient to understand the code change and its impacts. 123 155 124 The Reviewers completes the review part of wiki page with the PI. Once all light are green, the development is approved and can be merged for the new release of NEMO .156 The Reviewers completes the review part of wiki page with the PI. Once all light are green, the development is approved and can be merged for the new release of NEMO (merging back with the trunk is not described here).