contributing.rst (3722B)
1 .. _GNUnet-Contributors-Handbook: 2 3 **************************** 4 Contributing 5 **************************** 6 7 Licenses of contributions 8 ========================= 9 10 GNUnet is a `GNU <https://www.gnu.org/>`__ package. All code 11 contributions must thus be put under the `GNU Affero Public License 12 (AGPL) <https://www.gnu.org/licenses/agpl.html>`__. All documentation 13 should be put under FSF approved licenses (see 14 `fdl <https://www.gnu.org/copyleft/fdl.html>`__). 15 16 By submitting documentation, translations, and other content to GNUnet 17 you automatically grant the right to publish code under the GNU Public 18 License and documentation under either or both the GNU Public License or 19 the GNU Free Documentation License. When contributing to the GNUnet 20 project, GNU standards and the `GNU philosophy <https://www.gnu.org/philosophy/philosophy.html>`__ should be 21 adhered to. 22 23 Minor contributions 24 =================== 25 26 Smaller contributions should be provided as patches and not in 27 developer branches that require git access (see below). 28 You may post patches on https://bugs.gnunet.org in a new or existing 29 (relevant) issue or on the mailing list gnunet-developers@gnu.org. 30 You may use `git send-email` to send patches to the mailing list. 31 In general, you may consult https://docs.kernel.org/process/email-clients.html 32 for best practices with respect to mailing patches. 33 34 35 Major contributions 36 =================== 37 38 You can find the GNUnet project repositories at https://git.gnunet.org. 39 The following applies to all repositories, but access policies are only 40 enforced for the main gnunet repository. 41 To gain write access to the repository, you will have to sign the 42 Copyright Assignment (see below). 43 Note that all commits **MUST** be signed with your GPG key. 44 The server will verify that any pushed commit is signed. It does not matter 45 which key is used (we do not keep a list of GPG public keys). 46 47 For any changes that are not minor, you **SHOULD** create an issue at 48 https://bugs.gnunet.org and work in a branch that you may 49 push to the project's server. 50 This will allow us to track the motivation and execution of a change 51 and list it in the release notes. 52 53 See :ref:`dev-style-workflow` for details on the style and workflow. 54 55 Copyright Assignment 56 ==================== 57 58 We require a formal copyright assignment for GNUnet contributors to 59 GNUnet e.V.; nevertheless, we do allow pseudonymous contributions. By 60 signing the copyright agreement and submitting your code (or 61 documentation) to us, you agree to share the rights to your code with 62 GNUnet e.V.; GNUnet e.V. receives non-exclusive ownership rights, and in 63 particular is allowed to dual-license the code. You retain non-exclusive 64 rights to your contributions, so you can also share your contributions 65 freely with other projects. 66 67 GNUnet e.V. will publish all accepted contributions under the AGPLv3 or 68 any later version. The association may decide to publish contributions 69 under additional licenses (dual-licensing). 70 71 We do not intentionally remove your name from your contributions; 72 however, due to extensive editing it is not always trivial to attribute 73 contributors properly. If you find that you significantly contributed to 74 a file (or the project as a whole) and are not listed in the respective 75 authors file or section, please do let us know. 76 77 `Download Copyright Assignment here. <https://www.gnunet.org/static/pdf/copyright.pdf>`__ 78 79 .. _Contributing-to-the-Reference-Manual: 80 81 Reference Manual 82 ================ 83 84 - Keep line length below 74 characters, except for URLs. URLs break in 85 the PDF output when they contain linebreaks. 86 87 - Do not use tab characters (see chapter 2.1 texinfo manual) 88 89 - Write texts in the third person perspective. 90 91 .. _Contributing-testcases: