Skip to content

Please document JSON file format compatibility rules #248

@smcv

Description

@smcv

Thanks for documenting the JSON file format specification - it's a useful resource, and I'm now trying to add a similar (but simpler) spec to GLVND for the EGL ICDs.

https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/LoaderAndLayerInterface.md#icd-manifest-file-format documents that the current file format is 1.0.0, but does not document what formats a consumer can assume to be compatible with the current format.

Similar code in GLVND says this:

The minor version number will be incremented if we ever add an optional
value to the JSON format that libEGL has to pay attention to. That is,
an older vendor library will still work, but a vendor library with a
newer format than this library understands should fail.

https://github.com/NVIDIA/libglvnd/blob/master/src/EGL/libeglvendor.c#L279

If the intention is to have the same versioning policy as GLVND/EGL, perhaps something like this would be appropriate:

Versions 1.0.x are required to be compatible with this specification, in the sense that a consumer that only implements file format version 1.0.0 will load all version 1.0.x JSON files successfully (a new micro version may add new fields but will not break compatibility with existing loaders). Newer major and minor versions might require loader changes.

(I'm not sure what the intended distinction is between major and minor versions, if an increment to the minor version is allowed to include incompatible changes.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions