C++ Logo

sg15

Advanced search

Re: Proposal for module metadata format to be used by the std library and others

From: Daniel Ruoso <daniel_at_[hidden]>
Date: Wed, 13 Dec 2023 08:22:30 -0500
On Wed, Dec 13, 2023, 02:36 Iain Sandoe via SG15 <sg15_at_[hidden]>
wrote:

> - A "current version" and a “minimum supported version", which means that
> this manifest would be a correct representation for a tool supporting
> “minimum supported version” (but might have some improved capability for
> later tools, supporting "current version").
>

The version in this case refers to the version of the schema.

That should indicate what fields are expected to be present, which fields
are optional, and what is the semantics of those fields

 - A clear rule that says how a tool supporting minimum but not current is
> to skip the data it does not recognise (and a mechanism for organising
> content that allows this).
>

The general expectation, as we discussed on the context of compatibility
for the Ecosystem IS, is that if the file has a new revision on the same
version, a tool that knows about an older revision should be able to parse
that file with the correct semantics while ignoring the fields it doesn't
know about.

That limits what kinds of changes can be done to the schema in a revision
increment.

If a change is not possible while maintaining that compatibility, then it
would need to be a new major version, and therefore the tool that doesn't
understand that version will not be able to process the file.

Daniel

>

Received on 2023-12-13 13:23:25