cli: Framework for structured output versioning
authorAustin Clements <amdragon@MIT.EDU>
Sun, 16 Dec 2012 03:17:23 +0000 (22:17 -0500)
committerDavid Bremner <bremner@debian.org>
Sun, 16 Dec 2012 21:20:33 +0000 (17:20 -0400)
commit1c6195b9e35e511e115f94b45d97aa58ee41b307
treeb51eed0180afeb9d78523436841262a9f2795492
parent1e12b91b3cf823d21f7edf8c0f1c687df56fec14
cli: Framework for structured output versioning

Currently there is a period of pain whenever we make
backward-incompatible changes to the structured output format, which
discourages not only backward-incompatible improvements to the format,
but also backwards-compatible additions that may not be "perfect".  In
the end, these problems limit experimentation and innovation.

This series of patches introduces a way for CLI callers to request a
specific format version on the command line and to determine if the
CLI does not supported the requested version (and perhaps present a
useful diagnostic to the user).  Since the caller requests a format
version, it's also possible for the CLI to support multiple
incompatible versions simultaneously, unlike the alternate approach of
including version information in the output.

This patch lays the groundwork by introducing a versioning convention,
standard exit codes, and a utility function to check the requested
version and produce standardized diagnostic messages and exit
statuses.
devel/schemata
notmuch-client.h
notmuch.c