[PATCH 00/10] CLI output versioning

Subject: [PATCH 00/10] CLI output versioning

Date: Sun, 02 Dec 2012 19:58:55 -0500

To: notmuch@notmuchmail.org

Cc:

From: Austin Clements


(Sorry; I forgot to include a cover letter.)

This series is intended to help with our long-standing output format
versioning issue.  While the JSON format is amenable to extension,
there's still a high barrier to extensions because of the need to
support them going forward, and an even higher barrier to modifications
that break backwards compatibility.  Versioning will make the format
more dynamic, enabling us to easily improve and iterate on it.  It will
also address the slew of confusing bugs that people encounter when they
use a mismatched CLI and front-end.

On IRC we've talking about adding version information to the output
format itself.  This series takes a different and, I think, better
approach: callers request a specific output format version on the
command line.  This allows notmuch to remain backwards compatible with
older format versions when it's easy or necessary.  This also doesn't
require shoehorning a version number into the output, which would be
awkward for both the CLI and the consumer.

I called the argument --use-schema, but I'm open to other suggestions.
--use-schema is technically accurate, but perhaps not as self-describing
as something like --schema-version or --format-version (to parallel
--format).

Thread: