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