From 1c6195b9e35e511e115f94b45d97aa58ee41b307 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Sat, 15 Dec 2012 22:17:23 -0500 Subject: 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 | 2 ++ 1 file changed, 2 insertions(+) (limited to 'devel') diff --git a/devel/schemata b/devel/schemata index d1ab983a..292f2876 100644 --- a/devel/schemata +++ b/devel/schemata @@ -14,6 +14,8 @@ are interleaved. Keys are printed as keywords (symbols preceded by a colon), e.g. (:id "123" :time 54321 :from "foobar"). Null is printed as nil, true as t and false as nil. +This is version 1 of the structured output format. + Common non-terminals -------------------- -- cgit v1.2.3