= Welcome to the NEMO development area [[PageOutline(2-3)]] You should find here everything regarding the development and the support of the NEMO reference. == Prerequisites === Become a NEMO developer First and foremost, if you don't already have a user account then you have to '''[/register create it]'''. [[Include(wiki:Developers/Homepage/Table)]] === Recommended development installation After the global reorganisation of the repository, it is now advisable to entirely download the new default development organisation in your local computing architecture: * [browser:/NEMO/trunk]: ''the main development branch'' * [browser:/NEMO/branches] * NEMO/branches/`YYYY`: ''yearly development branches intended to be merged into trunk by the end of the year'' * NEMO/branches/`{NERC,UKMO}`: ''restricted to British operational activities'' * [browser:/NEMO/releases]: ''all official NEMO releases'', '''only the last one is maintained''' The first checkout will be a bit longer than usual but the SVN commands will be much simpler: the branching operations will be done locally and pushed later to the repository instead of committing directly to the repository with former complex `svn+ssh` syntax and then downloading locally. \\ Follow the steps below to download the recommended development installation {{{#!sh # Development organisation downloading ( trunk + branches + releases ) svn co --depth immediates http://forge.ipsl.jussieu.fr/nemo/svn/NEMO/ dev_orga cd dev_orga # Change from user to developer if you have the rights svn sw --relocate http://forge.ipsl.jussieu.fr \ svn+ssh://$ID@forge.ipsl.jussieu.fr/ipsl/forge/projets # Create your development branch locally svn copy trunk[@${PEGREV}] branches/$year/'dev_r'${PEGREV}_${NameOfNewBranch} cd branches/$year/'dev_r'${PEGREV}_${NameOfNewBranch} # Download sette tool to validate your changes to the NEMO reference svn co http://forge.ipsl.jussieu.fr/nemo/svn/utils/CI/sette # Doc figures for building NEMO manual (not mandatory) svn co http://forge.ipsl.jussieu.fr/nemo/svn/utils/figures ./doc/figures }}} See [wiki:/Developers/SVNHowTo#Basics SVN basics] for more. === New build of the working copy To facilitate the development work by simplifying the management and the sharing of the code in the repository, while ensuring the consistency of the working copies, we have introduced the [http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html SVN externals definitions] in the building of the working copies. \\ We have identified the core code and the complementary codes of NEMO, the latter which are developing less rapidly have been extracted from the default development organisation of the repository (`branches` / `releases` / `trunk`) to different locations of the repository. From now on, a working copy of the NEMO reference (WC) is the summation of few checkouts from different sources defined by the `svn:externals` properties of the working copy. '''To be conservative, all externals definitions are fixed by default ([[Color('@REV', #BB4444)]])'''. \\ Here is an example which is not supposed to be up to date with the current external codes. {{{#!sh # Relative URL Path in WC Content ^/utils/build/arch[@$REV] arch # FCM settings files for computing architectures ^/utils/build/makenemo[@$REV] makenemo # Main script for building a NEMO configuration ^/utils/build/mk[@$REV] mk # Sub-scripts and FCM inputs for compiling ^/utils/tools[@$REV] tools # User tools ^/vendors/AGRIF/dev[@$REV] ext/AGRIF # Dependency for nesting ^/vendors/FCM[@$REV] ext/FCM # "" for source code compilation ^/vendors/IOIPSL[@$REV] ext/IOIPSL # "" for IO management # '^' for repository root }}} ''If you have to modify these properties to get external modifications, you can learn how to update your working copy in [wiki:Developers/SVNHowTo]''. == === Development activities * [wiki:2018WP Yearly Workplan] * WorkingGroups * [attachment:wiki:Users:NEMO_Development_Strategy_Version2_2018-2022.pdf NEMO Development Strategy document Version2 - 2018-2022] * [attachment:wiki:Users/private:NEMO_Development_Strategy_Version2_2018-2022.pdf Development Strategy Version 1] (accessible after authentication) Document your developments before coding by following the procedure described at [wiki:Developers/DevelopingCodeChanges] === Support [wiki:Developers/WorkingOnTickets] === Forums Discussion * If you want to follow a particular resource, set your email in [/prefs your preferences] and follow the instructions: * Wiki: click on 'Watch page' in the contextual menu. * Forum: subscribe to a topic from the topic list or a subject from the messages list. * Ticket: add your ID in the 'Cc' field. * (|mail|) [https://listes.ipsl.fr/sympa/info/nemo-forge forge@nemo-ocean.eu]: to be notified of each event on this platform (repository commits, ticket creation/update and forums messages).\\ ''Very high traffic recommended for developers only.''