Beta 14 - October 2021
Pre-release
Pre-release
Summary
This release has a number of features, including many backend features that upgrade the CI, build, and release process. Big thanks especially to @KarthikRIyer, @darbyjohnston and @JeanChristopheMorinPerso for their contributions in this and other areas.
Big Things
- Drop 36 support for 38, following the VFX platform by @ssteinbach in #787
- add windows and mac builds to ci by @ssteinbach in #873
- Add filebundle (otioz and otiod) adapters by @ssteinbach in #561
- Cxx examples by @darbyjohnston in #918
- Add doxygen to document cpp code by @hisergiorojas in #878
- Build wheels as a github action by @reinecke in #957
- Implement OTIO to SVG adapter by @KarthikRIyer in #1038
- Create wheels on Windows by @JeanChristopheMorinPerso in #1015
- Support Python 3.9 by @JeanChristopheMorinPerso in #1080
- PyPI publish on release by @JeanChristopheMorinPerso in #1110
- Add .clang-format file by @KarthikRIyer in #707
Other Changes
- Create GitHub Actions Workflow by @KarthikRIyer in #752
- xges: Add support for image sequences by @thiblahute in #792
- FIxed invalid timecode frame number error message by @reinecke in #795
- Update doc string for otio.algorithms.track_with_expanded_transitions() by @apetrynet in #794
- Fix a link in documentation (to serialized schema tutorial) by @Simran-B in #808
- Added a note about CLA requirement to PR template. by @jminor in #810
- Update flatten_video_tracks.py to use deepcopy. by @jminor in #812
- Retire Travis, in favor of GitHub Actions by @jminor in #817
- CMake: Set "ARCHIVE DESTINATION" in install section by @itsmattkc in #803
- Fcp 7 xml better generator support by @reinecke in #802
- Prefix
_TypeRecord
constructor params to avoid shadow warnings by @Simran-B in #825 - Python 3 deprecation fixes (including Preparing for Python 3.9) by @reinecke in #820
- Fix compilation of Swift bindings by @meshula in #834
- Cmake cleanup by @meshula in #837
- Document Metadata structure by @jminor in #861
- Added docstrings to python bindings for interval algebra methods in TimeRange by @reinecke in #789
- Check rate and value are not invalid by @hisergiorojas in #867
- Kdenlive linear timewarp by @splidje in #869
- from_start_end_time_inclusive by @splidje in #868
- detect cycles by @davidbaraff in #848
- remove swift bindings and legacy macosx-build directory by @ssteinbach in #871
- Revert the location of shared libraries by @ssteinbach in #883
- Remove tox dependency by @ssteinbach in #882
- Support --prefix correctly in new cmake system by @ssteinbach in #886
- CMake: Fix message() types by @Simran-B in #879
- FCP 7 XML: Fixed resolution of start timecode for certain NTSC rate clips by @reinecke in #843
- Fix Issue #881 by @meshula in #887
- Fix ImageSequenceReference implicit cast by @reinecke in #889
- ImageSequenceReference: Added handling for empty target_url_base by @reinecke in #891
- Enable xges unit tests on all platform/python versions by @thiblahute in #894
- quiet the aaf adapter test to clean up test output by @ssteinbach in #893
- Fix escaping for ORIGIN in rpath settings by @ssteinbach in #899
- Update build status badge to use GitHub Actions instead of Travis by @jminor in #898
- CMakeTexts fix: stop using the modname variable by @ssteinbach in #900
- Don't override user supplied C++ preferences by @nporcino-pixar in #902
- Create cmake alias targets for the OTIO namespace by @nporcino-pixar in #901
- Address big integers bug by @ssteinbach in #892
- add a --version flag to otiopluginfo + otioconvert by @ssteinbach in #880
- Change cmx_3600 adapter to use transition duration frames (Issue #895) by @JoshBurnell in #896
- Add include directories for OpenTimeConfig.cmake/OpenTimelineIOConfig… by @darbyjohnston in #916
- Documentation fixes by @darbyjohnston in #914
- Avoid exporting build tree libraries by @rogernelson in #911
- Issue 912: cmx_3600 adapter incorrectly processing three-clip transitions by @JoshBurnell in #919
- Add pybind11 subdirectory only if building python bindings by @KarthikRIyer in #927
- Add an env var to disable pkg_resources by @ssteinbach in #928
- Specify pyaaf2 requirement as a minimum version by @AWhetter in #906
- Add dependabot by @ssteinbach in #931
- add interval field to dependabot yaml by @ssteinbach in #933
- Removed inadvertent unicode char by @avrata in #939
- RV adapter fix: don't require having access to OTIO from python interpreter in rv by @ssteinbach in #941
- Ascii doc fix by @avrata in #947
- Add environment variable to skip doc tes by @ssteinbach in #944
- Localize test otiod/z test data to sample_data directory by @avrata in #942
- Use Pybind11's find python tool to correctly locate python install information by @Tilix4 in #950
- Add Try/Except around imporlib.reload for unit test to run in python2.7 as well as 3.4+ by @avrata in #949
- install mock on CI builds for python 2.7 by @ssteinbach in #951
- Refactor setup.py to build and stage into temp area for setup.py to install from by @reinecke in #956
- uncomment github actions dependabot config by @ssteinbach in #958
- Only load a manifest if it has not been loaded by @ssteinbach in #945
- make Timeline::set_tracks(null_ptr) create a new Stack to fix crash by @meshula in #961
- Fix typo in setup.py that prevents conda skeleton from parsing setup.py by @vvzen in #962
- Add support for multiple timecode objects in an AAF by @stefanschulze in #966
- Add C++ convenience wrapper for .value on the retainer class by @darbyjohnston in #923
- do not upload code coverage statistics if the PR is opened by dependabot by @ssteinbach in #971
- Force pybind to use same python as otio by @rogernelson in #986
- C++ binding Docstring Update by @Viraj-Rana008 in #983
- Add C++ implementation of each_child()/each_clip() by @darbyjohnston in #926
- Cxx conform example by @darbyjohnston in #995
- add example timeline builder by @ssteinbach in #993
- Remove CXX sdk in Python site-packages by @rogernelson in #1004
- Python build: Use CMake FindPython by @JeanChristopheMorinPerso in #1000
- Replace description-file setuptools metadata key with description_file in setup.cfg by @JeanChristopheMorinPerso in #1017
- Add Makefile target "make format" by @KarthikRIyer in #1023
- Use const references when catching exceptions by @darbyjohnston in #1034
- Remove unused source file "main.cpp" by @darbyjohnston in #1036
- Added linguist override to detect .otio files for JSON highlighting by @reinecke in #1032
- update outdated python module paths in docs by @ssteinbach in #1052
- Upgrade to C++14 by @darbyjohnston in #1069
- Fix failing import of opentimelineio in Python 3.9 on Windows by @JeanChristopheMorinPerso in #1070
- Fix CMP0010 CMake warning caused by back slashes on Windows by @JeanChristopheMorinPerso in #1076
- replace spaces with tabs in Makefile format: target by @darbyjohnston in #1072
- Make target for building wheel by @smaragden in #1031
- Makefile "format" target tuning by @ssteinbach in #1079
- Unicode file names on Windows by @darbyjohnston in #1081
- Add information on VFX platform support to repo by @ssteinbach in #1091
- Add constexpr/noexcept by @darbyjohnston in #1047
- Add ImageSequenceReference support to EDL adapter by @apetrynet in #804
- Added
SourceMobUsage
metadata to AAF clips by @timlehr in #1056 - Fix missing Python coverage in Codecov reports by @JeanChristopheMorinPerso in #1040
- Issue1096 add source range to build simple timeline.py by @ssteinbach in #1101
- Updated CONTRIBUTING with names of the project committers. by @reinecke in #1104
- add is_error and fix error handling by @darbyjohnston in #1061
- allow commandline arguments to be passed through to cmake by @ssteinbach in #1006
- Add missing error check in flatten example/stackAlgorithm by @ssteinbach in #1112
- Remove vestigal python install code from CMake build system by @ssteinbach in #1113
- add build job that just builds c++ by @ssteinbach in #1093
- Remove duplicate error code NON_DROPFRAME_RATE. by @ssteinbach in #1114
- hide stringUtils.h by @ssteinbach in #1115
- Copy adapter arguments by @ssteinbach in #1117
- Bake OS versions in CI before release by @JeanChristopheMorinPerso in #1116
- overload RationalTime.from_seconds with additional rate argument by @apetrynet in #1118
- a few more places to lock the version by @ssteinbach in #1120
- publish to release Pypi by @ssteinbach in #1124
- Apply
make format
to codebase by @ssteinbach in #1088 - code changes for changing the name of the "master" branch to "main" by @ssteinbach in #1122
- Update the README and CONTRIBUTORS pre-release. by @ssteinbach in #1126
- strip the .dev1 suffix in setup.py by @ssteinbach in #1127
New Contributors
- @Simran-B made their first contribution in #808
- @itsmattkc made their first contribution in #803
- @hisergiorojas made their first contribution in #867
- @splidje made their first contribution in #869
- @nporcino-pixar made their first contribution in #902
- @AWhetter made their first contribution in #906
- @dependabot made their first contribution in #934
- @Tilix4 made their first contribution in #950
- @Viraj-Rana008 made their first contribution in #983
- @JeanChristopheMorinPerso made their first contribution in #1000
- @smaragden made their first contribution in #1031
Full Changelog: v0.13...v0.14