From f25797f86976cbccf697d6df953154c5e59656e6 Mon Sep 17 00:00:00 2001 From: Rui Abreu Ferreira Date: Sun, 25 Sep 2016 18:46:37 +0100 Subject: api: Nvim version, API level #5386 The API level is disconnected from the NVIM version. The API metadata holds the current API level, and the lowest backwards-compatible level supported by this instance. Release 0.1.6 will be the first release reporting the Nvim version and API level. metadata['version'] = { major: 0, minor: 1, patch: 6, prerelease: true, api_level: 1, api_compatible: 0, } The API level may remain unchanged across Neovim releases if the API has not changed. When changing the API the CMake variable NVIM_API_PRERELEASE is set to true, and NVIM_API_CURRENT/NVIM_API_COMPATIBILITY are incremented accordingly. The functional tests check the API table against fixtures of past versions of Neovim. It compares all the functions in the old table with the new one, it does ignore some metadata attributes that do not alter the function signature or were removed since 0.1.5. Currently the only fixture is 0.mpack, generated from Neovim 0.1.5 with nvim --api-info. --- runtime/doc/api.txt | 1 + runtime/doc/msgpack_rpc.txt | 3 +++ 2 files changed, 4 insertions(+) (limited to 'runtime') diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index c3d7fdb35b..dd48a0c2a5 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -51,6 +51,7 @@ Tabpage -> enum value kObjectTypeTabpage Nvim exposes metadata about the API as a Dictionary with the following keys: +api_level API version compatibility information functions calling signature of the API functions types The custom handle types defined by Nvim error_types The possible kinds of errors an API function can exit with. diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt index b3fed9e756..bfd4100f15 100644 --- a/runtime/doc/msgpack_rpc.txt +++ b/runtime/doc/msgpack_rpc.txt @@ -168,6 +168,9 @@ API metadata object ~ API clients exist to hide msgpack-rpc details. The API metadata object contains information that makes this task easier (see also |rpc-types|): + - The "api_level" key contais API compatibility information. The "current" + key holds the API version supported Neovim. The "compatibility" key holds + the oldest supported API version. - The "functions" key contains a list of metadata objects for individual functions. - Each function metadata object has |rpc-types| information about the return -- cgit From c5f5f427c6f8d1b4136bf41171f8f0980561080e Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 26 Oct 2016 15:20:00 +0200 Subject: api: api_info()['version'] API level is disconnected from NVIM version. The API metadata holds the current API level, and the lowest backwards-compatible level supported by this instance. Release 0.1.6 is the first release that reports the Nvim version and API level. metadata['version'] = { major: 0, minor: 1, patch: 6, api_level: 1, api_compatible: 0, api_prerelease: false, } The API level may remain unchanged across Nvim releases if the API has not changed. When changing the API, - set NVIM_API_PRERELEASE to true - increment NVIM_API_LEVEL (at most once per Nvim version) - adjust NVIM_API_LEVEL_COMPAT if backwards-compatibility was broken api_level_0.mpack was generated from Nvim 0.1.5 with: nvim --api-info --- runtime/doc/api.txt | 8 ++++---- runtime/doc/msgpack_rpc.txt | 5 ++--- 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt index dd48a0c2a5..976b852bdb 100644 --- a/runtime/doc/api.txt +++ b/runtime/doc/api.txt @@ -51,10 +51,10 @@ Tabpage -> enum value kObjectTypeTabpage Nvim exposes metadata about the API as a Dictionary with the following keys: -api_level API version compatibility information -functions calling signature of the API functions -types The custom handle types defined by Nvim -error_types The possible kinds of errors an API function can exit with. +version Nvim version, API level/compatibility +functions API function signatures +types Custom handle types defined by Nvim +error_types Possible error types returned by API functions This metadata is mostly useful for external programs accessing the API via RPC, see |rpc-api|. diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt index bfd4100f15..757f5574d4 100644 --- a/runtime/doc/msgpack_rpc.txt +++ b/runtime/doc/msgpack_rpc.txt @@ -168,9 +168,8 @@ API metadata object ~ API clients exist to hide msgpack-rpc details. The API metadata object contains information that makes this task easier (see also |rpc-types|): - - The "api_level" key contais API compatibility information. The "current" - key holds the API version supported Neovim. The "compatibility" key holds - the oldest supported API version. + - The "version" key contains the Nvim version, API level, and API + backwards-compatibility level. - The "functions" key contains a list of metadata objects for individual functions. - Each function metadata object has |rpc-types| information about the return -- cgit