]> git.cworth.org Git - notmuch-wiki/blobdiff - nmbug.mdwn
News for release 0.38.3
[notmuch-wiki] / nmbug.mdwn
index 391e6ee8cd85e8feacace4a891539f4e35d1fa04..7d544044033a685132f1be9694a3affc1f51c30b 100644 (file)
@@ -1,37 +1,47 @@
+[[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
 # Experimental Tag Sharing / Pseudo-Bug-Tracking for/with notmuch
 
 ## Web View
 
-There is a dump of (one view of) the nmbug [[status|nmbug/status]]. It is even more
-experimental than everything else here, and currently manually updated.
-It is generated by a
- [[python script|http://pivot.cs.unb.ca/git/?p=notmuch-scripts.git;a=blob_plain;f=scripts/nmbug-status.py]].
+There is a dump of (some views of) the nmbug [[status|https://nmbug.notmuchmail.org/status]].
 
-## Getting set up
+## Getting started
 
-1. Install and use notmuch version notmuch 0.9+63~gebd1adc or newer.
+0. Make sure that the whole [notmuch@notmuchmail.org mailing list
+   archive][archive] is available in your email database.
 
-   The nmbug script is available in contrib/nmbug
-      
-2. The current tag repo can be obtained by
+   If you are missing messages which are tagged in the nmbug
+   repository, `nmbug status` will complain with U-prefixed lines and
+   you will have to jump through some hoops to create commits that
+   alter tags for those messages.  Most other nmbug operation will be
+   unaffected.
 
-      git clone --bare git://pivot.cs.unb.ca/nmbug.git $HOME/.nmbug
+1. Install and use nmbug from notmuch version **0.19** or newer, and
+   either Python 2.7 or anything from the 3.x line.
 
-    Check that your git is recent enough by entering
+   The nmbug script is available in [devel/nmbug][nmbug].
 
-      git --git-dir=$HOME/.nmbug fetch
+2. Make sure your `git version` is **1.7.4** or newer. 
 
-    If you get failures then you need to update your git (as well).
+3. Enter the following command to obtain the current tag repository:
+
+   `$ nmbug clone https://nmbug.notmuchmail.org/git/nmbug-tags.git`
+
+4. Clobber your local `notmuch::…` tag namespace with:
+
+   `$ nmbug checkout`
+
+   Without this, `nmbug status` will list all of the upstream tags as
+   deleted (with the D prefix).
 
 ## Using nmbug, simple example
 
     # get the latest version of the tags
     $ nmbug pull
 
-    # do some tagging; see below for conventions 
-    
+    # do some tagging; see below for conventions
     $ notmuch tag +notmuch::patch $id
-    
+
     # write the tag changes from the notmuch database
     $ nmbug commit
 
@@ -42,13 +52,13 @@ It is generated by a
 
     # Optionally inspect the fetched changes
 
-    $ nmbug status      
+    $ nmbug status
      a   tags/id1/patch
-     d   tags/id2/pushed     
-    
+     d   tags/id2/pushed
+
     # merge the fetched tags into notmuch
     $ nmbug merge
-    
+
     # observe status is clear now,
     $ nmbug status
 
@@ -58,65 +68,120 @@ It is generated by a
     # double check your changes
     $ nmbug status
     A tags/id/patch
-    
-    # write the tag changes 
+
+    # write the tag changes
     $ nmbug commit
 
-## Submitting tags.
-
-   For the moment, we are using a central repo, hosted at
-    
-        git@pivot.cs.unb.ca:pub/nmbug
-        
-   To get push access, send your public key (ideally in a gpg signed
-   email) to David Bremner.  There is a convenience command
-   
-       nmbug push
-       
-   But you will have to change your url with
-   
-       git --git-dir=$HOME/.nmbug remote set-url origin git@pivot.cs.unb.ca:pub/nmbug
+## Submitting tags
+
+For the moment, we are using a central repo, hosted at:
+
+    nmbug@nmbug.notmuchmail.org:nmbug-tags
+
+To get push access, send your public key (ideally in a gpg signed
+email) to David Bremner.  There is a convenience command:
+
+    $ nmbug push
+
+But you will have to change your push URL with:
+
+    $ git --git-dir=$HOME/.nmbug remote set-url --push origin nmbug@nmbug.notmuchmail.org:nmbug-tags
 
 ## Tagging conventions
 
+_Note that the tag database is probably catching up to these
+conventions._
+
+### Main patch tracking tags
+
+Initially any patch should be tagged:
+
+    notmuch::patch
+
+Patches that are for discussion, rather than proposed for master
+should also be tagged:
+
+    notmuch::wip                is "work in progress", posted for review or comment.
+
+Most patches will be initially tagged:
+
+    notmuch::needs-review       needs some (more) review
+
+unless they are tagged:
+
+    notmuch::trivial            looks harmless
+
+Patches keep `notmuch::needs-review` until they either get enough
+reviews, or one of the following resolutions is reached:
+
+    notmuch::obsolete           replaced by some other patch
+    notmuch::pushed             is pushed to master
+    notmuch::wontfix            for whatever reason, this patch will not
+                                be applied
+
+Sometimes the process stalls, and patches get tagged:
+
+    notmuch::moreinfo           waiting for feedback from patch proposer
+                                or others
+    notmuch::stale              The patch no longer applies to master (or in
+                                rare cases, to release)
+
+Note that these tags typically apply to whole series of patches; it
+doesn't usually make sense to apply patches later in the series before
+earlier ones. So a patch may be tagged `moreinfo` or `stale` only
+because a predecessor patch is.
+
+### Bug tracking tag
+
+So far we are just tagging certain messages as bug reports, meaning
+things that "everyone" agrees should be fixed.
+
     notmuch::bug                is a bug report
+    notmuch::fixed              indicates that the bug is fixed in the
+                                master branch
+
+### Optional tags
+
+These patches are more comments and suggestions.
+
+    notmuch::doc                is a documentation patch
     notmuch::emacs              is a patch/bug for the emacs UI
     notmuch::feature            provides a new feature
     notmuch::fix                fixes a bug
-    notmuch::moreinfo           waiting for feedback from patch proposer or others
-    notmuch::obsolete           replaced by some other patch
-    notmuch::patch           
     notmuch::portability        improves portability
-    notmuch::pushed             is pushed to master
     notmuch::review             is a review
-    notmuch::reviewed           has been (well) reviewed
     notmuch::test               provides a new test/or improves testing
-    notmuch::wip                is "work in progress", posted for review or comment.
+    notmuch::$n                 this patch should be considered for
+                                release $n
 
 ## Tracking the patch queue
 
 I (David Bremner) use the following search (in my case as a saved
-search in emacs).
-    
+search in emacs):
+
     tag:notmuch::patch and not tag:notmuch::pushed and \
         not tag:notmuch::obsolete and not tag:notmuch::wip \
             and not tag:notmuch::moreinfo and not tag:notmuch::contrib
 
 You might or might not want as many exclusions.  Another interesting
-search is
+search is:
+
+    tag:notmuch::patch and not tag:notmuch::needs-review and not \
+        tag:notmuch::pushed and not tag:notmuch::obsolete and not \
+            tag:notmuch::wontfix and not tag:notmuch::moreinfo and not \
+                tag:notmuch::stale and not tag:notmuch::wip
+
+See the [[status|https://nmbug.notmuchmail.org/status]] page for more
+example searches.
 
-    tag:notmuch::reviewed and not tag:notmuch::pushed
-    
-    
 ## Design notes
 
-### Disk format.
+### Disk format
 
 The tags are stored in a bare-repo, which means they are not obviously
 visible. There is an `nmbug archive` command analogous to `git
-archive` Tags are represented as empty files in the tree; if you extra
-them, the tree looks something like
-
+archive` Tags are represented as empty files in the tree; if you
+extract them, the tree looks something like:
 
     tags/878waiwi0f.wl%25james@hackervisions.org/
     tags/878waiwi0f.wl%25james@hackervisions.org/emacs
@@ -130,9 +195,8 @@ The `%25` represents hex code for a character that cannot be used directly
 
 ### Assumptions
 
-- Currently the parser of nmbug (like that of notmuch restore) assumes 
+- Currently the parser of nmbug (like that of notmuch restore) assumes
   that there are no spaces in message-ids.
-    
-    
-    
 
+[archive]: https://nmbug.notmuchmail.org/archive/notmuch-list.tar.xz
+[nmbug]: https://git.notmuchmail.org/git/notmuch/blob/HEAD:/devel/nmbug/nmbug