]> git.cworth.org Git - notmuch-wiki/blob - nmbug.mdwn
nmbug: add link to status page
[notmuch-wiki] / nmbug.mdwn
1 # Experimental Tag Sharing / Pseudo-Bug-Tracking for/with notmuch
2
3 ## Web View
4
5 There is a dump of (one view of) the nmbug [[status|nmbug/status]]. It is even more
6 experimental than everything else here, and currently manually updated.
7
8 ## Getting set up
9
10 1. Install and use notmuch version notmuch 0.9+63~gebd1adc or newer.
11
12    The nmbug script is available in contrib/nmbug
13       
14 2. The current tag repo can be obtained by
15
16       git clone --bare git://pivot.cs.unb.ca/nmbug.git $HOME/.nmbug
17
18     Check that your git is recent enough by entering
19
20       git --git-dir=$HOME/.nmbug fetch
21
22     If you get failures then you need to update your git (as well).
23
24 ## Using nmbug, simple example
25
26     # get the latest version of the tags
27     $ nmbug pull
28
29     # do some tagging; see below for conventions 
30     
31     $ notmuch tag +notmuch::patch $id
32     
33     # write the tag changes from the notmuch database
34     $ nmbug commit
35
36 ## Using nmbug, doing the same thing with more steps
37
38     # get the latest version of the tags
39     $ nmbug fetch
40
41     # Optionally inspect the fetched changes
42
43     $ nmbug status      
44      a   tags/id1/patch
45      d   tags/id2/pushed     
46     
47     # merge the fetched tags into notmuch
48     $ nmbug merge
49     
50     # observe status is clear now,
51     $ nmbug status
52
53     # make the tag changes
54     $ notmuch tag +notmuch::patch id
55
56     # double check your changes
57     $ nmbug status
58     A tags/id/patch
59     
60     # write the tag changes 
61     $ nmbug commit
62
63 ## Submitting tags.
64
65    For the moment, we are using a central repo, hosted at
66     
67         git@pivot.cs.unb.ca:pub/nmbug
68         
69    To get push access, send your public key (ideally in a gpg signed
70    email) to David Bremner.  There is a convenience command
71    
72        nmbug push
73        
74    But you will have to change your url with
75    
76        git --git-dir=$HOME/.nmbug remote set-url origin git@pivot.cs.unb.ca:pub/nmbug
77
78 ## Tagging conventions
79
80     notmuch::bug                is a bug report
81     notmuch::emacs              is a patch/bug for the emacs UI
82     notmuch::feature            provides a new feature
83     notmuch::fix                fixes a bug
84     notmuch::moreinfo           waiting for feedback from patch proposer or others
85     notmuch::obsolete           replaced by some other patch
86     notmuch::patch           
87     notmuch::portability        improves portability
88     notmuch::pushed             is pushed to master
89     notmuch::review             is a review
90     notmuch::reviewed           has been (well) reviewed
91     notmuch::test               provides a new test/or improves testing
92     notmuch::wip                is "work in progress", posted for review or comment.
93
94 ## Tracking the patch queue
95
96 I (David Bremner) use the following search (in my case as a saved
97 search in emacs).
98     
99     tag:notmuch::patch and not tag:notmuch::pushed and \
100         not tag:notmuch::obsolete and not tag:notmuch::wip \
101             and not tag:notmuch::moreinfo and not tag:notmuch::contrib
102
103 You might or might not want as many exclusions.  Another interesting
104 search is
105
106     tag:notmuch::reviewed and not tag:notmuch::pushed
107     
108     
109 ## Design notes
110
111 ### Disk format.
112
113 The tags are stored in a bare-repo, which means they are not obviously
114 visible. There is an `nmbug archive` command analogous to `git
115 archive` Tags are represented as empty files in the tree; if you extra
116 them, the tree looks something like
117
118
119     tags/878waiwi0f.wl%25james@hackervisions.org/
120     tags/878waiwi0f.wl%25james@hackervisions.org/emacs
121     tags/878waiwi0f.wl%25james@hackervisions.org/patch
122     tags/87aa8j7hqu.fsf@zancas.localnet/
123     tags/87aa8j7hqu.fsf@zancas.localnet/patch
124     tags/87aa8j7hqu.fsf@zancas.localnet/pushed
125
126 The `%25` represents hex code for a character that cannot be used directly
127 (in this case %, only because it is needed as an escape).
128
129 ### Assumptions
130
131 - Currently the parser of nmbug (like that of notmuch restore) assumes 
132   that there are no spaces in message-ids.
133     
134     
135     
136