Re: Experimental Tag Sharing

Subject: Re: Experimental Tag Sharing

Date: Sat, 29 Oct 2011 17:44:56 -0700

To: David Bremner,


From: Jameson Graef Rollins

On Sat, 29 Oct 2011 13:45:06 -0300, David Bremner <> wrote:
> OK, here is my rough and ready attempt at tag sharing.  I figure we
> can smooth out the rough edges if/when we agree on a set of tags and
> preferably on an on-disk format.

Great!  Thank you so much for working on this, David.  This is very
exciting work.

Comments below.

> How to play?
> - - Apply all the patches in this thread (starting
>   id:"")

These patches did not apply cleanly for me from the list.  I was able to
get them from bremner's "nmbug" branch [0], though.

[0] git://

> $ nmbug dump
> $ cd $HOME/.nmbug && git add tags && git commit

This last command seems to be included in nmbug as "commit".  Fwiw, I
don't like having to do two separate operations for dump and commit.
Could they be merged into a single operation?

> now you have to get the changes into the "master" repo.  I think
> hosting this on in a seperate repo will make
> sense, but for now, if you want to participate in the experiment, send
> me your public key (ideally in a gpg signed mail, but if not, oh well), 
> and you can push to my repo at

While I think having a central shared tag repo is ok to get started, I
would really like to see this work in a distributed way.  I don't think
it's impossible to extend this model you have here to work in a
distributed way, though, so that will be something good to work on down
the line.

> Probably the most crucial thing is that we agree on some set of tags.
> Here is the set of tags I am working with (output from 
>      notmuch search --output=tags "*" | grep ^notmuch:: 
> )
> notmuch::bug   		     is a bug report
> 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
> The prefix "notmuch::" is hardcoded into the script, but everything
> else is easy to change with the usual notmuch operations.  Of course
> we can change the prefix too. I decided on :: because it needed less
> escaping.

I think these are a fine set to start with.

It might be nice to let the user configure what prefix they use
(ie. what goes before the "::" (currently "notmuch")).

Does this system support the removing of tags?  I guess I need to see
the documentation for the restore --match option...

It's too bad there's not a way to do scoped tag searches in notmuch
(ie. notmuch search tag:"notmuch::*").  Any idea how hard it would be to
support something like that?

> On think I'm not sure about is how to handle ideas like "voting", and
> "signing off" with tags. I suspect we can come up with some
> conventions like "notmuch::review1", or
> "notmuch::vote1".."notmuch::vote5". But maybe people have less kludgy
> ideas.

What issue are you trying to solve here?  Whatever it is, I don't think
I like enumerating tags as the solution.

Again, thanks so much for working on this, David.  This is going to be
very cool.  I really look forward to fleshing it out, and using it!

part-000.sig (application/pgp-signature)