doc/contributing.txt
author Florian Westphal <fw@strlen.de>
Wed, 03 Sep 2008 23:24:59 +0200
changeset 3595 693faf7f4e9b
parent 657 be551a3b07c6
child 6736 fa6d53fb98a5
permissions -rw-r--r--
nsc: Fix build problem if gtk config store is disabled gtk config store pulled in libdl.so for us, so things fail to link of the config store isn't enabled. This makes nsc pull in libdl itself when its enabled.
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