Contributing

Licenses of contributions

GNUnet is a GNU package. All code contributions must thus be put under the GNU Affero Public License (AGPL). All documentation should be put under FSF approved licenses (see fdl).

By submitting documentation, translations, and other content to GNUnet you automatically grant the right to publish code under the GNU Public License and documentation under either or both the GNU Public License or the GNU Free Documentation License. When contributing to the GNUnet project, GNU standards and the GNU philosophy should be adhered to.

Contributing to the Reference Manual

Todo

Move section to contrib.rst?

Todo

Update contrib section to reflect move to reStructuredText

  • When writing documentation, please use gender-neutral wording when referring to people, such as singular “they”, “their”, “them”, and so forth.

  • Keep line length below 74 characters, except for URLs. URLs break in the PDF output when they contain linebreaks.

  • Do not use tab characters (see chapter 2.1 texinfo manual)

  • Write texts in the third person perspective.

Contributing testcases

In the core of GNUnet, we restrict new testcases to a small subset of languages, in order of preference:

  1. C

  2. Portable Shell Scripts

  3. Python (3.7 or later)

We welcome efforts to remove our existing Python 2.7 scripts to replace them either with portable shell scripts or, at your choice, Python 3.7 or later.

If you contribute new python based testcases, we advise you to not repeat our past misfortunes and write the tests in a standard test framework like for example pytest.

For writing portable shell scripts, these tools are useful: