gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

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: