author | Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
Thu, 17 May 2007 11:32:22 +0200 | |
changeset 635 | 71b92dfe5f55 |
child 657 | be551a3b07c6 |
permissions | -rw-r--r-- |
mathieu@635 | 1 |
|
mathieu@635 | 2 |
Contributing to the ns-3 project |
mathieu@635 | 3 |
-------------------------------- |
mathieu@635 | 4 |
|
mathieu@635 | 5 |
Despite the lack of a formal contribution process to the ns-3 |
mathieu@635 | 6 |
project, there are a number of steps which we expect every |
mathieu@635 | 7 |
potential contributor to follow. These naturally stem from |
mathieu@635 | 8 |
the open-source roots of the project: |
mathieu@635 | 9 |
|
mathieu@635 | 10 |
- first, you should subscribe to the ns-developers |
mathieu@635 | 11 |
mailing-list (see http://www.nsnam.org/mailing_lists.html) |
mathieu@635 | 12 |
|
mathieu@635 | 13 |
- then, you should send an email there stating your interest |
mathieu@635 | 14 |
in working on a specific part of the models and trying |
mathieu@635 | 15 |
to explain how you would like to implement it, what |
mathieu@635 | 16 |
resources you have, etc. |
mathieu@635 | 17 |
|
mathieu@635 | 18 |
- you should be prepared to work together with the other |
mathieu@635 | 19 |
potential contributors who want to work on the same models. |
mathieu@635 | 20 |
|
mathieu@635 | 21 |
- you should be prepared to go through code reviews with the |
mathieu@635 | 22 |
ns-3 development team prior to integration. The goal of these |
mathieu@635 | 23 |
code reviews is to: |
mathieu@635 | 24 |
- ensure adherence to the coding style of the project |
mathieu@635 | 25 |
(see doc/codingstyle.html) |
mathieu@635 | 26 |
- ensure that the structure of your code has a certain |
mathieu@635 | 27 |
coherence with regard to the rest of the ns-3 codebase |
mathieu@635 | 28 |
- improve the quality of the code: we strongly believe in |
mathieu@635 | 29 |
the old saying: "many eyes make all bugs shallow". |
mathieu@635 | 30 |
- increase code reuse by trying to generalize certain |
mathieu@635 | 31 |
useful pieces of your code to make them available to |
mathieu@635 | 32 |
other models. |
mathieu@635 | 33 |
|
mathieu@635 | 34 |
- you should be prepared to try to integrate as many tests |
mathieu@635 | 35 |
in the codebase as possible: we understand that writing |
mathieu@635 | 36 |
tests is not sexy and that not everyone is convinced that |
mathieu@635 | 37 |
they improve the code-writing poductivity which is why |
mathieu@635 | 38 |
we do not enforce strict rules about testing. However, |
mathieu@635 | 39 |
we expect model authors to answer basic questions about |
mathieu@635 | 40 |
how they plan to test and validate their models. |
mathieu@635 | 41 |
|
mathieu@635 | 42 |
- you should be prepared to maintain your model once it is |
mathieu@635 | 43 |
integrated: while we consider every bug filed against the |
mathieu@635 | 44 |
simulator as being a bug we must deal with and while we |
mathieu@635 | 45 |
will try to fix as many bugs as humanly possible, we |
mathieu@635 | 46 |
also expect model authors to act as responsible maintainers |
mathieu@635 | 47 |
and be reactive to bug reports concerning their models. |
mathieu@635 | 48 |
|
mathieu@635 | 49 |
- you should make sure that you understand that contributed |
mathieu@635 | 50 |
models should be licensed under the GPLv2. You do not have |
mathieu@635 | 51 |
to assign your copyright to the ns-3 project but you must |
mathieu@635 | 52 |
accept the terms of the GPLv2. See the following link: |
mathieu@635 | 53 |
http://www.fsf.org/licensing/licenses/info/GPLv2.html |