cli: Separate current and deprecated format version

Previously, the CLI would print a deprecation warning if a client
requested any format version other than the current one.  However, if
we add fields that are backwards-compatible, but want clients to be
able to depend on, we need to bump the version, but that doesn't make
the older version deprecated.

Hence, separate out the "minimum active" version and only print a
warning for requests below this version number.
This commit is contained in:
Austin Clements 2013-10-24 11:19:02 -04:00 committed by David Bremner
parent ec630c6635
commit a24cd45568
2 changed files with 7 additions and 1 deletions

View file

@ -142,6 +142,12 @@ chomp_newline (char *str)
/* The minimum supported structured output format version. Requests /* The minimum supported structured output format version. Requests
* for format versions below this will return an error. */ * for format versions below this will return an error. */
#define NOTMUCH_FORMAT_MIN 1 #define NOTMUCH_FORMAT_MIN 1
/* The minimum non-deprecated structured output format version.
* Requests for format versions below this will print a stern warning.
* Must be between NOTMUCH_FORMAT_MIN and NOTMUCH_FORMAT_CUR,
* inclusive.
*/
#define NOTMUCH_FORMAT_MIN_ACTIVE 1
/* The output format version requested by the caller on the command /* The output format version requested by the caller on the command
* line. If no format version is requested, this will be set to * line. If no format version is requested, this will be set to

View file

@ -127,7 +127,7 @@ by the notmuch CLI (it requires at least version %d). You may need to\n\
upgrade your notmuch front-end.\n", upgrade your notmuch front-end.\n",
notmuch_format_version, NOTMUCH_FORMAT_MIN); notmuch_format_version, NOTMUCH_FORMAT_MIN);
exit (NOTMUCH_EXIT_FORMAT_TOO_OLD); exit (NOTMUCH_EXIT_FORMAT_TOO_OLD);
} else if (notmuch_format_version != NOTMUCH_FORMAT_CUR) { } else if (notmuch_format_version < NOTMUCH_FORMAT_MIN_ACTIVE) {
/* Warn about old version requests so compatibility issues are /* Warn about old version requests so compatibility issues are
* less likely when we drop support for a deprecated format * less likely when we drop support for a deprecated format
* versions. */ * versions. */