Skip to content

Conversation

jminor
Copy link
Collaborator

@jminor jminor commented Sep 23, 2022

In order to ensure that users can downgrade to 0.14.0 easily, this PR adds a version_manifest entry for "0.14.0" which specifies the schema versions prior to the new Clip.2 multiple media reference feature #1241

In addition, this PR updates the documentation to clearly show how to use the downgrade system at runtime (either via environment variable, or via otioconvert).

@jminor jminor requested a review from ssteinbach September 23, 2022 20:37
@ssteinbach ssteinbach added this to the Public Beta 15 milestone Sep 23, 2022
Copy link
Collaborator

@ssteinbach ssteinbach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once you run the make target for updating the file, it should be good to go. A stray Test schema also slipped into the list

@codecov-commenter
Copy link

codecov-commenter commented Sep 23, 2022

Codecov Report

Merging #1415 (47da7d8) into main (b9c2aa2) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #1415   +/-   ##
=======================================
  Coverage   86.06%   86.06%           
=======================================
  Files         201      201           
  Lines       21062    21062           
  Branches     2461     2461           
=======================================
  Hits        18127    18127           
  Misses       2333     2333           
  Partials      602      602           
Flag Coverage Δ
py-unittests 86.06% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b9c2aa2...47da7d8. Read the comment docs.

@jminor jminor marked this pull request as ready for review September 23, 2022 22:17
Copy link
Collaborator

@ssteinbach ssteinbach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Signed-off-by: Joshua Minor <[email protected]>
@ssteinbach ssteinbach merged commit 419ab8e into AcademySoftwareFoundation:main Sep 23, 2022
namespace opentimelineio { namespace OPENTIMELINEIO_VERSION {

const label_to_schema_version_map CORE_VERSION_MAP {
{ "0.14.0",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also have 0.14.1?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question, @JeanChristopheMorinPerso. It would be identical to 0.14.0 right? Should we include every release from now on, or just add one when a schema changes?

Copy link
Member

@JeanChristopheMorinPerso JeanChristopheMorinPerso Sep 26, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm under the impression we don't need 0.14.1 since it only contains bug fixes. But I prefer to ask just in case. Having all versions might make it easier for users to just say "write an OTIO file using that version" without knowing which version contained schema changes. But at the same time it's not like it's really difficult to get this map and figure out pretty quickly which version is required.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Design notes:

  • for this release, I think leaving it like this is fine, since we're backporting it anyway and don't have a strategy
  • I think as a project we should have a discussion. There are two strategies that I can think of off the top of my head:
    • we base everything off the library release version:
      • every release gets an entry
      • +: its straightforward, the only thing anyone needs to know is what version of the library you have
      • -: (potential) we'll end up with a lot of entries that are the same
      • -: (potential) we conflate software release with schema changes (less obvious when things are actually incompatible schema-wise
    • we create a separate "schema version":
      • +: Clear when things actually change
      • +: might be more straightforward for nontechnical end users building pipelines
      • -: adds another version number to track for folks, need to add tools for getting it and possibly recording it, etc.

MichaelPlug pushed a commit to MichaelPlug/OpenTimelineIO that referenced this pull request Aug 5, 2023
)

* Added OTIO_CORE 0.14.0 version_manifest.
* Adding instructions for runtime downgrading to versioning-schemas.md
* Removed Test schema from 0.14.0 version manifest.

Signed-off-by: Joshua Minor <[email protected]>
Signed-off-by: Michele Spina <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

4 participants