AcademySoftwareFoundation / AcademySoftwareFoundation/OpenTimelineIO

C++ API should honor OTIO_DEFAULT_TARGET_VERSION_FAMILY_LABEL environment variable

Open
#1,636 3 comments 0 reactions 0 assignees View on GitHub
bug needs discussion
Dominant language
C++
Stars
2k
Forks
351
Avg merge
1d 12h
Merged PRs (30d)
1

Description

The OTIO schema versioning system (documented [here](https://opentimelineio.readthedocs.io/en/stable/tutorials/versioning-schemas.html)) provides a mechanism for causing software to output older schema versions. The environment variable OTIO_DEFAULT_TARGET_VERSION_FAMILY_LABEL can be set to control this behavior. However, that environment variable is only used in OTIO's Python layer, which means that applications built on OITO's C++ API don't honor that setting.

This discrepancy creates difficulty for pipelines that use a mixture of software, some using OTIO via Python, and some using OTIO via C++. In order to uniformly control the emitted OTIO schema version, C++ applications need to be modified and/or OTIO files need to be converted via `otiotool` or `otioconvert` after they are written to disk.

This situation would be much easier to deal with if the OTIO C++ layer honored the OTIO_DEFAULT_TARGET_VERSION_FAMILY_LABEL environment variable in the same way that the Python layer does.

Contributor guide

Open the contributing guide

Research direction

Start by comparing how the Python layer reads OTIO_DEFAULT_TARGET_VERSION_FAMILY_LABEL with the C++ API's schema-version handling; the issue also identifies otiotool and otioconvert as related entry points. Done means C++ applications honor the environment variable consistently with Python, without requiring post-processing of written files.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
api
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.