#+TITLE: Hacking GNU Guix and Its Incredible Distro
-Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
-Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
+Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+Copyright © 2015, 2017 Mathieu Lirzin <mthl@gnu.org>
+Copyright © 2017 Leo Famulari <leo@famulari.name>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
See the manual for useful hacking informations, either by running
- info -f doc/guix.info "(guix) Contributing"
+ info -f doc/guix.info "Contributing"
or by checking the [[http://www.gnu.org/software/guix/manual/guix.html#Contributing][web copy of the manual]].
mailing list. When you get commit access, please make sure to follow the
policy below (discussions of the policy can take place on guix-devel@gnu.org.)
-Non-trivial patches should always be posted to guix-devel@gnu.org (trivial
-patches include fixing typos, etc.)
+Non-trivial patches should always be posted to guix-patches@gnu.org (trivial
+patches include fixing typos, etc.) This mailing list fills the
+patch-tracking database at [[https://bugs.gnu.org/guix-patches]]; see
+"Contributing" in the manual for details.
For patches that just add a new package, and a simple one, it’s OK to commit,
if you’re confident (which means you successfully built it in a chroot setup,
(guix-commits@gnu.org), so people can notice. Before pushing your changes,
make sure to run ‘git pull --rebase’.
-All commits that are pushed to the central repository on Savannah should be
-signed with a PGP key, and the public key should be uploaded to your user
-account on Savannah.
+All commits that are pushed to the central repository on Savannah must be
+signed with an OpenPGP key, and the public key should be uploaded to your user
+account on Savannah and to public key servers, such as ‘pgp.mit.edu’. To
+configure Git to automatically sign commits, run:
-For anything else, please post to guix-devel@gnu.org and leave time for a
+ git config commit.gpgsign true
+ git config user.signingkey CABBA6EA1DC0FF33
+
+You can prevent yourself from accidentally pushing unsigned commits to
+Savannah by using the pre-push Git hook called located at ‘etc/git/pre-push’:
+
+ cp etc/git/pre-push .git/hooks/pre-push
+
+When pushing a commit on behalf of somebody else, please add a Signed-off-by
+line at the end of the commit log message (e.g. with ‘git am --signoff’).
+This improves tracking of who did what.
+
+For anything else, please post to guix-patches@gnu.org and leave time for a
review, without committing anything. If you didn’t receive any reply
after two weeks, and if you’re confident, it’s OK to commit.