Changes between Version 21 and Version 22 of Documentation/UserGuide/CommitOnTrunk


Ignore:
Timestamp:
2024-05-18T17:48:04+02:00 (6 weeks ago)
Author:
luyssaert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/UserGuide/CommitOnTrunk

    v21 v22  
    22= Guidelines and help to commit on the trunk (or a branch) = 
    33Author: J. Ghattas[[BR]] 
    4 Last revision: 2023/07/04, J. Ghattas 
     4Last revision: 2024/05/18, S. Luyssaert 
    55 
    66Here are some general guidelines for committing into the trunk ORCHIDEE. These recommendations can also be applied to branches and other versions under SVN control.  
    77 
    88Before commit: 
    9  * Run the "open trusting" to test your modifications, see here [wiki:Documentation/UserGuide/Internal/OpenTrusting] 
    10  * the code must be conform to the ORCHIDEE coding guidelines (Documentation/UserGuide/CodingGuidelines) 
    11  * update to latest version: the modifications must be integrated in the latest version of the trunk (use "svn update", or extract a new ORCHIDEE). Be sure that your original code is backup somewhere locally to avoid deleting developments during the update.  
    12  * if svn update induce some conflicts between your local version and the trunk version carefully check them and solve them manually if necessary. Don't forget then, once the conflicts are resolved, to do "svn resolved myfile.f90" 
    13  * the modifications must be tested on at least one platform using MPI parallelism (except if only comments are changed). This means that you should launch a test simulation on more than one processor. 
    14  * check difference in results from your history files. The reason for a change in result must be known before the commit. If possible, avoid change in results except if it was on purpose.  
    15  * communicate and/or be aware of the latest news in the ORCHIDEE core team. For example a colleague announced that she/he will make a commit, better wait or ask if you could commit before. 
     9 * Carefully document your code and parameters. Explain the principles used, cite the papers that were used as a source of inspiration. 
     10 * The code must be conform to the ORCHIDEE coding guidelines (Documentation/UserGuide/CodingGuidelines) 
     11 * Update to latest version: the modifications must be integrated in the latest version of the trunk (use "svn update", or extract a new ORCHIDEE). Be sure that your original code is backup somewhere locally to avoid deleting developments during the update. 
     12 * if svn update results in conflicts between your local version and the trunk version answer "postpone". Revisit all modules for which conflicts occurred. Carefully check the modules and solve the conflicts manually if necessary. Don't forget then, once the conflicts are resolved, to do "svn resolved myfile.f90" 
     13 * Compile your code  
     14 * Run the "open trusting" to test your modifications, see here [wiki:Documentation/UserGuide/Internal/OpenTrusting]. The open trusting will run a battery of tests including: 
     15  * tests on at least one platform using MPI parallelism (except if only comments are changed). This means that the test include simulations with more than one processor. 
     16  * tests for differences in results of the history files. The reason for a change in result must be known before the commit. If possible, avoid change in results except if it was the purpose.  
     17  * Communicate and/or be aware of the latest news in the ORCHIDEE core team. For example a colleague announced that she/he will make a commit, better wait or ask if you could commit before. 
     18 * Run a trusting where you switch off your changes (by using the flags you introduced). In this case the trusting should pass all the test as the model results should be identical to the current head of the trunk. If that is not the case, the remaining problems will need to be solved before proceeding. 
     19 * If you pass the previous test, run the trusting but with your changes switched on. The trusting should still pass several best but because the may have results have changed it won’t be possible to pass all tests. Discuss the results with your supervisor to ensure all test that should be passed are indeed passed. 
     20 * Prepare a text that describes the parameter settings and things which are good to know about this functionality. This text will be added to https://forge.ipsl.fr/orchidee/wiki/Documentation/TrunkFunctionality4 
     21  
    1622 
    1723Some cases must be discussed in advance: 
    18  * if the behaviour of the model change. For example: change in parameter name in getin function, change in default value for some parameters, etc.. 
     24 * if the behavior of the model change. For example: change in parameter name in getin function, change in default value for some parameters, etc.. 
    1925 * if the interface towards the atmosphere is changed 
    2026 * structural modifications 
     
    2632 
    2733After commit: 
    28  * tell the project group if the results changed even for tiny changes. A new reference must then be done in the [http://webservices.ipsl.fr/trusting/ trusting]. 
     34 * tell the project group if the results changed even for tiny changes. A new reference simulation must then be run in the [http://webservices.ipsl.fr/trusting/ trusting]. 
    2935 * if related to a ticket, add a link to the commit in the ticket using '''[Y]''', where Y is the revision number on the commit. Close the ticket if all questions are treated.  
    3036 * if the trusting fails after commit, the commit should be reverted if a correction could not be done directly.