AcademySoftwareFoundation / AcademySoftwareFoundation/OpenTimelineIO
C++ API should honor OTIO_DEFAULT_TARGET_VERSION_FAMILY_LABEL environment variable
- 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
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