Skip to content
Snippets Groups Projects
contrib.rst 4.26 KiB
Newer Older
************
Contributing
************

.. todo::



.. contents::
   :local:

Sending feedbacks
=================

|  Sending feedbacks is a useful way to contribute to NEMO efficency and reliability. Before doing so,please check
on NEMO develoment platform in wiki, tickets, forum and online documentation so as 
on :NEMO Discourse group:`https://nemo-ocean.discourse.group` if the subject has already been discussed. 
You can either contribute to an existing discussion, or
|  Create an entry for the discussion online in Discourse, according to your needs
Please follow the guidelines and try to be as specific as possible in the description.

New development
===============

You intend to build or have already build  a development relevant for NEMO shared reference: an improveent of or
addition to the source code, a full fork of the reference, ...
The proposals for developments to be included in the shared NEMO reference are first examined 
by the group NEMO Officers (officers@nemo-ocean.eu)  representing the group of developers, 
and/or by the chair of NEMO Developers Committee(email). For them to examine if the development is relevant 
for NEMO reference, you should send them an email including description of the development, its implementation, 
and the existing validations, so as the time you envisage to dedicate to the work preparing the development
and making it ready to include in the NEMO shared reference (see below the description of work to be done).
Indeed the implementation of a new development in NEMO Shared reference usually requires some additionnal work from the intial developer.
In return, the NEMO Committee  will determine if your development and proposed actions can be added 
in the common yearly NEMO development work plan. 
If the Developers Team gives a positive answer, you must follow the NEMO development workflow
described below in the Proposal/Task section.
These tasks will need to be scheduled with NEMO System Team: one of the NEMO officers will sponsor your work and help you in this process


Proposal / Task
---------------

| Your development seems relevant for addition into the future release of NEMO shared reference.
  Implementing it into NEMO shared reference following the usual quality control will require some additionnal work
  from you and also from the NEMO System Team in charge of NEMO development. In order to evaluate the work,

  Once approved by the  Developers Committee, the needed development tasks must be done: scheduled in NEMO
   development work plan, and  assigned between you as initial developer and PI of this development , and
  the NEMO System Team. These tasks are prerequisites for the inclusion of development into NEMO shared reference.

- : Coding rules: the readability of NEMO strongly relies on some shared coding rules on the variables names and routine organisation
    - : For variables names, development must follow the NEMO coding rules described in :chapter G. Coding Rules of NEMO reference manual:<search "zenodo NEMO ocean engine" to get the latest NEMO reference manual>
    - : For routines/modules organisation, a template code is available in the NEMO reference: in the NEMO source
     code: src/OCE/module_example.F90 to help you bulid your development in a NEMO-compatible way

- : Documentation (in the code, on-line and reference manual): your development should be documented in the code, on line in the rst files building the on-line documentation (links to add) and in the tex files building the reference manuals

- : The development should be in a branch startting from the actual shared reference, e.g. the latest NEMO release (link to add)

- : Validations: the validation of the development must demonstrate that the expected results are actually obtained on a given configuration. The so called SETTE tests (link to add) run NEMO for a set of reference configurations. The SETTE tests results must be available and deonstrate: that when the new development is activated, results are actuelly produced, that when the development is not activated, results remain unchanged, and that the performances of NEMO are not degradated (CPU, memory, IOs).

  Once sucessful (meeting the usual quality control steps) this action will allow the merge of these developments 
  with other developments of the year, building the future NEMO version.