Home | Download/Install | Documentation | Packages | Screenshots | News | Forum/Mailing-lists | Contact | GForge

Developer Guide

This document describes the OpenAlea framework from the developer's point of view, describing how to make OpenAlea package easily available to the community.

An introduction to OpenAlea

General presentation

Why adapt your tool for OpenAlea ?

Developing your package in the openalea framework present a number of benefits. It allows

  • your library to be shared with the community (do not reinvent the wheel).
  • easy comparisons of different models.
  • cooperation (the outputs can be directly reused in an other model).
  • visibility of your work.

What OpenAlea provides for developers ?

OpenAlea provides some tools to facilitate package creation and to share code.

Read the build and install framework document.

How to contribute

Contribute to Openalea

To know current and future developments, just have a look to the Proposal pages (PEP). Feel free to report a bug or suggest new features on public OpenAlea gforge.

For a better understanding of historical and technical choices, it is possible to browse minutes of weekly meetings, Coding sprint and modeling sprints.

You can also develop your own package as described in next section.

Develop your own package

What is an OpenAlea package ?

A package is an autonomous piece of software.

  • It can be installed independently,
  • It can be in pure python or with C++ library,
  • Python module are installed in the openalea namespace,
  • Library and header are installed in the OpenAlea directory,
  • It can be compiled on linux and on windows,
  • It has documentation and tests,
  • It is released under an Open Source license
  • It can provide some interconnectable components.

Install your development environment

OpenAlea packages use different programs and libraries. You must install and setup your development environment before being able to develop your own package.

If you have to use Subversion, have a look to How to use SVN.


When developing or porting your package, you must keep in mind that what you write must be be easily understandable and reusable by others developers. This is a basis of the OpenAlea project.

The coding guidelines contains some advice to write better code that can be read by other developers.

You must also provide :

Implementing your package

Your package can be :

  • A pure python module
  • A python module with C++ libraries
  • It is also possible to integrate Fortran code (not currently supported)

The document how to create an OpenAlea package is a tutorial to help developers to implement their packages.

If you want to start directly with a real example, download the starter package.

If your package is based on a C++ library (for efficiency reasons), you can read How to integrate cpp code in python.

Providing OpenAlea logical components

Distributing your package

Because OpenAlea goal is to share knowledge and software development, an OpenAlea package must be released under an open source license.

For more informations, read the license guidelines.

Releasing a package for OpenAlea doesn't mean that the authors loose their rights on the package. The authors remain the owners of the copyright and then they can decide how they want to distribute their packages.

The OpenAlea website can provide the visibility for your package. We encourage to create a page for each available package. Moreover, it is possible (but not mandatory) to distribute your package on the gforge platform.

The gforge repository can be used as a download server.

Read How to distribute your package.

documentation/developer_guide.txt · Last modified: 2014/01/24 16:16 by user   Back to top
INRIA GForge RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki