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> |
450ccdc3 LC |
8 | |
9 | Copying and distribution of this file, with or without modification, | |
10 | are permitted in any medium without royalty provided the copyright | |
11 | notice and this notice are preserved. | |
12 | ||
8c01b9d0 | 13 | * Contributing |
450ccdc3 | 14 | |
8c01b9d0 | 15 | See the manual for useful hacking informations, either by running |
84dbbc76 | 16 | |
8efc35a8 | 17 | info -f doc/guix.info "Contributing" |
8b2d9e5d | 18 | |
8c01b9d0 | 19 | or by checking the [[http://www.gnu.org/software/guix/manual/guix.html#Contributing][web copy of the manual]]. |
e1c5a835 | 20 | |
9bf3c1a7 LC |
21 | * Commit Access |
22 | ||
23 | For frequent contributors, having write access to the repository is | |
24 | convenient. When you deem it necessary, feel free to ask for it on the | |
25 | mailing list. When you get commit access, please make sure to follow the | |
2d2ad989 | 26 | policy below (discussions of the policy can take place on guix-devel@gnu.org.) |
9bf3c1a7 | 27 | |
bc551cf3 LC |
28 | Non-trivial patches should always be posted to guix-patches@gnu.org (trivial |
29 | patches include fixing typos, etc.) This mailing list fills the | |
30 | patch-tracking database at [[https://bugs.gnu.org/guix-patches]]; see | |
31 | "Contributing" in the manual for details. | |
9bf3c1a7 LC |
32 | |
33 | For patches that just add a new package, and a simple one, it’s OK to commit, | |
e20ec9cc LC |
34 | if you’re confident (which means you successfully built it in a chroot setup, |
35 | and have done a reasonable copyright and license auditing.) Likewise for | |
d0c64188 LC |
36 | package upgrades, except upgrades that trigger a lot of rebuilds (for example, |
37 | upgrading GnuTLS or GLib.) We have a mailing list for commit notifications | |
e20ec9cc LC |
38 | (guix-commits@gnu.org), so people can notice. Before pushing your changes, |
39 | make sure to run ‘git pull --rebase’. | |
9bf3c1a7 | 40 | |
20e29643 LC |
41 | All commits that are pushed to the central repository on Savannah must be |
42 | signed with an OpenPGP key, and the public key should be uploaded to your user | |
43 | account on Savannah and to public key servers, such as ‘pgp.mit.edu’. To | |
44 | configure Git to automatically sign commits, run: | |
45 | ||
46 | git config commit.gpgsign true | |
47 | git config user.signingkey CABBA6EA1DC0FF33 | |
a16db014 | 48 | |
69355e12 LF |
49 | You can prevent yourself from accidentally pushing unsigned commits to Savannah |
50 | by using the pre-push Git hook called 'pre-push'. It's located at | |
51 | 'etc/git/pre-push'. | |
52 | ||
bc551cf3 | 53 | For anything else, please post to guix-patches@gnu.org and leave time for a |
9bf3c1a7 LC |
54 | review, without committing anything. If you didn’t receive any reply |
55 | after two weeks, and if you’re confident, it’s OK to commit. | |
56 | ||
57 | That last part is subject to being adjusted, allowing individuals to commit | |
58 | directly on non-controversial changes on parts they’re familiar with. |