diff mbox series

[bug#56987] etc: guix-debbugs.el: new file.

Message ID 20220805012310.5999-1-jbranso@dismail.de
State Accepted
Headers show
Series [bug#56987] etc: guix-debbugs.el: new file. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Joshua Branson Aug. 5, 2022, 1:23 a.m. UTC
New users may find the default debbugs commands a little awkward to use.
This patch provides three new functions and documentation that may ease
them into using debbugs and encourages them to close their open bug
reports.

* etc/guix-debbugs.el (debbugs-guix-search, debbugs-my-open-bugs,
debbugs-get-bug-by-id): new procedures.
* doc/contributing.texi (Debbugs User Interfaces): documented the new
emacs procedures and explained how to modify .emacs.d to use them.
---
 doc/contributing.texi | 57 +++++++++++++++++++++++++++++++++++--
 etc/guix-debbugs.el   | 65 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 120 insertions(+), 2 deletions(-)
 create mode 100644 etc/guix-debbugs.el


base-commit: d6be56cd09bb6286b51d1efc8981993be2525d87

Comments

Joshua Branson Aug. 5, 2022, 1:32 a.m. UTC | #1
Joshua Branson <jbranso@dismail.de> writes:

> New users may find the default debbugs commands a little awkward to use.
> This patch provides three new functions and documentation that may ease
> them into using debbugs and encourages them to close their open bug
> reports.
>

This patch now has an acompany video!

https://video.hardlimit.com/w/gDMR9y2jhB5SkSp8iqEyK8

The video is 13 minutes long, and it explains my motivations for
submitting this patch.  Namely that debbugs can be a little confusing
and hard for new comers to set up.

I also spotted some errors with my debbugs-guix-search function as I was
making the video.  I am not certain what the problem was.  Basically
debbugs-gnu-search found my open wterm related bug, bug
debbugs-guix-search did not.  Weird.

The documentation also helps newbies set up sending email in Emacs,
which is essential to use the emacs' debbugs interface as it was
intended.

I hope others find it helpful!

>
> * etc/guix-debbugs.el (debbugs-guix-search, debbugs-my-open-bugs,
> debbugs-get-bug-by-id): new procedures.
> * doc/contributing.texi (Debbugs User Interfaces): documented the new
> emacs procedures and explained how to modify .emacs.d to use them.
> ---
>  doc/contributing.texi | 57 +++++++++++++++++++++++++++++++++++--
>  etc/guix-debbugs.el   | 65 +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 120 insertions(+), 2 deletions(-)
>  create mode 100644 etc/guix-debbugs.el
>
> diff --git a/doc/contributing.texi b/doc/contributing.texi
> index 02c7c5ae59..683b9bd9d2 100644
> --- a/doc/contributing.texi
> +++ b/doc/contributing.texi
> @@ -1453,14 +1453,67 @@ issues using @file{debbugs.el}, which you can install with:
>  guix install emacs-debbugs
>  @end example
>  
> -For example, to list all open issues on @code{guix-patches}, hit:
> +Newcomers may find the default debbugs functions awkward to use.  We
> +provide three helper functions that will help you start contributing to
> +guix sooner:
> +
> +@table @asis
> +@item @code{M-x debbugs-guix-search}
> +to search for guix bugs.
> +
> +@item @code{M-x debbugs-my-open-bugs}
> +to search for your open bug reports.  These are reports that you
> +submitted.  Once every six months, run this command, and try to close
> +your open bugs.  Or just update the bug report with something like,
> +'This is still a bug.  Please do not close this bug.'
> +
> +@item @code{M-x debbugs-get-bug-by-id}
> +to search for bugs by the 5 digit bug number.
> +@end table
> +
> +To start using these guix specific functions, define the variable
> +@code{user-mail-address}, and put the following into your
> +@code{.emacs.d} (assuming the guix source is located in ~/src/guix/):
> +
> +@lisp
> +(setq user-mail-address "awesomecoder@@gnu.org")
> +
> +(load-file "~/src/guix/etc/guix-debbugs.el")
> +
> +(setq smtpmail-smtp-user user-mail-address
> +      message-send-mail-function 'smtpmail-send-it
> +      send-mail-function 'smtpmail-send-it
> +      ;; customize this variable to suit your smtp email server.
> +      smtpmail-smtp-server "smtp.gnu.org"
> +      ;; customize this variable to suit your email server's port.
> +      smtpmail-smtp-service 587)
> +@end lisp
> +
> +Emacs' debbugs interface is awesome, but in order to use it to its
> +fullest potential, you need to set up emacs to send email.  Luckily, the
> +previous lines of code set up Emacs to use email for you! Now, go ahead
> +and test Emacs' email sending ablities via @code{C-x m}.  For testing
> +purposes, send a test email to a friend or to yourself.  To send the
> +message, type in @code{C-c C-c}.  Emacs will ask you for your email
> +password and optionally offer to save it in the unencrypted file
> +@code{~/.authinfo}.  If you would rather save the password to an
> +encrypted file (@code{~/.authinfo.gpg}), then please see
> +@xref{Overview,,, auth, Emacs auth-source} and optionally set up GPG
> +@comment I cannot get the below link to work.  Why?
> +agent (@xref{gnupg, gnupg, gnupg, Invoking GPG-AGENT}). If you can send
> +the email, then you should be all set to use Emacs's debbugs interface!
> +
> +Finally, we encourage all potential contributers to occassionally review
> +some pending patches. There's quite a few!  You can test to see if the
> +patch works for you, and reply to the open bug report.  Here is how you
> +might get started finding the pending patches:
>  
>  @example
>  @kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y
>  @end example
>  
>  @xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on
> -this nifty tool!
> +this nifty tool, like how to close, tag, and merge bug reports!
>  
>  @node Debbugs Usertags
>  @subsection Debbugs Usertags
> diff --git a/etc/guix-debbugs.el b/etc/guix-debbugs.el
> new file mode 100644
> index 0000000000..794489b671
> --- /dev/null
> +++ b/etc/guix-debbugs.el
> @@ -0,0 +1,65 @@
> +;;; package --- Summary -*- lexical-binding: t; -*-
> +;;; guix-debbugs.el Helpful Debbugs Functions for guix
> +;;
> +;; Copyright (C) 2022 Joshua Branson
> +;;
> +;; Author: Joshua Branson <jbranso@dismail.de>
> +;; Maintainer: Joshua Branson <jbranso@dismail.de>
> +;; Created: August 04, 2022
> +;; Modified: August 04, 2022
> +;; Version: 0.0.1
> +;; Keywords: guix debbugs
> +;; Homepage: https://git.savannah.gnu.org/git/guix.git
> +;; Package-Requires: ((emacs "24.3"))
> +;;
> +;; This file is not part of GNU Emacs.
> +;;
> +;;; Commentary:
> +;;
> +;; The debbugs functions are a little awkward to use.  This file provides
> +;; better and easier to use functions for the guix project.  Specifically it
> +;; provides two new functions:
> +;;
> +;; M-x debbugs-guix-search to search for guix bugs
> +;; M-x debbugs-my-open-bugs to search for my open bug reports.
> +;; M-x debbugs-get-buy-by-id to open a specific bug by its ID.
> +;;
> +;;; Code:
> +
> +;; setting up debbugs
> +(require 'debbugs-autoloads)
> +
> +;; Users need to set up send-mail-function.  Otherwise "C" in debbugs-gnu-mode WILL NOT work.
> +;; eg:
> +;;
> +;;     (setq user-mail-address "awesomecoder@gnu.org")
> +;;     (load-file "~/src/guix/etc/guix-debbugs.el")
> +;;     (setq message-send-mail-function 'smtpmail-send-it
> +;;           smtpmail-smtp-user user-mail-address
> +;;           ;; customize this variable to suit your smtp email server.
> +;;           smtpmail-smtp-server "smtp.gnu.org"
> +;;           ;; customize this variable to suit your email server's port.
> +;;           smtpmail-smtp-service 587)
> +
> +;; TODO make this by default only search open bugs AND NOT closed bugs.
> +(defun debbugs-guix-search ()
> +  (interactive)
> +  (debbugs-gnu-search (read-string "Search String: ") nil nil '("guix" "guix-patches") nil))
> +
> +;; the bugs that I submitted and that are still open
> +;; The debbugs database runs once a day.  So after I send a bug report
> +;; and run this command, my latest bug report might not be here.  No worries,
> +;; just wait one day, and it will be there.  :)
> +;;
> +;; I have noticed that this function works 80% of the time.  But after I close bug reports,
> +;; it seems to stop working for about 1/2 hour.  I'm guessing the server's database
> +;; resets itself after every time that I close a bug report...
> +(defun debbugs-my-open-bugs ()
> +  (require 'debbugs)
> +  (interactive)
> +  (apply #'debbugs-gnu-bugs (debbugs-get-bugs :submitter "me" :status "open")))
> +
> +(defalias 'debbugs-get-bug-by-id 'debbugs-gnu-bugs)
> +
> +(provide 'guix-debbugs)
> +;;; guix-debbugs.el ends here
>
> base-commit: d6be56cd09bb6286b51d1efc8981993be2525d87
Joshua Branson Aug. 10, 2022, 3:16 p.m. UTC | #2
Joshua Branson <jbranso@dismail.de> writes:

I emailed the help-gnu-emacs list, to try ask how I would write a
function to only get open guix bugs and got back a pretty good reply. I
am just reposting those messages here:

>> But you can play with the QUERY argument of
>> debbugs-gnu-search, like  (this will get you only open bugs)
>>
>> (debbugs-gnu-search (read-string "Search String: ") '((pending . "open")) nil '("guix" "guix-patches"))

> Are you sure that works?
>
> (debbugs-gnu-search "wterm" '((status . "open")) nil '("guix" "guix-patches"))
>
> returns nothing
>
> (debbugs-gnu-search "wterm" '((pending . "open")) nil '("guix" "guix-patches"))
>
> returns nothing
>
> (debbugs-gnu-search "wterm"  nil nil '("guix" "guix-patches"))
>
> returns only closed bugs.  odd.
>
> M-x debbugs-gnu-search RET "wterm" RET RET x
>
> correctly returns bug 56965, which is an open bug.
>
> What am I doing wrong?

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Joshua,

Well, I found the time now to check what's up.

> Hmm, looks like there's an error in debbugs-gnu-search. I'll check, but
> perhaps you might write a bug report about. I don't know whether I can
> handle it just now, due to time constraints.

There's indeed an error. The "status" attribute, when there is non-empty
query string, must be "pending" instead of "open". And it is mapped
internally to the attribute "pending".

All this shouldn't worry you. I've just pushed debbugs 0.33, which will appear
in a couple of hours on GNU ELPA. For the time being, you can apply

(debbugs-gnu-search "wterm" '((pending . "pending")) nil '("guix" "guix-patches"))

If you want to see only closed bugs, then call

(debbugs-gnu-search "wterm" '((pending . "done")) nil '("guix" "guix-patches"))

And if you want to see all bugs with this search string, there is

(debbugs-gnu-search "wterm" nil nil '("guix" "guix-patches"))

Best regards, Michael.


So I will be resubmitting this patch set, with a debbugs-guix-search
function that by default only returns open bug reports.

Thanks,

Joshua
Michael Albinus Aug. 10, 2022, 4:44 p.m. UTC | #3
Joshua Branson <jbranso@dismail.de> writes:

Hi Joshua,

just some comments after short reading of the patch.

>  @example
>  @kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y
>  @end example

Alternatively, a user could set debbugs-gnu-default-packages to '("guix" "guix-patches")
Then it won't be necessary to enter the package name(s) again and again.

> +;; Copyright (C) 2022 Joshua Branson

This would change to FSF, if bundled with the debbugs package.

> +;; Package-Requires: ((emacs "24.3"))

debbugs.el says

;; Package-Requires: ((emacs "26.1") (soap-client "3.1.5"))

So I guess you might lift up the required Emacs version.

> +;; TODO make this by default only search open bugs AND NOT closed bugs.
> +(defun debbugs-guix-search ()
> +  (interactive)
> +  (debbugs-gnu-search (read-string "Search String: ") nil nil '("guix" "guix-patches") nil))

As said the other message, it should be

(debbugs-gnu-search (read-string "Search String: ") '((pending . "pending")) nil '("guix" "guix-patches"))

> +;; The debbugs database runs once a day.  So after I send a bug report
> +;; and run this command, my latest bug report might not be here.  No worries,
> +;; just wait one day, and it will be there.  :)

To be more precise, the Hyperestraier search engine on debbugs.gnu.org
makes new indices after that period. New submitted bugs are in the
debbugs database shortly after sending the message. It is just
debbugs-gnu-search, which needs these indices.

> +;; I have noticed that this function works 80% of the time.  But after I close bug reports,
> +;; it seems to stop working for about 1/2 hour.  I'm guessing the server's database
> +;; resets itself after every time that I close a bug report...

debbugs.el uses a cache, which flushes the value after an hour. See the
variable debbugs-cache-expiry.

There is the command debbugs-gnu-rescan, bound to key "g", which rescans
an existing tabulated list. With a prefix argument ("C-u g"), the cache
is ignored, and the data are retrieved directly from debbugs.gnu.el.

However, please be cautious with invalidating the cache. Every action on
the debbugs.gnu.org server causes a workload there, and we don't want to
overuse it.

Best regards, Michael.
ashish.is--- via Guix-patches" via Aug. 10, 2022, 8:10 p.m. UTC | #4
Sorry for top posting...

The emacs debbugs developers are considering to merge this patch to debbugs directly.

I am willing to submit copyright assignment to GNU/FSF.  It looks like the FSF
has a webpage that may make this process easier:

https://sfconservancy.org/assignment/

Should I use that web page to submit my potential copyright assignment?

Now that we are all on the same page:  

August 10, 2022 12:45 PM, "Michael Albinus" <michael.albinus@gmx.de> wrote:

> Joshua Branson <jbranso@dismail.de> writes:
> 
> Hi Joshua,
> 
> just some comments after short reading of the patch.
> 
>> @example
>> @kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y
>> @end example
> 
> Alternatively, a user could set debbugs-gnu-default-packages to '("guix" "guix-patches")
> Then it won't be necessary to enter the package name(s) again and again.

I think that I have tried that in my config, and I could not get it to work.

I will try again and get back to you, and update the guix documentation accordingly.

> 
>> +;; Copyright (C) 2022 Joshua Branson
> 
> This would change to FSF, if bundled with the debbugs package.

Will change

> 
>> +;; Package-Requires: ((emacs "24.3"))
> 
> debbugs.el says
> 
> ;; Package-Requires: ((emacs "26.1") (soap-client "3.1.5"))
> 
> So I guess you might lift up the required Emacs version.

Will do.

> 
>> +;; TODO make this by default only search open bugs AND NOT closed bugs.
>> +(defun debbugs-guix-search ()
>> + (interactive)
>> + (debbugs-gnu-search (read-string "Search String: ") nil nil '("guix" "guix-patches") nil))
> 
> As said the other message, it should be
> 
> (debbugs-gnu-search (read-string "Search String: ") '((pending . "pending")) nil '("guix"
> "guix-patches"))

Will change

> 
>> +;; The debbugs database runs once a day. So after I send a bug report
>> +;; and run this command, my latest bug report might not be here. No worries,
>> +;; just wait one day, and it will be there. :)
> 
> To be more precise, the Hyperestraier search engine on debbugs.gnu.org
> makes new indices after that period. New submitted bugs are in the
> debbugs database shortly after sending the message. It is just
> debbugs-gnu-search, which needs these indices.

Will change

> 
>> +;; I have noticed that this function works 80% of the time. But after I close bug reports,
>> +;; it seems to stop working for about 1/2 hour. I'm guessing the server's database
>> +;; resets itself after every time that I close a bug report...
> 
> debbugs.el uses a cache, which flushes the value after an hour. See the
> variable debbugs-cache-expiry.

Maybe, we could mark a bug as done in the cache when one closes the bug via
debbugs.  That may be a little above my paygrade though.

> 
> There is the command debbugs-gnu-rescan, bound to key "g", which rescans
> an existing tabulated list. With a prefix argument ("C-u g"), the cache
> is ignored, and the data are retrieved directly from debbugs.gnu.el.
> 
> However, please be cautious with invalidating the cache. Every action on
> the debbugs.gnu.org server causes a workload there, and we don't want to
> overuse it.
> 
> Best regards, Michael.


I will resubmit this with the goal of merging directly into debbugs.el.

And I am off tomorrow, so I should have some time to do so!
M Aug. 10, 2022, 8:24 p.m. UTC | #5
On 10-08-2022 22:10, jbranso--- via Guix-patches via wrote:
> I am willing to submit copyright assignment to GNU/FSF.  It looks like the FSF
> has a webpage that may make this process easier:
>
> https://sfconservancy.org/assignment/

GNU and FSF are separate (but related!) entities, they aren't synonyms. 
For example, I do some things in GNU (in mu case: GNUnet, Guix and Guix) 
but I'm not involved with FSF at all, except for asking a question once 
or twice of FSF people.

Also, the Software Freedom Conservancy is a different organisation than 
the FSF. You will need a different assignment form, contact the 
emacs-debbugs people for details.

I haven't been following 56987 100%, but a remark:

Guix does not require copyright assignment. Copyright assignment is only 
required if you sent changes to Emacs or emacs-debbugs upstream instead 
of a local Guix patch or file. That would something to discuss with 
Emacs or emacs-debbugs people though, not Guix.

Greetings,
Maxime.
ashish.is--- via Guix-patches" via Aug. 10, 2022, 8:39 p.m. UTC | #6
August 10, 2022 4:24 PM, "Maxime Devos" <maximedevos@telenet.be> wrote:

> On 10-08-2022 22:10, jbranso--- via Guix-patches via wrote:
> 
>> I am willing to submit copyright assignment to GNU/FSF. It looks like the FSF
>> has a webpage that may make this process easier:
>> 
>> https://sfconservancy.org/assignment
> 
> GNU and FSF are separate (but related!) entities, they aren't synonyms.
> For example, I do some things in GNU (in mu case: GNUnet, Guix and Guix)
> but I'm not involved with FSF at all, except for asking a question once
> or twice of FSF people.

Thanks for the clarification!

> Also, the Software Freedom Conservancy is a different organization than
> the FSF. You will need a different assignment form, contact the
> emacs-debbugs people for details.

Ah, you're right! from
https://sfconservancy.org/news/2022/may/02/conservancy-launches-copyright-assignment-system

"The self-service system enables developers to entrust their copyrights
to Software Freedom Conservancy, ..."  NOT the FSF.  Bummer.

> I haven't been following 56987 100%, but a remark:
> 
> Guix does not require copyright assignment. Copyright assignment is only
> required if you sent changes to Emacs or emacs-debbugs upstream instead
> of a local Guix patch or file. That would something to discuss with
> Emacs or emacs-debbugs people though, not Guix.

That's what I mentioned in the above previous email.  

Some emacs-debbugs contributors have expressed an interest in adding in my
patch to debbugs.el directly.  They would require an assignment to the FSF. 
:)

Which thanks to Maxime, I now know that I have to email the FSF!

Also thanks for the reminder Maxime. I am adding Lars to the email chain. 
He's a co-author of debbugs I believe.

> Greetings,
> Maxime.
ashish.is--- via Guix-patches" via Aug. 10, 2022, 9:22 p.m. UTC | #7
Hey Craig,

With Michael's help (Michael did most of the work really), I wrote
some code that may be useful to emacs's debbugs mode:

https://elpa.gnu.org/packages/debbugs.html

The pending patch is available for your viewing pleasure at:

https://issues.guix.gnu.org/56987

I have never submitted copyright assignment to GNU before.  
Is it possible I can just submit copyright to all GNU programs 
in one fell swoop?

I currently work for a global corporation that is NOT in the
software industry, thought they do own some proprietary software.

Do I need to get them to sign off on this too?

Thanks,

Joshua
Michael Albinus Aug. 11, 2022, 6:24 a.m. UTC | #8
jbranso@dismail.de writes:

Hi Joshua,

> I am willing to submit copyright assignment to GNU/FSF.  It looks like the FSF
> has a webpage that may make this process easier:
>
> https://sfconservancy.org/assignment/
>
> Should I use that web page to submit my potential copyright assignment?

No, you need the FSF template. Sent offlist.

>>> @example
>>> @kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y
>>> @end example
>>
>> Alternatively, a user could set debbugs-gnu-default-packages to '("guix" "guix-patches")
>> Then it won't be necessary to enter the package name(s) again and again.
>
> I think that I have tried that in my config, and I could not get it to work.
>
> I will try again and get back to you, and update the guix documentation accordingly.

Well, debbugs-gnu-default-packages isn't used for
debbugs-gnu-search. But since you are writing about the debbugs package
in general, the hint might still be useful.

>> debbugs.el uses a cache, which flushes the value after an hour. See the
>> variable debbugs-cache-expiry.
>
> Maybe, we could mark a bug as done in the cache when one closes the bug via
> debbugs.  That may be a little above my paygrade though.

That's a hazardous way. Bugs are not only closed, but changed in many
ways. And you don't know, whether a user sends the control message she
has started to compose.

In debbugs-gnu-make-control-message, a bug is already removed from the
cache when the control message is sent. This is good enough I believe.

Next time the bug data are needed, the data for this bug are fetched
from the server. However, you must be a little bit patient, when you
retrieve the data immediately after sending the control message, the
server might not be ready with the action, and it might send the
unchanged data.

Best regards, Michael.
Joshua Branson Aug. 11, 2022, 3:25 p.m. UTC | #9
Michael Albinus <michael.albinus@gmx.de> writes:

> jbranso@dismail.de writes:
>
> Hi Joshua,
>
>> I am willing to submit copyright assignment to GNU/FSF.  It looks like the FSF
>> has a webpage that may make this process easier:
>>
>> https://sfconservancy.org/assignment/
>>
>> Should I use that web page to submit my potential copyright assignment?
>
> No, you need the FSF template. Sent offlist.
>
>>>> @example
>>>> @kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y
>>>> @end example
>>>
>>> Alternatively, a user could set debbugs-gnu-default-packages to '("guix" "guix-patches")
>>> Then it won't be necessary to enter the package name(s) again and again.
>>
>> I think that I have tried that in my config, and I could not get it to work.
>>
>> I will try again and get back to you, and update the guix documentation accordingly.
>
> Well, debbugs-gnu-default-packages isn't used for
> debbugs-gnu-search. But since you are writing about the debbugs package
> in general, the hint might still be useful.

May I ask why debbugs-gnu-search chooses not to use
debbugs-gnu-default-packages?  I don't understand.   What functions do
use debbugs-gnu-default-packages?  Also note, that my experience with
debbugs is REALLY minimal.  I haven't even properly read the
manual...I've only skimmed.  So maybe I should read it before developing
an opinion.  :)

>>> debbugs.el uses a cache, which flushes the value after an hour. See the
>>> variable debbugs-cache-expiry.
>>
>> Maybe, we could mark a bug as done in the cache when one closes the bug via
>> debbugs.  That may be a little above my paygrade though.
>
> That's a hazardous way. Bugs are not only closed, but changed in many
> ways. And you don't know, whether a user sends the control message she
> has started to compose.

That's true.  

> In debbugs-gnu-make-control-message, a bug is already removed from the
> cache when the control message is sent. This is good enough I believe.

Now that is helpful!  so debbugs-gnu-make-control-message assumes that
you are closing the bug.  ok.  Thanks for the help again Michael!  I
couldn't have written this patch this quickly without your help.  Heck
you helped me write quite a bit of it!

> Next time the bug data are needed, the data for this bug are fetched
> from the server. However, you must be a little bit patient, when you
> retrieve the data immediately after sending the control message, the
> server might not be ready with the action, and it might send the
> unchanged data.
>
> Best regards, Michael.
Michael Albinus Aug. 11, 2022, 4:06 p.m. UTC | #10
Joshua Branson <jbranso@dismail.de> writes:

Hi Joshua,

> May I ask why debbugs-gnu-search chooses not to use
> debbugs-gnu-default-packages?  I don't understand.

debbugs-gnu-search is not designed to be used with packages. It is
possible to do so, but by default it just looks for a search string, w/o
any further restriction.

> What functions do use debbugs-gnu-default-packages?

debbugs-gnu, and the commands which use it internally, like
debbugs-gnu-patches, debbugs-gnu-package.

>> In debbugs-gnu-make-control-message, a bug is already removed from the
>> cache when the control message is sent. This is good enough I believe.
>
> Now that is helpful!  so debbugs-gnu-make-control-message assumes that
> you are closing the bug.

No, it doesn't. A bug can be changed in many ways, not only being closed.
debbugs-gnu-make-control-message assumes only that you change something
with the bug.

Best regards, Michael.
Joshua Branson Aug. 11, 2022, 7:51 p.m. UTC | #11
jbranso@dismail.de writes:

Just an FYI, Craig already got back to me!  It took him 1 day to respond
to my email!  Way to go copyright licensing guy!

Thanks,

Joshua
ashish.is--- via Guix-patches" via Aug. 12, 2022, 7:17 p.m. UTC | #12
FYI, Craig the licensing guy got back to me, 
and I submitted my copyright form for GNU Emacs.

Craig is wicked fast!  He helped me submit my copyright before
the patched were even ready!

That guys deserves a raise, a paid 6 month vacation, and a new puppy!
I'm pretty sure he's the kind of man to run into a burning building
to save all of the kittens.  

Thanks Craig!

Joshua
Joshua Branson Aug. 13, 2022, 10:49 p.m. UTC | #13
For all interested parties, I am working on the patch to debbugs, and I
am recording myself coding doing it.  I've got sooo much to learn about
git!

Woo hoo!

https://video.hardlimit.com/my-library/video-playlists/ee13680a-b33c-4bc7-9794-973737d37d03

Thanks,

Joshua
ashish.is--- via Guix-patches" via Aug. 17, 2022, 8:14 p.m. UTC | #14
My copyright is now on file with the FSF for GNU Emacs!

Now I just need to make V2 of my patches.

Sorry it's taking me so long.

Thanks,

Joshua

-------- Forwarded message -------
From: "Craig Topham via RT" <copyright-clerk@fsf.org>
To: jbranso@dismail.de
Sent: August 17, 2022 4:25 PM
Subject: [gnu.org #1863422] Joshua Allen Branson GNU EMACS
Please find the attached PDF. Thank you for contributing.
Michael Albinus Aug. 18, 2022, 9:52 a.m. UTC | #15
jbranso@dismail.de writes:

Hi Joshua,

> My copyright is now on file with the FSF for GNU Emacs!

Indeed, I've seen this on file there. Congratulations!

The assignment is just for Emacs (I remember you wanted it for any GNU
package). No problem for me, working on debbugs is covered by this.

> Now I just need to make V2 of my patches.
>
> Sorry it's taking me so long.

Take your time, there's no rush.

> Thanks,
>
> Joshua

Best regards, Michael.
Joshua Branson Aug. 22, 2022, 5:21 p.m. UTC | #16
Michael Albinus <michael.albinus@gmx.de> writes:

>
> Take your time, there's no rush.
>

Video update:

https://video.hardlimit.com/w/p/vp7WF6rjXr4ZAF1sitHmUT?playlistPosition=3&resume=true

Just letting people know that I am making progress slowly.

>
>> Thanks,
>>
>> Joshua
>
> Best regards, Michael.
diff mbox series

Patch

diff --git a/doc/contributing.texi b/doc/contributing.texi
index 02c7c5ae59..683b9bd9d2 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -1453,14 +1453,67 @@  issues using @file{debbugs.el}, which you can install with:
 guix install emacs-debbugs
 @end example
 
-For example, to list all open issues on @code{guix-patches}, hit:
+Newcomers may find the default debbugs functions awkward to use.  We
+provide three helper functions that will help you start contributing to
+guix sooner:
+
+@table @asis
+@item @code{M-x debbugs-guix-search}
+to search for guix bugs.
+
+@item @code{M-x debbugs-my-open-bugs}
+to search for your open bug reports.  These are reports that you
+submitted.  Once every six months, run this command, and try to close
+your open bugs.  Or just update the bug report with something like,
+'This is still a bug.  Please do not close this bug.'
+
+@item @code{M-x debbugs-get-bug-by-id}
+to search for bugs by the 5 digit bug number.
+@end table
+
+To start using these guix specific functions, define the variable
+@code{user-mail-address}, and put the following into your
+@code{.emacs.d} (assuming the guix source is located in ~/src/guix/):
+
+@lisp
+(setq user-mail-address "awesomecoder@@gnu.org")
+
+(load-file "~/src/guix/etc/guix-debbugs.el")
+
+(setq smtpmail-smtp-user user-mail-address
+      message-send-mail-function 'smtpmail-send-it
+      send-mail-function 'smtpmail-send-it
+      ;; customize this variable to suit your smtp email server.
+      smtpmail-smtp-server "smtp.gnu.org"
+      ;; customize this variable to suit your email server's port.
+      smtpmail-smtp-service 587)
+@end lisp
+
+Emacs' debbugs interface is awesome, but in order to use it to its
+fullest potential, you need to set up emacs to send email.  Luckily, the
+previous lines of code set up Emacs to use email for you! Now, go ahead
+and test Emacs' email sending ablities via @code{C-x m}.  For testing
+purposes, send a test email to a friend or to yourself.  To send the
+message, type in @code{C-c C-c}.  Emacs will ask you for your email
+password and optionally offer to save it in the unencrypted file
+@code{~/.authinfo}.  If you would rather save the password to an
+encrypted file (@code{~/.authinfo.gpg}), then please see
+@xref{Overview,,, auth, Emacs auth-source} and optionally set up GPG
+@comment I cannot get the below link to work.  Why?
+agent (@xref{gnupg, gnupg, gnupg, Invoking GPG-AGENT}). If you can send
+the email, then you should be all set to use Emacs's debbugs interface!
+
+Finally, we encourage all potential contributers to occassionally review
+some pending patches. There's quite a few!  You can test to see if the
+patch works for you, and reply to the open bug report.  Here is how you
+might get started finding the pending patches:
 
 @example
 @kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y
 @end example
 
 @xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on
-this nifty tool!
+this nifty tool, like how to close, tag, and merge bug reports!
 
 @node Debbugs Usertags
 @subsection Debbugs Usertags
diff --git a/etc/guix-debbugs.el b/etc/guix-debbugs.el
new file mode 100644
index 0000000000..794489b671
--- /dev/null
+++ b/etc/guix-debbugs.el
@@ -0,0 +1,65 @@ 
+;;; package --- Summary -*- lexical-binding: t; -*-
+;;; guix-debbugs.el Helpful Debbugs Functions for guix
+;;
+;; Copyright (C) 2022 Joshua Branson
+;;
+;; Author: Joshua Branson <jbranso@dismail.de>
+;; Maintainer: Joshua Branson <jbranso@dismail.de>
+;; Created: August 04, 2022
+;; Modified: August 04, 2022
+;; Version: 0.0.1
+;; Keywords: guix debbugs
+;; Homepage: https://git.savannah.gnu.org/git/guix.git
+;; Package-Requires: ((emacs "24.3"))
+;;
+;; This file is not part of GNU Emacs.
+;;
+;;; Commentary:
+;;
+;; The debbugs functions are a little awkward to use.  This file provides
+;; better and easier to use functions for the guix project.  Specifically it
+;; provides two new functions:
+;;
+;; M-x debbugs-guix-search to search for guix bugs
+;; M-x debbugs-my-open-bugs to search for my open bug reports.
+;; M-x debbugs-get-buy-by-id to open a specific bug by its ID.
+;;
+;;; Code:
+
+;; setting up debbugs
+(require 'debbugs-autoloads)
+
+;; Users need to set up send-mail-function.  Otherwise "C" in debbugs-gnu-mode WILL NOT work.
+;; eg:
+;;
+;;     (setq user-mail-address "awesomecoder@gnu.org")
+;;     (load-file "~/src/guix/etc/guix-debbugs.el")
+;;     (setq message-send-mail-function 'smtpmail-send-it
+;;           smtpmail-smtp-user user-mail-address
+;;           ;; customize this variable to suit your smtp email server.
+;;           smtpmail-smtp-server "smtp.gnu.org"
+;;           ;; customize this variable to suit your email server's port.
+;;           smtpmail-smtp-service 587)
+
+;; TODO make this by default only search open bugs AND NOT closed bugs.
+(defun debbugs-guix-search ()
+  (interactive)
+  (debbugs-gnu-search (read-string "Search String: ") nil nil '("guix" "guix-patches") nil))
+
+;; the bugs that I submitted and that are still open
+;; The debbugs database runs once a day.  So after I send a bug report
+;; and run this command, my latest bug report might not be here.  No worries,
+;; just wait one day, and it will be there.  :)
+;;
+;; I have noticed that this function works 80% of the time.  But after I close bug reports,
+;; it seems to stop working for about 1/2 hour.  I'm guessing the server's database
+;; resets itself after every time that I close a bug report...
+(defun debbugs-my-open-bugs ()
+  (require 'debbugs)
+  (interactive)
+  (apply #'debbugs-gnu-bugs (debbugs-get-bugs :submitter "me" :status "open")))
+
+(defalias 'debbugs-get-bug-by-id 'debbugs-gnu-bugs)
+
+(provide 'guix-debbugs)
+;;; guix-debbugs.el ends here