Code Review Process Implementation

This is a main page to fulfill and capture the Code Review documentation on all answer changing code features that you want to include in E3SM model code base. Before such a feature can be integrated into the code, it needs to go through the Code Review process that is defined in /wiki/spaces/CNCL/pages/25231511 page and implemented here. 

 Follow this steps to complete the Code Review Process for your answer changing code before introducing it into E3SM code base:

 Click here to expand...
  1. Give your feature a name that includes the component and short description:
    1. Use a format [ W, B, C, P, I ]number_Feature-xyz   that starts with a capital letter of your Group followed by a number (unique consecutive number for your group), followed by underscore then any short feature description, for example: C1_MPAS-Ocean-new-feature,  W1_UA_Surface_Flux
  2. (star) Create a main Confluence Page to contain all the documentation on your the new feature to be integrated into E3SM code. Use template 'E3SM Code Review' or click on → 
  3.  Title it with the name of your feature. This page contains two tables, fill them in as described in the template
    1. A feature dependency table – info from this table will feed the New Features Dependencies Overview page, that will help display the dependencies between feature pull requests
    2. A table with the checklist of all stages of the review and to obtain approvals for each of the stage of the Code Review
      As you work on integrating your feature into E3SM code, step along the Checklist table on your main page, obtain the approvals before going to the next step
  4. (star) Click on your new feature Code Review main page (created in #2), and as you go through the checklist of the code review process (second table #2.b) create and fill the appropriate pages under the main page: 
    1. Design Document Confluence page - use template 'E3SM Design Document'  or click on → 
    2. Verification , Validation and Performance Phase 1 pages with appropriate templates: 'E3SM Code Verification Phase 1' , etc : →    
    3. Phase 2 Plan - use 'E3SM Code Review Phase 2 Plan' (TBD)
    4. Coupled Performance and Coupled Validation pages use 'E3SM Feature Coupled Performance ' or 'E3SM Feature Coupled Validation' templates (TBD)
  5. When the Phase 1 documentation checklist (table #2.b) is satisfied and you have the approval from a Group Lead (the blue section of the table), you are ready to issue a PR and assign it to an integrator. At that point fill in the blue section in the dependencies table (table #2.a) with the name of the PR integrator's name, and after he integrates the code, provide the integration date.
  6. Phase 2 starts with the Plan document (#3.c). The coupled system integration and testing can and should be done with the aggregate of features, and the planned coupled simulations may validate a combination of feature aggregates if feasible.

(star) Instead of creating your own page as in description, you can use template pages already created for you. Use any pages with name template in them in the Proposed New Features - simply change the template pages name to your feature name and fill in the pages.

(thumbs up)  For a good examaple, check this competed documentation:  A1 Ozone Hole (Linoz-v2)

New Feature Dependencies, PR Dates, Git Branch Overview 

To check dependencies between new features, what blocks them and what do they affect, the dates they are ready for Pull Request (PR), their git branch, date PR was issued, who it was assigned to, when it was integrated into E3SM and the associated E3SM git hash/tag (remember the table is sortable):

Design Document Overview

For the quick overview of all design documents, which part is already done, if it is ready for GLs approval, please see:

V2 Code Features Main Pages

V2 Features Design Documents

V1 Declined Code Features Main Pages

V1 Code Features Main Pages

Children Pages Listing