diff options
Diffstat (limited to 'doc/contributing.texi')
-rw-r--r-- | doc/contributing.texi | 111 |
1 files changed, 98 insertions, 13 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi index 69f0327afb..a0da871f1a 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -300,15 +300,10 @@ Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, -and more (@pxref{Introduction,,, geiser, Geiser User Manual}). For -convenient Guix development, make sure to augment Guileās load path so -that it finds source files from your checkout: - -@lisp -;; @r{Assuming the Guix checkout is in ~/src/guix.} -(with-eval-after-load 'geiser-guile - (add-to-list 'geiser-guile-load-path "~/src/guix")) -@end lisp +and more (@pxref{Introduction,,, geiser, Geiser User Manual}). If you +allow Emacs to load the @file{.dir-locals.el} file at the root of the +project checkout, it will cause Geiser to automatically add the local +Guix sources to the Guile load path. To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss @@ -1345,6 +1340,12 @@ should not be delayed. When a bug is resolved, please close the thread by sending an email to @email{@var{ISSUE_NUMBER}-done@@debbugs.gnu.org}. +@menu +* Configuring Git:: +* Sending a Patch Series:: +* Teams:: +@end menu + @node Configuring Git @subsection Configuring Git @cindex git configuration @@ -1542,10 +1543,10 @@ This section describes how the Guix project tracks its bug reports, patch submissions and topic branches. @menu -* The Issue Tracker:: The official bug and patch tracker. -* Managing Patches and Branches:: How changes to Guix are managed. -* Debbugs User Interfaces:: Ways to interact with Debbugs. -* Debbugs Usertags:: Tag reports with custom labels. +* The Issue Tracker:: The official bug and patch tracker. +* Managing Patches and Branches:: How changes to Guix are managed. +* Debbugs User Interfaces:: Ways to interact with Debbugs. +* Debbugs Usertags:: Tag reports with custom labels. @end menu @node The Issue Tracker @@ -1625,6 +1626,8 @@ information on some builds and substitute availability. @node Debbugs User Interfaces @subsection Debbugs User Interfaces +@subsubsection Web interface + A web interface (actually @emph{two} web interfaces!) are available to browse issues: @@ -1646,6 +1649,88 @@ To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}. +@subsubsection Command-line interface + +Mumi also comes with a command-line interface that can be used to search +existing issues, open new issues and send patches. You do not need to +use Emacs to use the mumi command-line client. You interact with it +only on the command-line. + +To use the mumi command-line interface, navigate to a local clone of the +Guix git repository, and drop into a shell with mumi, git and +git:send-email installed. + +@example +$ cd guix +~/guix$ guix shell mumi git git:send-email +@end example + +To search for issues, say all open issues about "zig", run + +@example +~/guix [env]$ mumi search zig is:open + +#60889 Add zig-build-system +opened on 17 Jan 17:37 Z by Ekaitz Zarraga +#61036 [PATCH 0/3] Update zig to 0.10.1 +opened on 24 Jan 09:42 Z by Efraim Flashner +#39136 [PATCH] gnu: services: Add endlessh. +opened on 14 Jan 2020 21:21 by Nicol? Balzarotti +#60424 [PATCH] gnu: Add python-online-judge-tools +opened on 30 Dec 2022 07:03 by gemmaro +#45601 [PATCH 0/6] vlang 0.2 update +opened on 1 Jan 2021 19:23 by Ryan Prior +@end example + +Pick an issue and make it the "current" issue. + +@example +~/guix [env]$ mumi current 61036 + +#61036 [PATCH 0/3] Update zig to 0.10.1 +opened on 24 Jan 09:42 Z by Efraim Flashner +@end example + +Once an issue is the current issue, you can easily create and send +patches to it using + +@example +~/guix [env]$ git format-patch origin/master +~/guix [env]$ mumi send-email foo.patch bar.patch +@end example + +Note that you do not have to pass in @samp{--to} or @samp{--cc} +arguments to @command{git format-patch}. @command{mumi send-email} will +put them in correctly when sending the patches. + +To open a new issue, run + +@example +~/guix [env]$ mumi new +@end example + +and send patches + +@example +~/guix [env]$ mumi send-email foo.patch bar.patch +@end example + +@command{mumi send-email} is really a wrapper around @command{git +send-email} that automates away all the nitty-gritty of sending patches. +It uses the current issue state to automatically figure out the correct +@samp{To} address to send to, other participants to @samp{Cc}, headers +to add, etc. + +Also note that, unlike @command{git send-email}, @command{mumi +send-email} works perfectly well with single and multiple patches alike. +It automates away the debbugs dance of sending the first patch, waiting +for a response from debbugs and sending the remaining patches. It does +so by sending the first patch, polling the server for a response, and +then sending the remaining patches. This polling can unfortunately take +a few minutes. So, please be patient. + +@subsubsection Emacs interface + If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with: |