# GNU Guix --- Functional package management for GNU # Copyright © 2015, 2016, 2019 Ludovic Courtès # Copyright © 2019 Simon Tournier # # This file is part of GNU Guix. # # GNU Guix is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # GNU Guix is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see . # # Test the 'guix graph' command-line utility. # module_dir="t-guix-graph-$$" mkdir "$module_dir" trap "rm -rf $module_dir" EXIT tmpfile1="$module_dir/t-guix-graph1-$$" tmpfile2="$module_dir/t-guix-graph2-$$" trap 'rm -f "$tmpfile1" "$tmpfile2"' EXIT cat > "$module_dir/foo.scm"< "$tmpfile1" guix graph -t references `guix build guile-bootstrap` > "$tmpfile2" cmp "$tmpfile1" "$tmpfile2" # XXX: Filter the file names in the graph to work around the fact that we get # a mixture of relative and absolute file names. guix graph -t derivation coreutils > "$tmpfile1" guix graph -t derivation `guix build -d coreutils` > "$tmpfile2" cmp "$tmpfile1" "$tmpfile2" # Try package transformation options. guix graph git | grep 'label = "openssl' guix graph git --with-input=openssl=libressl | grep 'label = "libressl' if guix graph git --with-input=openssl=libressl | grep 'label = "openssl' then false; else true; fi # Try --load-path guix graph -L $module_dir dummy | grep 'label = "dummy' Suggest ‘guix git authenticate’ for initial authentication....The previous recommendation, running ‘make authenticate’, was insecure because it led users to run code from the very repository they want to authenticate: https://lists.gnu.org/archive/html/guix-devel/2024-04/msg00252.html * Makefile.am (commit_v1_0_0, channel_intro_commit) (channel_intro_signer, GUIX_GIT_KEYRING, authenticate): Remove. * Makefile.am (.git/hooks/%): New target, generalization of previous ‘.git/hooks/pre-push’ target. (nodist_noinst_DATA): Add ‘.git/hooks/post-merge’. * doc/contributing.texi (Building from Git): Suggest ‘guix git authenticate’ instead of ‘make authenticate’. * etc/git/post-merge: New file. * etc/git/pre-push: Run ‘guix git authenticate’ instead of ‘make authenticate’. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Reported-by: Skyler Ferris <skyvine@protonmail.com> Change-Id: Ia415aa8375013d0dd095e891116f6ce841d93efd Ludovic Courtès 2024-01-24gitconfig: b4: Automatically add 'Signed-off-by' when applying patches....Also use --3way to ease conflict resolutions. * etc/git/gitconfig [b4]: Add shazam-am-flags option. Change-Id: I6a92909a5b23a8680c16251aafa084b9a48944ea Maxim Cournoyer 2023-11-07doc: Add some guidelines for reviewing....* doc/contributing.texi (Contributing) [Reviewing the Work of Others]: New section. (Debbugs Usertags): Expound with Emacs Debbugs information and document the 'reviewed-looks-good' usertag. * etc/git/gitconfig [b4]: New section. Change-Id: I56630b15ec4fbc5c67e5420dbf2838556a005d6b Reviewed-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer 2023-10-22build: Add a commit-msg hook that embeds Change-Id in commit messages....Partially implements <https://issues.guix.gnu.org/66027>. This will make it possible to track a merged commit back to its original posting on the mailing list, and open the door to new opportunities such as closing fully merged series automatically. * Makefile.am (COMMIT_MSG_MAGIC): New variable. (.git/hooks/commit-msg): New target. * etc/git/commit-msg: New file. * doc/contributing.texi (Configuring Git): Document Change-Id. Series-changes: 3 - Clarify documentation text, as suggested by Simon Change-Id: Ia92fa958eae600fdd4e180bad494c85db8bb4dd6 Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com> Maxim Cournoyer 2023-05-18etc: gitconfig: Do not enforced signed commits....This change was more invasive than initially thought, and cannot be disabled easily, as raised by a few people. Let's revert it for now. At least the pre-push hook should be deployed automatically and catch any unsigned commits attempted to be pushed to Savannah. * etc/git/gitconfig [commit]: Remove section. Maxim Cournoyer 2023-05-01Makefile.am: Auto-configure Git on 'make'....This means we do not need to worry anymore about manually syncing the pre-push git hook or the Guix-provided git configuration. * etc/git/gitconfig: Augment configuration template with useful options to allow for auto-configuration. * Makefile.am (.git/hooks/pre-push, .git/config): New targets. (nodist_noinst_DATA): New primary variable holding the above targets. Maxim Cournoyer 2021-10-14Add git configuration templates to improve diff hunk header detection....This is a follow-up to commit 9fc8ae4171e5da4939a64fc6d684c8b9d85bbe84, which missed two hunks from <https://issues.guix.gnu.org/50363>. Reported by hackeryarn on #guix. * .gitattributes, etc/git/gitconfig: New files. Signed-off-by: Marius Bakke <marius@gnu.org> Sarah Morgensen