Commit | Line | Data |
---|---|---|
450ccdc3 LC |
1 | -*- mode: org; coding: utf-8; -*- |
2 | ||
08ba7ff3 | 3 | #+TITLE: Hacking GNU Guix and Its Incredible Distro |
450ccdc3 | 4 | |
6701edbf | 5 | Copyright © 2012, 2013, 2014, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> |
8efc35a8 | 6 | Copyright © 2015, 2017 Mathieu Lirzin <mthl@gnu.org> |
69355e12 | 7 | Copyright © 2017 Leo Famulari <leo@famulari.name> |
acabbd59 | 8 | Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> |
450ccdc3 LC |
9 | |
10 | Copying and distribution of this file, with or without modification, | |
11 | are permitted in any medium without royalty provided the copyright | |
12 | notice and this notice are preserved. | |
13 | ||
8c01b9d0 | 14 | * Contributing |
450ccdc3 | 15 | |
8c01b9d0 | 16 | See the manual for useful hacking informations, either by running |
84dbbc76 | 17 | |
8efc35a8 | 18 | info -f doc/guix.info "Contributing" |
8b2d9e5d | 19 | |
8c01b9d0 | 20 | or by checking the [[http://www.gnu.org/software/guix/manual/guix.html#Contributing][web copy of the manual]]. |
e1c5a835 | 21 | |
9bf3c1a7 LC |
22 | * Commit Access |
23 | ||
24 | For frequent contributors, having write access to the repository is | |
25 | convenient. When you deem it necessary, feel free to ask for it on the | |
26 | mailing list. When you get commit access, please make sure to follow the | |
2d2ad989 | 27 | policy below (discussions of the policy can take place on guix-devel@gnu.org.) |
9bf3c1a7 | 28 | |
bc551cf3 | 29 | Non-trivial patches should always be posted to guix-patches@gnu.org (trivial |
52851921 | 30 | patches include fixing typos, etc.). This mailing list fills the |
bc551cf3 LC |
31 | patch-tracking database at [[https://bugs.gnu.org/guix-patches]]; see |
32 | "Contributing" in the manual for details. | |
9bf3c1a7 LC |
33 | |
34 | For patches that just add a new package, and a simple one, it’s OK to commit, | |
e20ec9cc LC |
35 | if you’re confident (which means you successfully built it in a chroot setup, |
36 | and have done a reasonable copyright and license auditing.) Likewise for | |
d0c64188 LC |
37 | package upgrades, except upgrades that trigger a lot of rebuilds (for example, |
38 | upgrading GnuTLS or GLib.) We have a mailing list for commit notifications | |
e20ec9cc LC |
39 | (guix-commits@gnu.org), so people can notice. Before pushing your changes, |
40 | make sure to run ‘git pull --rebase’. | |
9bf3c1a7 | 41 | |
20e29643 LC |
42 | All commits that are pushed to the central repository on Savannah must be |
43 | signed with an OpenPGP key, and the public key should be uploaded to your user | |
6701edbf | 44 | account on Savannah and to public key servers, such as |
06e1ecbf | 45 | ‘keys.openpgp.org’. To configure Git to automatically sign commits, |
6701edbf | 46 | run: |
20e29643 LC |
47 | |
48 | git config commit.gpgsign true | |
49 | git config user.signingkey CABBA6EA1DC0FF33 | |
a16db014 | 50 | |
2fccc0d1 LC |
51 | You can prevent yourself from accidentally pushing unsigned commits to |
52 | Savannah by using the pre-push Git hook called located at ‘etc/git/pre-push’: | |
53 | ||
54 | cp etc/git/pre-push .git/hooks/pre-push | |
69355e12 | 55 | |
ee7c21c7 CL |
56 | When pushing a commit on behalf of somebody else, please add a Signed-off-by |
57 | line at the end of the commit log message (e.g. with ‘git am --signoff’). | |
58 | This improves tracking of who did what. | |
59 | ||
bc551cf3 | 60 | For anything else, please post to guix-patches@gnu.org and leave time for a |
9bf3c1a7 LC |
61 | review, without committing anything. If you didn’t receive any reply |
62 | after two weeks, and if you’re confident, it’s OK to commit. | |
63 | ||
64 | That last part is subject to being adjusted, allowing individuals to commit | |
65 | directly on non-controversial changes on parts they’re familiar with. | |
acabbd59 AI |
66 | |
67 | * Using emacs-debbugs | |
68 | ||
69 | Bug reports and patches are tracked using debbugs. If you are on emacs, you | |
70 | can use emacs-debbugs. | |
71 | ||
72 | List all open bug reports on guix-patches with | |
73 | ||
74 | C-u M-x debbugs-gnu <RET> <RET> guix-patches <RET> n y |