Wiki

Clone wiki

lifev-release / new-devel

Go back


Guidelines for a new developer

Circle of trust

All the LifeV developers are in the Circle of Trust and have the following benefits:

  • Access to the developing version of the library (under LGPL) and the possibility of using standard modules for analysis, simulations, and tests also on behalf of a third parties. The use of a private module requires the explicit approval of the developers of the module.

  • Participate in full into the activities bound to the development and administration of the library (workshops, mailing list, bug tracking, code design, code documentation, etc.). They can suggest to the consortium possible strategic initiatives.

  • They can add additional modules and keep them "private" for a fixed amount of time not exceeding 18 months. After that period, private modules become "standard" and the copyright transferred to the consortium; authorship is kept.

The members of the circle of trust engage themselves in:

  • Sharing the bug fixes and the improvements to the library. The copyright is kept by the LifeV consortium (EPFL, Politecnico di Milano, Emory University).

  • Actively participating in the community life and to timely solve bugs found in modules they contribute to.


Developer registration

In order to download LifeV a new developer has to register to Bitbucket. To register, go to the Bitbucket website and subcribe. Registration of ssh public key is required:

  • If not already present, generate a new ssh key:

    $ ssh-keygen -t rsa
    

    The new private key will be stored in ~/.ssh/id_rsa, with corresponding public key in ~/.ssh/id_rsa.pub.

    For details see here.

  • On the Bitbucket website, open the menu by clicking on the circular button with the profile logo in the bottom-left of the screen

  • Click on Bitbucket settings

  • Click on SSH keys under the Security panel

  • Add the new public key by clicking on Add key and pasting your public key. You can retrieve the public key by issuing the command:

    cat ~/.ssh/id_rsa.pub
    

Remember that the necessary key is the public one. The private one must remain private.

Finally, contact a LifeV administrator to ask to be assigned to an appropriate group inside the lifev-dev team, giving him the e-mail address you have used to register to Bitbucket. You will be then granted the permission to download and eventually modify the development code of LifeV.


User groups

We recommend that users and developers subscribe to the following mailing lists as appropriate:


Getting started

NOTE: there are many sources of documentation in LifeV, scattered in multiple old documents, webpages, tutorials, examples, etc. and some of them are outdated. We are working on updating the documentation, but in the meanwhile the information on the wiki should be considered more accurate and should take precedence over the old documentation.

We stress the fact that LifeV is a complex library both to use and to maintain. Therefore, all the developers are required to have a good knowledge of C++ and Git.

  • Here we report some reference for learning Git and the guidelines to follow when developing for LifeV in collaboration with the other developers.

  • Here guidelines to follow for writing C++ code for LifeV are reported.

  • In this document (2013) new useful features introduced with the C++11 standard are summarized.

The source code of LifeV is stored inside (several) Git repositories. In order to obtain the source code, build the required third part libraries, and configure LifeV we suggest to use the LifeV environment and develop within the provided directory structure.

  • Follow the guidelines provided here for installing the LifeV environment.

  • For additional documentation about the LifeV architecture please check the Doxygen code documentation available here.

  • LifeV is shipped with a set of examples for each of its inner modules. These, together with the tests, should be the starting point for new developers for studying LifeV, with an hands-on approach.

  • New developers are also suggested to look at the online tutorials.

Updated