Commit | Line | Data |
---|---|---|
450ccdc3 LC |
1 | -*- mode: org; coding: utf-8; -*- |
2 | ||
08ba7ff3 | 3 | #+TITLE: Hacking GNU Guix and Its Incredible Distro |
450ccdc3 | 4 | |
bc551cf3 | 5 | Copyright © 2012, 2013, 2014, 2016, 2017 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 LC |
29 | Non-trivial patches should always be posted to guix-patches@gnu.org (trivial |
30 | patches include fixing typos, etc.) This mailing list fills the | |
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 | |
44 | account on Savannah and to public key servers, such as ‘pgp.mit.edu’. To | |
45 | configure Git to automatically sign commits, run: | |
46 | ||
47 | git config commit.gpgsign true | |
48 | git config user.signingkey CABBA6EA1DC0FF33 | |
a16db014 | 49 | |
2fccc0d1 LC |
50 | You can prevent yourself from accidentally pushing unsigned commits to |
51 | Savannah by using the pre-push Git hook called located at ‘etc/git/pre-push’: | |
52 | ||
53 | cp etc/git/pre-push .git/hooks/pre-push | |
69355e12 | 54 | |
ee7c21c7 CL |
55 | When pushing a commit on behalf of somebody else, please add a Signed-off-by |
56 | line at the end of the commit log message (e.g. with ‘git am --signoff’). | |
57 | This improves tracking of who did what. | |
58 | ||
bc551cf3 | 59 | For anything else, please post to guix-patches@gnu.org and leave time for a |
9bf3c1a7 LC |
60 | review, without committing anything. If you didn’t receive any reply |
61 | after two weeks, and if you’re confident, it’s OK to commit. | |
62 | ||
63 | That last part is subject to being adjusted, allowing individuals to commit | |
64 | directly on non-controversial changes on parts they’re familiar with. | |
acabbd59 AI |
65 | |
66 | * Using emacs-debbugs | |
67 | ||
68 | Bug reports and patches are tracked using debbugs. If you are on emacs, you | |
69 | can use emacs-debbugs. | |
70 | ||
71 | List all open bug reports on guix-patches with | |
72 | ||
73 | C-u M-x debbugs-gnu <RET> <RET> guix-patches <RET> n y |