+[[!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 (some views of) the nmbug [[status|http://nmbug.tethera.net/status]].
+There is a dump of (some views of) the nmbug [[status|https://nmbug.notmuchmail.org/status]].
## Getting started
-1. Install and use notmuch version notmuch 0.9+63~gebd1adc or newer and
- perl module `Pod::Usage` (packaged as `perl-doc` in debian).
+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`.
+ 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.
-2. The current tag repo can be obtained by:
+1. Install and use nmbug from notmuch version **0.19** or newer, and
+ either Python 2.7 or anything from the 3.x line.
- `$ git clone --bare http://nmbug.tethera.net/git/nmbug-tags.git $HOME/.nmbug`
+ The nmbug script is available in [devel/nmbug][nmbug].
- Check that your git is recent enough by entering:
+2. Make sure your `git version` is **1.7.4** or newer.
- `$ git --git-dir=$HOME/.nmbug fetch`
+3. Enter the following command to obtain the current tag repository:
- If you get failures then you need to update your git (as well).
+ `$ 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
For the moment, we are using a central repo, hosted at:
- nmbug@nmbug.tethera.net:nmbug-tags
+ 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 url with:
+But you will have to change your push URL with:
- $ git --git-dir=$HOME/.nmbug remote set-url origin nmbug@nmbug.tethera.net:nmbug-tags
+ $ git --git-dir=$HOME/.nmbug remote set-url --push origin nmbug@nmbug.notmuchmail.org:nmbug-tags
## Tagging conventions
notmuch::patch
-Patches that are for discussion, rather than proposed for master should be tagged:
+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.
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)
+ 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
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
You might or might not want as many exclusions. Another interesting
search is:
- tag:notmuch::reviewed and not tag:notmuch::pushed
+ 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.
## Design notes
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
- Currently the parser of nmbug (like that of notmuch restore) assumes
that there are no spaces in message-ids.
+
+[archive]: https://notmuchmail.org/archives/notmuch.mbox
+[nmbug]: https://git.notmuchmail.org/git/notmuch/blob/HEAD:/devel/nmbug/nmbug