]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/debbugs/debbugs.info
Add *.info and dir to debbugs
[gnu-emacs-elpa] / packages / debbugs / debbugs.info
diff --git a/packages/debbugs/debbugs.info b/packages/debbugs/debbugs.info
new file mode 100644 (file)
index 0000000..95c5372
--- /dev/null
@@ -0,0 +1,541 @@
+This is debbugs.info, produced by makeinfo version 5.0 from
+debbugs.texi.
+
+Copyright (C) 2011-2015 Free Software Foundation, Inc.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover, or
+     Back-Cover Texts.  A copy of the license is included in the section
+     entitled "GNU Free Documentation License" in the Emacs manual.
+
+     This document is part of a collection distributed under the GNU
+     Free Documentation License.  If you want to distribute this
+     document separately from the collection, you can do so by adding a
+     copy of the license to the document, as described in section 6 of
+     the license.
+
+     All Emacs Lisp code contained in this document may be used,
+     distributed, and modified without restriction.
+INFO-DIR-SECTION Emacs
+START-INFO-DIR-ENTRY
+* Debbugs: (debbugs).  A library for communication with Debbugs.
+END-INFO-DIR-ENTRY
+
+\1f
+File: debbugs.info,  Node: Top,  Next: Installation,  Up: (dir)
+
+Debbugs Programmer's Manual
+***************************
+
+Debbugs is a bugtracking system (BTS) that was initially written for the
+Debian project but actually used also by the GNU project.  The main
+distinctive feature of Debbugs is that it's mostly email-based.  All
+actions on bug reports: opening, closing, changing the status,
+commenting, forwarding are performed via email by sending specially
+composed letters to the particular mail addresses.  However, searching
+the bug reports, querying bug report status and viewing comments have
+been web-based for a long time.  To overcome this inconvenience the
+Debbugs/SOAP service was introduced.
+
+   The Debbugs/SOAP service provides the means for developers to write
+client applications that can send the queries with certain search
+criteria to the Debbugs server and retrieve a set of bug reports that
+match them.  The developer may also ask the Debbugs server for
+additional information about every bug report (e.g.  subject, date,
+originator, tags and etc.)  and get all comments and attachments.
+
+   'debbugs', described in this document, is the Emacs library that
+exposes to developers the available functions provided by the Debbugs
+server.  'debbugs' uses Emacs' SOAP client library for communication
+with the Debbugs server.  In tandem with Emacs' email facilities,
+'debbugs' provides a solution for building applications that interact
+with the Debbugs BTS directly from Emacs without addressing Debbugs' web
+interface.
+
+* Menu:
+
+* Installation::                Getting and installing 'debbugs'.
+* Configuration::               Configuring 'debbugs'.
+* Requesting bug numbers::      How to request bug report numbers.
+* Requesting bugs statuses::    How to request the status of bug reports.
+* Requesting messages::         How to get messages from bug reports.
+* Requesting user tags::        How to request tags set by users.
+
+\1f
+File: debbugs.info,  Node: Installation,  Next: Configuration,  Prev: Top,  Up: Top
+
+1 Installation
+**************
+
+Installation on Emacs 24 or later
+---------------------------------
+
+Install 'debbugs' from the *note ELPA repository: (elisp)Packaging.
+
+Installation on Emacs 22 and Emacs 23
+-------------------------------------
+
+If you want to install 'debbugs' on Emacs 22/23, you will need to
+install the 'soap-client' library first.  It can be downloaded from the
+Emacs SOAP client project page
+(http://code.google.com/p/emacs-soap-client/).
+
+   Compile the library and add it into your 'load-path':
+
+     (add-to-list 'load-path "/path/to/emacs-soap-client/")
+
+   'debbugs' library can be downloaded from the ELPA repository
+(http://elpa.gnu.org/packages/).  Compile it and set the 'load-path':
+
+     (add-to-list 'load-path "/path/to/debbugs/")
+
+Installation on Emacs 21
+------------------------
+
+We have not tried yet to install 'debbugs' on Emacs 21.  We would
+definitely say that the installation will require even more additional
+libraries than needed for installation on Emacs 22/23.
+
+\1f
+File: debbugs.info,  Node: Configuration,  Next: Requesting bug numbers,  Prev: Installation,  Up: Top
+
+2 Configuration
+***************
+
+'debbugs' is already configured to work with two main ports of Debbugs
+BTS: <http://bugs.debian.org> and <http://debbugs.gnu.org>.  So if you
+intend to use one of these ports, you don't need to configure 'debbugs'.
+If you want to interact with a Debbugs port other than those listed, you
+have to configure 'debbugs' by adding a new server specifier to the
+'debbugs-servers' variable.  The actual port can be selected by the
+'debbugs-port' variable.
+
+ -- Variable: debbugs-servers
+     List of Debbugs server specifiers.  Each entry is a list that
+     contains a string identifying the port name and the server
+     parameters in keyword-value form.  The list initially contains two
+     predefined and configured Debbugs servers: '"gnu.org"' and
+     '"debian.org"'.
+
+     Valid keywords are:
+
+     ':wsdl'
+          Location of WSDL. The value is a string with the URL that
+          should return the WSDL specification of the Debbugs/SOAP
+          service.  This keyword is intended for future use, it is
+          ignored currently.
+
+     ':bugreport-url'
+          The URL of the server script ('bugreport.cgi' in the default
+          Debbugs installation) that provides the access to mboxes with
+          messages from bug reports.
+
+     Example.  Add a new Debbugs port with name "foobars.net":
+
+          (add-to-list
+           'debbugs-servers
+           '("foobars.net"
+             :wsdl "http://bugs.foobars.net/cgi/soap.cgi?WSDL"
+             :bugreport-url "http://bugs.foobars.net/cgi/bugreport.cgi"))
+
+ -- Variable: debbugs-port
+     This variable holds the name of the currently used port.  The value
+     of the variable corresponds to the Debbugs server to be accessed,
+     either '"gnu.org"' or '"debian.org"', or a user defined port name.
+
+\1f
+File: debbugs.info,  Node: Requesting bug numbers,  Next: Requesting bugs statuses,  Prev: Configuration,  Up: Top
+
+3 Requesting bug numbers
+************************
+
+In Debbugs BTS, the bug number is the unique identifier of a bug report.
+The functions described in this section return from the Debbugs server
+the list of bug numbers that match a user's query.
+
+ -- Function: debbugs-get-bugs &rest query
+     This function returns a list of bug numbers that match the QUERY.
+     QUERY is a sequence of keyword-value pairs where the values are
+     strings, i.e.  :KEYWORD "VALUE" [:KEYWORD "VALUE"]*
+
+     The keyword-value pair is a subquery.  The keywords are allowed to
+     have multiple occurrence within the query at any place.  The
+     subqueries with the same keyword form the logical subquery, which
+     returns the union of bugs of every subquery it contains.
+
+     The result of the QUERY is an intersection of results of all
+     subqueries.
+
+     Valid keywords are:
+
+     ':package'
+          The value is the name of the package a bug belongs to, like
+          '"emacs"', '"coreutils"', '"gnus"', or '"tramp"'.
+
+     ':src'
+          This is used to retrieve bugs that belong to source with given
+          name.
+
+     ':severity'
+          This is the severity of the bug.  The exact set of available
+          severities depends on the policy of a particular Debbugs port:
+
+          Debian port: '"critical"', '"grave"', '"serious"',
+          '"important"', '"normal"', '"minor"', '"wishlist"', and
+          '"fixed"'.
+
+          GNU port: '"serious"', '"important"', '"normal"', '"minor"',
+          '"wishlist"'.
+
+     ':tag'
+          An arbitrary string the bug is annotated with.  Usually, this
+          is used to mark the status of the bug.  The list of possible
+          tags depends on the Debbugs port.
+
+          Debian port: '"patch"', '"wontfix"', '"moreinfo"',
+          '"unreproducible"', '"fixed"', '"potato"', '"woody"', '"sid"',
+          '"help"', '"security"', '"upstream"', '"pending"', '"sarge"',
+          '"sarge-ignore"', '"experimental"', '"d-i"', '"confirmed"',
+          '"ipv6"', '"lfs"', '"fixed-in-experimental"',
+          '"fixed-upstream"', '"l10n"', '"etch"', '"etch-ignore"',
+          '"lenny"', '"lenny-ignore"', '"squeeze"', '"squeeze-ignore"',
+          '"wheezy"', '"wheezy-ignore"'.  The actual list of tags can be
+          found on <http://www.debian.org/Bugs/Developer#tags>.
+
+          GNU port: '"fixed"', '"notabug"', '"wontfix"',
+          '"unreproducible"', '"moreinfo"', '"patch"', '"pending"',
+          '"help"', '"security"', '"confirmed"'.  See
+          <http://debbugs.gnu.org/Developer.html#tags> for the actual
+          list of tags.
+
+     ':owner'
+          This is used to identify bugs by the owner's email address.
+          The special email address '"me"' is used as pattern, replaced
+          with the variable 'user-mail-address' (*note (elisp)User
+          Identification::).
+
+     ':submitter'
+          With this keyword it is possible to filter bugs by the
+          submitter's email address.  The special email address '"me"'
+          is used as pattern, replaced with the variable
+          'user-mail-address'.
+
+     ':maint'
+          This is used to find bugs of the packages which are maintained
+          by the person with the given email address.  The special email
+          address '"me"' is used as pattern, replaced with
+          'user-mail-address'.
+
+     ':correspondent'
+          This allows to find bug reports where the person with the
+          given email address has participated.  The special email
+          address '"me"' is used as pattern, replaced with
+          'user-mail-address'.
+
+     ':affects'
+          With this keyword it is possible to find bugs which affect the
+          package with the given name.  The bugs are chosen by the value
+          of field 'affects' in bug's status.  The returned bugs do not
+          necessary belong to this package.
+
+     ':status'
+          Status of bug.  Valid values are '"done"', '"forwarded"' and
+          '"open"'.
+
+     ':archive'
+          A keyword to filter for bugs which are already archived, or
+          not.  Valid values are '"0"' (not archived), '"1"' (archived)
+          or '"both"'.  If this keyword is not given in the query,
+          ':archive "0"' is assumed by default.
+
+     Example.  Get all opened and forwarded release critical bugs for
+     the packages which are maintained by '"me"' and which have a patch:
+
+          (let ((debbugs-port "debian.org"))
+            (debbugs-get-bugs :maint "me" :tag "patch"
+                              :severity "critical"
+                              :status "open"
+                              :severity "grave"
+                              :status "forwarded"
+                              :severity "serious"))
+
+ -- Function: debbugs-newest-bugs amount
+     This function returns a list of bug numbers, according to AMOUNT (a
+     number) of latest bugs.
+
+     Example.  Get the latest six bug report numbers from Debian BTS:
+
+          (let ((debbugs-port "debian.org"))
+            (debbugs-newest-bugs 6))
+          => (633152 633153 633154 633155 633156 633157)
+
+\1f
+File: debbugs.info,  Node: Requesting bugs statuses,  Next: Requesting messages,  Prev: Requesting bug numbers,  Up: Top
+
+4 Requesting bugs statuses
+**************************
+
+Bug status is a collection of fields that holds the information about
+the state and importance of the bug report, about originator, owner and
+various aspects of relationship with other bug reports.
+
+ -- Function: debbugs-get-status &rest bug-numbers
+     Return a list of status entries for the bug reports identified by
+     BUG-NUMBERS.  Every returned entry is an association list with the
+     following attributes:
+
+     'id'
+     'bug_num'
+          The bug number.
+
+     'package'
+          A list of package names the bug belongs to.
+
+     'severity'
+          The severity of the bug report.  Possible values are the same
+          as for ':severity' in 'debbugs-get-bugs' (*note Requesting bug
+          numbers::).
+
+     'tags'
+          The status of the bug report, a list of strings.  Possible
+          values are the same as for ':tags' in 'debbugs-get-bugs'
+          (*note Requesting bug numbers::).
+
+     'pending'
+          The string '"pending"', '"forwarded"' or '"done"'.
+
+     'subject'
+          Subject/Title of the bugreport.
+
+     'originator'
+          The E-mail address of the bug report submitter.
+
+     'mergedwith'
+          A list of bug numbers this bug was merged with.
+
+     'source'
+          Source package name of the bug report.
+
+     'date'
+          Date of bug creation.  Encoded as UNIX time.
+
+     'log_modified'
+     'last_modified'
+          Date of last update.  Encoded as UNIX time.
+
+     'found_date'
+     'fixed_date'
+          Date of bug report / bug fix (empty for now).  Encoded as UNIX
+          time.
+
+     'done'
+          The E-mail address of the worker who has closed the bug (if
+          done).
+
+     'archived'
+          't' if the bug is archived, 'nil' otherwise.
+
+     'unarchived'
+          The date the bug has been unarchived, if ever.  Encoded as
+          UNIX time.
+
+     'found_versions'
+     'fixed_versions'
+          List of version strings.
+
+     'forwarded'
+          A URL or an E-mail address.
+
+     'blocks'
+          A list of bug numbers this bug blocks.
+
+     'blockedby'
+          A list of bug numbers this bug is blocked by.
+
+     'msgid'
+          The message id of the initial bug report.
+
+     'owner'
+          Who is responsible for fixing.
+
+     'location'
+          Always the string '"db-h"' or '"archive"'.
+
+     'affects'
+          A list of package names.
+
+     'summary'
+          Arbitrary text.
+
+     Example.  Get the status of bug number #10 from GNU BTS:
+
+          (let ((debbugs-port "gnu.org"))
+            (debbugs-get-status 10))
+          =>
+          (((source . "unknown") (found_versions) (done) (blocks)
+            (date . 1203606305.0) (fixed) (fixed_versions) (mergedwith)
+            (found) (unarchived) (blockedby) (keywords) (summary)
+            (msgid . "<87zltuz7eh.fsf@freemail.hu>") (id . 10)
+            (forwarded) (severity . "wishlist")
+            (owner . "Magnus Henoch <*****@freemail.hu>")
+            (log_modified . 1310061242.0) (location . "db-h")
+            (subject . "url-gw should support HTTP CONNECT proxies")
+            (originator . "Magnus Henoch <*****@freemail.hu>")
+            (last_modified . 1310061242.0) (pending . "pending") (affects)
+            (archived) (tags) (fixed_date) (package "emacs") (found_date)
+            (bug_num . 10)))
+
+ -- Function: debbugs-get-attribute bug-or-message attribute
+     General accessor that returns the value of key ATTRIBUTE.
+     BUG-OR-MESSAGE must be a list element returned by either
+     'debbugs-get-status' or 'debbugs-get-bug-log' (*note Requesting
+     messages::).
+
+     Example.  Return the originator of the last submitted bug report:
+
+          (let ((debbags-port "gnu.org"))
+            (debbugs-get-attribute
+             (car (apply 'debbugs-get-status (debbugs-newest-bugs 1)))
+             'originator))
+          => "Jack Daniels <jack@daniels.com>"
+
+\1f
+File: debbugs.info,  Node: Requesting messages,  Next: Requesting user tags,  Prev: Requesting bugs statuses,  Up: Top
+
+5 Requesting messages
+*********************
+
+ -- Function: debbugs-get-bug-log bug-number
+     Returns a list of messages related to BUG-NUMBER.  Every message is
+     an association list with the following attributes:
+
+     'msg_num'
+          The number of the message inside the bug log.  The numbers are
+          ascending, newer messages have a higher number.
+     'header'
+          The header lines from the E-mail messages, as arrived at the
+          bug tracker.
+     'body'
+          The message body.
+     'attachments'
+          A list of possible attachments, or 'nil'.  Not implemented yet
+          server side.
+
+ -- Function: debbugs-get-message-numbers messages
+     Returns the message numbers of MESSAGES.  MESSAGES must be the
+     result of a 'debbugs-get-bug-log' call.
+
+     Example.  Get message numbers from bug report #456789 log from
+     Debian BTS:
+
+          (let ((debbugs-port "debian.org"))
+             (debbugs-get-message-numbers (debbugs-get-bug-log 456789)))
+          => (5 10 12)
+
+ -- Function: debbugs-get-message messages message-number
+     Returns the message MESSAGE-NUMBER of MESSAGES.  MESSAGES must be
+     the result of a 'debbugs-get-bug-log' call.  The returned message
+     is a list of strings.  The first element are the header lines of
+     the message, the second element is the body of the message.
+     Further elements of the list, if any, are attachments of the
+     message.  If there is no message with MESSAGE-NUMBER, the function
+     returns 'nil'.
+
+     Example: Return the first message of the last submitted bug report
+     to GNU BTS:
+
+          (let* ((debbugs-port "gnu.org")
+                 (messages (apply 'debbugs-get-bug-log
+                               (debbugs-newest-bugs 1))))
+            (debbugs-get-message
+             messages
+             (car (debbugs-get-message-numbers messages))))
+
+ -- Function: debbugs-get-mbox bug-number mbox-type &optional filename
+     Download mbox with all messages from bug report BUG-NUMBER.
+     MBOX-TYPE specifies a type of mbox and can be one of the following
+     symbols:
+
+     'mboxfolder'
+          Download mbox folder, i.e.  mbox with messages as they arrived
+          at the Debbugs server.
+
+     'mboxmaint'
+          Download maintainer's mbox, i.e.  mbox with messages as they
+          are resent from the Debbugs server.
+
+     'mboxstat'
+     'mboxstatus'
+          Download status mbox.  The use of either symbol depends on the
+          actual Debbugs server configuration.  For '"gnu.org"', use the
+          former; for '"debian.org' - the latter.
+
+     FILENAME, if non-'nil', is the name of the file to store mbox.  If
+     FILENAME is 'nil', the downloaded mbox is inserted into the current
+     buffer.
+
+     Note, that mbox downloading will work only if the ':bugreport-url'
+     field of the 'debbugs-servers' variable is specified (*note
+     Configuration::).
+
+\1f
+File: debbugs.info,  Node: Requesting user tags,  Prev: Requesting messages,  Up: Top
+
+6 Requesting user tags
+**********************
+
+A user tag is a string, a user has assigned to one or several bugs.  The
+user is identified by an email address.  The port '"gnu.org"' uses also
+package names as user identification.
+
+ -- Function: debbugs-get-usertag &rest query
+     Return a list of bug numbers which match QUERY.
+
+     QUERY is a sequence of keyword-value pairs where the values are
+     strings, i.e.  :KEYWORD "VALUE" [:KEYWORD "VALUE"]*
+
+     Valid keywords are:
+
+     ':user'
+          The value is the name of the package a bug belongs to, like
+          '"emacs"', '"coreutils"', or '"tramp"'.  It can also be an
+          email address of a user who has applied a user tag.  The
+          special email address '"me"' is used as pattern, replaced with
+          'user-mail-address'.  There must be at least one such entry;
+          it is recommended to have exactly one.
+
+     ':tag'
+          A string applied as user tag.  Often, it is a subproduct
+          identification, like '"cedet"' or '"tramp"' for the package
+          '"emacs"'.
+
+     If there is no ':tag' entry, no bug numbers will be returned but a
+     list of existing user tags for ':user'.
+
+     Example.  Get all user tags for the package '"emacs"':
+
+          (let ((debbugs-port "gnu.org"))
+            (debbugs-get-usertag :user "emacs"))
+          => ("www" "solaris" "ls-lisp" "cygwin")
+
+     Get all bugs tagged by package '"emacs"' with '"www"' or
+     '"cygwin"')):
+
+          (let ((debbugs-port "gnu.org"))
+            (debbugs-get-usertag :user "emacs" :tag "www" :tag "cygwin"))
+          => (807 1223 5637)
+
+
+\1f
+Tag Table:
+Node: Top\7f1089
+Node: Installation\7f3042
+Node: Configuration\7f4141
+Node: Requesting bug numbers\7f6047
+Node: Requesting bugs statuses\7f11275
+Node: Requesting messages\7f15326
+Node: Requesting user tags\7f18342
+\1f
+End Tag Table