Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Versioning of specs #55

Open
2 tasks
cconcolato opened this issue Apr 20, 2023 · 6 comments
Open
2 tasks

Versioning of specs #55

cconcolato opened this issue Apr 20, 2023 · 6 comments

Comments

@cconcolato
Copy link
Member

  • Add a JSON mode for cw list
  • Add spec version in JSON reports
@cconcolato
Copy link
Member Author

The design principles regarding versioning are:

  • CW only supports 1 version of a given spec, latest editions are considered backwards compatible, and if not it is the responsibility of spec editors to handle consequences
  • We keep implementation of draft specs of new versions in a branch and merge when the spec is published
  • we hope that sponsor/contributors for a given spec also sponsor/contributes updates to dependent specs

@bradh
Copy link
Contributor

bradh commented Apr 28, 2023

Another option would be to put the version into the spec. So if you want to update to ISO BMFF v8, the spec name would be isobmff_v8.

The reason for suggesting that is to ensure that newer capabilities aren't used by dependent formats e.g. if HEIF Ed 2 points to ISOBMFF Ed 7 (i.e. 2022), and it is not valid to use ISO BMFF Ed 8 (notional 2023+) capabilities in HEIF Ed 2.

@rbouqueau
Copy link
Member

Any opinion on @bradh's remark?

@cconcolato
Copy link
Member Author

The reason for suggesting that is to ensure that newer capabilities aren't used by dependent formats e.g. if HEIF Ed 2 points to ISOBMFF Ed 7 (i.e. 2022), and it is not valid to use ISO BMFF Ed 8 (notional 2023+) capabilities in HEIF Ed 2.

I think that is partially incorrect. HEIF refers to an undated version of ISOBMFF. So whatever changes are made in ISOBMFF, they are carried and valid in HEIF. I think this is generally the case for how specs refer to other specs. I understand that this can be a problem because implementations can then rarely be complete. To avoid that, a downstream specifcation can:
a) use a dated reference to an upstream specification. This has drawbacks. For example, if the upstream specification is corrected the corrections are not applicable. Another example is if a third downstream spec refers to these 2 specs but as undated versions. There is then ambiguity regarding the features of the base spec.
b) clearly define what features of the upstream specifications are supported. For example, for derived specifications based on ISOBMFF this means that a derived specification should indicate the exact boxes and versions that are supported (and typically define a brand for that). This is what CMAF and MIAF are trying to do. It might not be perfect, but it is preferred approach at the moment.

@bradh
Copy link
Contributor

bradh commented Jun 1, 2023

Concur. However there are cases where it does reference a dated version (e.g. ISO/IEC 15444-16:2021 references ISO/IEC 23008-12:2017, not 2022; and 23008-12:2017 references 14496-12:2015).

@rbouqueau
Copy link
Member

I feel like this is quite clear, except for @bradh 's remark. Is anyone able to clarify?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants