doc/contributing.txt
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--
write README, contributing.txt, reorganize the other documentation files
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