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 38 and Version 39 of Developers/DevelopingCodeChanges


Ignore:
Timestamp:
2017-09-20T20:36:33+02:00 (6 years ago)
Author:
nicolasmartin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Developers/DevelopingCodeChanges

    v38 v39  
    1 = '''Developing code change''' 
     1= Developing code change 
     2 
     3[[PageOutline(2-3)]] 
    24 
    35Last edition: '''[[Wikinfo(changed_ts)]]''' by '''[[Wikinfo(changed_by)]]''' 
    46 
    5 [[PageOutline]] 
     7== History 
    68 
    7 ---- 
    8 == '''History''' == 
    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. [[BR]]Since Merge Party meeting end of 2015, the process has been changed to a more efficent 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. 
     9Until 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. [[BR]]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. 
    1010 
    1111A brief overview of the process is given below: 
    1212 
    13 '''Phase 1: Description in the yearly workplan:''' 
     13{{{#!graphviz 
     14digraph { 
     15   subgraph { 
     16      rankdir = "LR" 
     17      node [ scale = 1 ] 
     18      role1[ shape = plaintext, label = "Principal Investigator", fontsize = 8] 
     19      role2[ shape = plaintext, label = "Previewer"             , fontsize = 8] 
     20      role3[ shape = plaintext, label = "Reviewer"              , fontsize = 8] 
     21      ellipse1[ label = "", color = grey  ] 
     22      ellipse2[ label = "", color = blue  ] 
     23      ellipse3[ label = "", color = green ] 
     24      ellipse1->role1->ellipse2->role2->ellipse3->role3 [ color = white ] 
     25   } 
     26   rankdir = "LR" 
     27   "Development\nPlan"      [ color = grey  ] 
     28   Preview                  [ color = blue  ] 
     29   "Coding &\nValidation"   [ color = grey  ] 
     30   Review                   [ color = green ] 
     31   "Workplan\nannouncement"->"Development\nPlan"->Preview->"Coding &\nValidation"->Review->Merge 
     32} 
     33}}} 
    1434 
    15 Each development action is expected to be described in the yearly workplan including name of PI, and name(s) of pre- andre-viewer(s) 
    16  
    17 '''Phase 2: Implementation plan and preview''' 
    18  
    19 '''Phase 3: Coding and validation''' 
    20  
    21 '''Phase 4: review''' 
    22  
    23 '''Phase 5: Merge into NEMO reference''' 
     35Each development action is expected to be described in the yearly workplan including name of PI, and name(s) of {pre,re}viewer(s) 
    2436 
    2537Merging back with the trunk is not described here. 
    2638 
    27 == Workplan content == 
     39== Workplan content 
     40 
    2841The 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.[[BR]] 
    2942 
     
    3548  * '''Create review page from the root page of the yearly workplan `wiki/${YEAR}WP`''' 
    3649  * 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 
    37   * Editing the page is only needed if your want to add some fields in the page. Activate the "side to side" button on top right of the page to facilitate this first edit and '''do not switch to 'wyziwig' view mode''' (it blows up the format and automatic completion in the page). You can customize the page while editing outside the !TracForm container 
    38     {{{ 
    39        Yes 
    40        {{{#!TracForm 
    41           No 
    42        }}} 
    43        Yes 
    44     }}} 
     50  * Editing the page is only needed if your want to add some fields in the page. Activate the "side to side" button on top right of the page to facilitate this first edit and '''do not switch to 'wyziwig' view mode''' 
    4551  * The wiki page will describe: 
    4652    * Purpose, motivation and main tasks of the action 
     
    6571Once 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. 
    6672 
    67 Each year, development branches will be created in the directory svn/nemo/branches/YEAR/"standard name of dev branch".  [[BR]]"standard name of dev branch" should be: dev_"starting revision number"_"workplan item_purpose" (ex dev_r1302_LOCEAN1_mpp) 
     73Each year, development branches will be created in the directory `svn/nemo/branches/YEAR/"standard name of dev branch"`.\\ 
     74`"standard name of dev branch"` should be: `dev_"starting revision number"_"workplan item_purpose"` (ex 'dev_r1302_LOCEAN1_mpp') 
    6875 
    69 === Develop your Change === 
     76=== Develop your Change 
     77 
    7078A few things to bear in mind when developing your changes, 
    7179 
     
    7482 * You don't have to commit to your branch to test a change. You can compile from a working copy. 
    7583 
    76 === Test your Change === 
     84=== Test your Change 
     85 
    7786Test your change appropriately and record the results. The testing required will depend on the change and the potential impact on other configurations. When testing, things to consider include 
    7887 
     
    8291''In particular the Trusting tool has been developed in order to ease the validation all along the working on the code, not all in one with SETTE. The developer can regularly evaluate the changes for a any given configuration compared with benchmark results he has defined.'' 
    8392 
    84 === Document your Change === 
     93=== Document your Change 
     94 
    8595 * Progress in the development should be documented as the work goes on in the !ticket created at the beginning/ 
    8696 * Code should be documented on line as defined in the coding rules 
    8797 * Changes in the reference manual should be also written as soon as possible, and before review process 
    8898 
    89 == Review == 
     99== Review 
     100 
    90101Once your development is completed, PI requests work of Reviewer(s) for scientific or technical correctness. 
    91102 
     
    96107 
    97108The 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. 
    98  
    99 == Video tutorial == 
    100 see the Working Practices, [https://www.locean-ipsl.upmc.fr/~rblod/NW2N.divx the movie]