= Welcome to the NEMO developers section [[PageOutline(2-3)]] [[BR]] [[BR]] [[BR]] [[BR]] [[BR]] [[BR]] [[BR]] [[BR]] == Overview of NEMO development process [[Color(if you have developments to share, please read this introductory section first,/lime)]] NEMO is a free licence software, so that all the developments from the community are more than welcome.[[BR]] Still, since the NEMO reference is share by the whole community after a commonly agreed development and validation process, the developments to be added in the NEMO reference must follow a specific quality control process.[[BR]] The different levels of sharing for your developments are briefly described below, in order to help you find the best way(s) for your developments to reach to community. First and foremost, to be able to create a ticket or add a topic in a forum, if you don't already have a user account then you have to '''[/register create it]'''. === A piece of software related to NEMO, that you want to share: '''You have developed a tool for NEMO pre- or post-processing, you have a personal repository with files you would like to share''' with the community, etc... , please add a topic in the [forum:5 Alternative configurations, repositories and utilities] forum === A development of NEMO code itself '''You developed a new piece in NEMO, for your own purpose and you now want to inform the community''', but you're not ready to do more. You are welcome to create a ticket here and attach the routines you have developped to your new ticket. newticket?summary=&type=ENHANCEMENT&component=ALL&version=trunk&severity=minor&keywords=&cc=&milestone=&priority=low&description=&owner=&sfp_email=&sfph_mail= '''You developed a new piece in NEMO, for your own purpose and you think it would be useful for you and/or the community to add it into the NEMO reference'''.[[BR]] This very good idea needs a little more work, from you and also from the NEMO System Team in charge of NEMO development. As a first step, you should, as above, open a ticket here: [[BR]] describing the development. Please create it with a "TASK" type, so that the NEMO workplan discussions can take it in account. Listing a development action in the NEMO reference development plan is decision with strong implications: first criteria is of course the scientific interest, but the amount of work needed to successfully meet the quality control requirements has also to be evaluated. This concerns: * The overall coherency with NEMO development strategy * Coding rules, performances * Documentation (in the code, on-line and refernce manual) * Building the development branch in phase with latest NEMO release * Validation phase, including checking this development is not braking any existing feature Considering the costs (efforts needed to implement development in the NEMO reference) and benefits, the NEMO System Team will eventually offer you to contribute to the implementation work in the NEMO reference. If so, the development will be added in the workplan of the year, you will be the PI of this action with the perspective of merging this new development by the end of civil year, during the so-called "Merge Party" meeting. If you agree with this perspective, you will be contacted by a member of NEMO System Team who will help you through the different development steps. {{{#!comment Claire: j'ai enlevé cette table parce que je ne crois pas que cette différence entre Consortium members et autres soit pertinente ici: la difference est entre développements acceptés pour la référence de NEMO et les autres. A revoir si tu veux [[Include(wiki:Developers/Homepage/Table)]] }}} === 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] * [wiki:Developers/SVNHowTo] === 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.'' {{{#!comment Claire: pas convaincue que le paragraphe suivant doive être ici?? Je le vois plutôt dans Developing code changes? === 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 [[Include(wiki:Developers/WorkingEnvironment)]] 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(${, #AA22FF)]][[Color(PEGREV, #B8860B)]][[Color(}, #AA22FF)]])'''. \\ Here is an example which is not supposed to be up to date with the current external codes. [[Include(wiki:Developers/ExternalDefinitions)]] ''If you have to modify these properties to get external modifications, you can learn how to update your working copy in [wiki:Developers/SVNHowTo]''. == }}}