Commit | Line | Data |
---|---|---|
450ccdc3 LC |
1 | -*- mode: org; coding: utf-8; -*- |
2 | ||
08ba7ff3 | 3 | #+TITLE: Hacking GNU Guix and Its Incredible Distro |
450ccdc3 | 4 | |
20e29643 | 5 | Copyright © 2012, 2013, 2014, 2016 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 | |
2d2ad989 | 28 | Non-trivial patches should always be posted to guix-devel@gnu.org (trivial |
9bf3c1a7 LC |
29 | patches include fixing typos, etc.) |
30 | ||
31 | For patches that just add a new package, and a simple one, it’s OK to commit, | |
e20ec9cc LC |
32 | if you’re confident (which means you successfully built it in a chroot setup, |
33 | and have done a reasonable copyright and license auditing.) Likewise for | |
d0c64188 LC |
34 | package upgrades, except upgrades that trigger a lot of rebuilds (for example, |
35 | upgrading GnuTLS or GLib.) We have a mailing list for commit notifications | |
e20ec9cc LC |
36 | (guix-commits@gnu.org), so people can notice. Before pushing your changes, |
37 | make sure to run ‘git pull --rebase’. | |
9bf3c1a7 | 38 | |
20e29643 LC |
39 | All commits that are pushed to the central repository on Savannah must be |
40 | signed with an OpenPGP key, and the public key should be uploaded to your user | |
41 | account on Savannah and to public key servers, such as ‘pgp.mit.edu’. To | |
42 | configure Git to automatically sign commits, run: | |
43 | ||
44 | git config commit.gpgsign true | |
45 | git config user.signingkey CABBA6EA1DC0FF33 | |
a16db014 | 46 | |
69355e12 LF |
47 | You can prevent yourself from accidentally pushing unsigned commits to Savannah |
48 | by using the pre-push Git hook called 'pre-push'. It's located at | |
49 | 'etc/git/pre-push'. | |
50 | ||
2d2ad989 | 51 | For anything else, please post to guix-devel@gnu.org and leave time for a |
9bf3c1a7 LC |
52 | review, without committing anything. If you didn’t receive any reply |
53 | after two weeks, and if you’re confident, it’s OK to commit. | |
54 | ||
55 | That last part is subject to being adjusted, allowing individuals to commit | |
56 | directly on non-controversial changes on parts they’re familiar with. |