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.

Minor contributions

Smaller contributions should be provided as patches and not in developer branches that require git access (see below). You may post patches on https://bugs.gnunet.org in a new or existing (relevant) issue or on the mailing list gnunet-developers@gnu.org. You may use git send-email to send patches to the mailing list. In general, you may consult https://docs.kernel.org/process/email-clients.html for best practices with respect to mailing patches.

Major contributions

You can find the GNUnet project repositories at https://git.gnunet.org. The following applies to all repositories, but access policies are only enforced for the main gnunet repository. To gain write access to the repository, you will have to sign the Copyright Assignment (see below). Note that all commits MUST be signed with your GPG key. The server will verify that any pushed commit is signed. It does not matter which key is used (we do not keep a list of GPG public keys).

For any changes that are not minor, you SHOULD create an issue at https://bugs.gnunet.org and work in a branch that you may push to the project’s server. This will allow us to track the motivation and execution of a change and list it in the release notes.

See Style and Workflow for details on the style and workflow.

Reference Manual

  • 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.