New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Developers/DevelopingCodeChanges (diff) – NEMO

Changes between Version 44 and Version 45 of Developers/DevelopingCodeChanges


Ignore:
Timestamp:
2017-09-22T23:04:31+02:00 (6 years ago)
Author:
nicolasmartin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Developers/DevelopingCodeChanges

    v44 v45  
    99Until 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. \\ 
    1010Since 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 
    1115 
    1216A brief overview of the process is given below. 
     
    2327subgraph clusterWorkflow { 
    2428   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" ] 
    2630   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(dissallowed) | <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)"     ] 
    2832    
    2933} 
     
    4953}}} 
    5054 
    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 
    5256 
    53 Merging back with the trunk is not described here. 
     57The 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). \\ 
     58If 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. 
    5459 
    55 == Workplan content 
     60== Action Workflow 
    5661 
    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 
    5863 
    59 == Detailed description of implementation plan and Preview step 
     64{{{#!th 
    6065 
    61 Once the workplan has been approved, the code development is planned. The PI should create: 
     66'''Wiki''' 
    6267 
    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 
     80This page will permit to follow the ongoing work through different  steps for explanation 
     81Please follow carefully the following indications: 
    6482  * '''Create review page from the root page of the yearly workplan `wiki/${YEAR}WP`''' 
    6583  * 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 
     
    7290    * (P)Review status 
    7391 
    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   }}} 
    75103 
    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. 
     105The 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. 
    81108 
    82   The other fields in the !ticket (e.g. 'Priority', 'Milestone', 'Keywords') should also be set appropriately. 
     109The other fields in the ticket (e.g. 'Priority', 'Keywords') should also be set appropriately. 
    83110 
    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}}} 
    85112 
    86 == Start the coding == 
     113Once 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). \\ 
     114The PI is responsible to give all requested details. \\ 
     115The 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 
    87119Once 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. 
    88120 
     
    113145 * Changes in the reference manual should be also written as soon as possible, and before review process 
    114146 
    115 == Review 
     147=== Review 
    116148 
    117149Once your development is completed, PI requests work of Reviewer(s) for scientific or technical correctness. 
     
    122154 * The documentation is sufficient to understand the code change and its impacts. 
    123155 
    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. 
     156The 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).