Re: [PATCH] Add --message-headers flag to notmuch-show

Subject: Re: [PATCH] Add --message-headers flag to notmuch-show

Date: Tue, 12 Nov 2019 17:19:13 -0500

To: Johan Parin,


From: Daniel Kahn Gillmor

On Tue 2019-11-12 20:24:12 +0100, Johan Parin wrote:
> I think this is quite basic functionality. All "nerdy" muas have it ;)
> Gnus has it, mu4e has it etc. mutt seems to have some reasonable default
> of at least displaying User-Agent. I think Thunderbird has it too. etc

Yes, and of course i accept that notmuch is a "nerdy" MUA.

> I really don't think the configurability is expensive.

To be clear, i'm suggesting that the code maintenance for the
configurability (and the API surface it creates) is what's expensive,
not that the code is particularly costly to run.

> b) notmuch-show.c exports a limited set of "interesting" headers. This
>    patch should be modified to set the headers in the config file. I
>    think this is a really good solution if you are concerned with
>    performance in a)

Are you sure you want the configuration in the config file and not in
the database itself?  we've had a bunch of discussion on-list about the
fact that the config data is split between the config file and the
database, and some of the config must live in the database (because the
config affects library operations, which do not read the config file).

Eventually, i hope we will consolidate on config-in-the-database, so
each additional piece of config we add to the configfile makes me sad.

furthermore, if we ever decide to remove these configuration options
(e.g. by switching to (a)), we'll end up making some users sad.  so it's
ongoing code maintenance even if most people don't use it :(

And, I still haven't heard any clear arguments for choosing between
configurability as an absolute thing or a differential thing.  They have
significantly different impact on adopters over time, as the default
configuration changes.

So, of the three options you list, i far prefer (a) because it doesn't
introduce any of the configurability maintenance or API complexity

If the main objection to (a) is performance regression, i'd like to see
some profiling of that performance cost, so we can better understand it.
Perhaps there's a different way to mitigate a performance regression.

signature.asc (application/pgp-signature)
notmuch mailing list