X-Git-Url: https://git.cworth.org/git?p=obsolete%2Fnotmuch-wiki;a=blobdiff_plain;f=nmbug.mdwn;h=8f712d6d00d62d2908a90a2ad1606178cf7f649d;hp=3a41aa29ab000841075cd496aabd650f160cba55;hb=280418df96c602eaafdd462eeb90d116f52699fe;hpb=579c19e753e201466c72dc1ae38f582dd0023dbb diff --git a/nmbug.mdwn b/nmbug.mdwn index 3a41aa2..8f712d6 100644 --- a/nmbug.mdwn +++ b/nmbug.mdwn @@ -1,80 +1,179 @@ # Experimental Tag Sharing / Pseudo-Bug-Tracking for/with notmuch -## getting set up +## Web View -1. The current set of patches against notmuch master is in branch nmbug, +There is a dump of (some views of) the nmbug [[status|http://nmbug.tethera.net/status]]. - git://pivot.cs.unb.ca/notmuch.git +## Getting started - - you want the script contrib/nmbug, but you need the bleeding edge version - of notmuch as well. - -2. The current tag repo is at +1. Install and use notmuch version **0.10** or newer and + perl module `Pod::Usage` (packaged as `perl-doc` in debian). - git clone git://pivot.cs.unb.ca/nmbug.git $HOME/.nmbug + The nmbug script is available in `contrib/nmbug`. +2. Make sure your `git version` is **1.7.4** or newer. -## Using nmbug +3. Enter the following command to obtain the current tag repository: - # suck in the tags - $ nmbug restore + `$ git clone --bare http://nmbug.tethera.net/git/nmbug-tags.git $HOME/.nmbug` - [ do some tagging; see below for conventions ] - +## Using nmbug, simple example + + # get the latest version of the tags + $ nmbug pull + + # do some tagging; see below for conventions + $ notmuch tag +notmuch::patch $id + + # write the tag changes from the notmuch database + $ nmbug commit + +## Using nmbug, doing the same thing with more steps + + # get the latest version of the tags + $ nmbug fetch + + # Optionally inspect the fetched changes + + $ nmbug status + a tags/id1/patch + d tags/id2/pushed + + # merge the fetched tags into notmuch + $ nmbug merge + + # observe status is clear now, + $ nmbug status + + # make the tag changes + $ notmuch tag +notmuch::patch id + + # double check your changes + $ nmbug status + A tags/id/patch + + # write the tag changes $ nmbug commit +## Submitting tags -## Submitting tags. +For the moment, we are using a central repo, hosted at: - 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 remote origin set-url git@pivot.cs.unb.ca:pub/nmbug + nmbug@nmbug.tethera.net: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: + + $ git --git-dir=$HOME/.nmbug remote set-url origin nmbug@nmbug.tethera.net: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::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::$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): + + 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: + + tag:notmuch::reviewed and not tag:notmuch::pushed + +See the [[status|http://nmbug.tethera.net/status]] page for more +example searches. ## Design notes -### Disk format. +### Disk format -The on-disk format is a set of files $HOME/.nmbug/tags/$SHA1, where -$SHA1 is the hash of the message-id. This is mainly a simple way to -avoid problems with strange message-ids. Each file has the 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 +extract them, the tree looks something like: - msg-id: $id - tag: - tag: - [...] - -The motivation is to make merges easier, relative to the notmuch dump -format. The msg-id: and tag: headers are not really needed, but it -does make the format extensible. + tags/878waiwi0f.wl%25james@hackervisions.org/ + tags/878waiwi0f.wl%25james@hackervisions.org/emacs + tags/878waiwi0f.wl%25james@hackervisions.org/patch + tags/87aa8j7hqu.fsf@zancas.localnet/ + tags/87aa8j7hqu.fsf@zancas.localnet/patch + tags/87aa8j7hqu.fsf@zancas.localnet/pushed -### Assumptions +The `%25` represents hex code for a character that cannot be used directly +(in this case %, only because it is needed as an escape). -- Currently the parser of nmbug (like that of notmuch restore) assumes - that there are no spaces message-ids. - - - +### Assumptions +- Currently the parser of nmbug (like that of notmuch restore) assumes + that there are no spaces in message-ids.