author Tom Henderson <>
Fri, 18 May 2007 10:27:42 -0700
changeset 657 be551a3b07c6
parent 635 71b92dfe5f55
permissions -rw-r--r--
minor changes due to documentation review
     1 Contributing to the ns-3 project
     2 --------------------------------
     4 ns-3 is an open source project backed by an NSF CISE CRI grant. 
     5 Although the NSF PIs have specific aims to fulfill, we want others to 
     6 contribute, and we'd like to have a broad community of users and 
     7 developers, with the goal of a self-sustaining project downstream. 
     8 The project is currently in a bootstrapping phase, but we welcome 
     9 ambitious developers who might want to help shape the early design.
    11 Despite the lack of a formal contribution process to the ns-3
    12 project, there are a number of steps which we expect every
    13 potential contributor to follow. These naturally stem from 
    14 the open-source roots of the project:
    16   - first, you should subscribe to the ns-developers 
    17     mailing-list (see
    19   - then, you should send an email there stating your interest
    20     in working on a specific part of the models and trying
    21     to explain how you would like to implement it, what 
    22     resources you have, etc.
    24   - you should be prepared to work together with the other
    25     potential contributors who want to work on the same models.
    27   - you should be prepared to go through code reviews with the
    28     ns-3 development team prior to integration. The goal of these
    29     code reviews is to:
    30       - ensure adherence to the coding style of the project
    31         (see doc/codingstyle.html)
    32       - ensure that the structure of your code has a certain 
    33         coherence with regard to the rest of the ns-3 codebase
    34       - improve the quality of the code: we strongly believe in
    35         the old saying: "many eyes make all bugs shallow".
    36       - increase code reuse by trying to generalize certain 
    37         useful pieces of your code to make them available to
    38         other models.
    40   - you should be prepared to try to integrate as many tests
    41     in the codebase as possible: we understand that writing
    42     tests is not sexy and that not everyone is convinced that
    43     they improve the code-writing poductivity which is why
    44     we do not enforce strict rules about testing. However,
    45     we expect model authors to answer basic questions about
    46     how they plan to test and validate their models.
    48   - you should be prepared to maintain your model once it is
    49     integrated: while we consider every bug filed against the 
    50     simulator as being a bug we must deal with and while we 
    51     will try to fix as many bugs as humanly possible, we
    52     also expect model authors to act as responsible maintainers
    53     and be reactive to bug reports concerning their models.
    55   - The project has decided upon GNU GPLv2 as the licensing structure. 
    56     All simulation software in the ns-3 repositories will be GNU GPLv2 
    57     or GNU GPLv2-compatible (with non-GPLv2 licensing reserved for
    58     ports of pre-existing code under a different license, such as BSD).
    59     You do not have to assign your copyright to the ns-3 project but
    60     you must accept the terms of the GPLv2 and attest that your 
    61     contributions can be licensed under those terms.  See the 
    62     following link: