Contributing Code

NDN codebase is open-source and we welcome and encourage contributions from everybody.
In order to ensure design and code quality, we have established a process that includes code review and continuous integration checks on a number of supported platforms. The following summarizes the process to contribute to NDN projects (NFD, ndn-cxx, ndn-tools, NFD-android, NLSR, ndnSIM, ChronoSync, repo-ng, and many others):

  • To inform NDN team about problems or to suggest new features, create an issue in the corresponding project on NDN redmine

  • All code submissions should go to our code review system

See also our contributing guide for additional information.

Code Review

The patches submitted for the code review are automatically checked for:

  • successful compilation
  • successful run of unit tests
  • no errors produced while creating API (doxygen) documentation

Recommended Checks Before Patch Submission

In order to facilitate code review process, please perform the following tests before submitting patches for code review:

Check that code and all unit tests compile. For most of our project, the following is the recommended way to configure and build project

./waf configure --debug --with-tests

Check that unit tests do not fail. Refer to project's documentation on how to run unit tests.

NFD has 4 test suites:


ndn-cxx and most other projects have one test suite:


Check that there are no errors in API (doxygen) documentation

To check for API documentation, doxygen needs to be installed. To build documentation, run

./waf doxygen

All warnings produced by this command must be fixed in order for the automatic continuous integration checks to succeed.

Note that ./waf doxygen will not rebuild documentation if there were no changes in source files. To rebuild documentation without changing source files, run ./waf clean before running ./waf doxygen

Updated by Davide Pesavento about 3 years ago · 4 revisions