Beta 16 - April 2024
Pre-releaseSummary
This release moves from the third party any and optional to C++17 std::any
and std::optional
(by @darbyjohnston) as well as a collection of enhancements in how the python bindings handle type conversion with C++ (by @JeanChristopheMorinPerso) and the addition of comment
to the Marker
schema (by @nickblt).
This release also includes an experimental set of editing commands (by @ggarra13) in C++. These are a new set of APIs intended to implement some common editing commands (insert, overwrite, roll, etc.) backed by the OpenTimelineIO data model. These APIs are meant to provide an opportunity to try the concepts and form a base to iterate on, however there may be breaking changes as they evolve.
Important Note About Adapters
This will be the last release to include the full set of adapters. In the next release, most of the adapters will move out into their own PyPI packages as optional plugins.
tl;dr - if you rely on the adapters, please use the OpenTimelineIO-Plugins
PyPI package to ensure you continue to receive them after this release.
The OpenTimelineIO native file format adapters will still be present in the opentimelineio
python package. These adapters are:
- otio_json
- otiod
- otioz
To get the full set of OTIO adapters, use the OpenTimelineIO-Plugins python package. In addition to the OpenTimelineIO native adapters, you'll also get:
- AAF
- ale
- burnins
- cmx_3600
- fcp_xml
- fcpx_xml
- hls_playlist
- maya_sequencer
- svg
- xges
The following are not included in the OTIO-maintained top-level packages:
- kdenlive - Now hosted and supported under the KDE repository
- rv_session - This adapter was made obsolete by first-party support of OpenTimelineIO in Shotgrid RV and OpenRV
To experiment with what this looks at, check out the 0.17.0 Pre-Release - packages are provided on PyPI to try out.
Big Changes
- Remove python2.7 support by @ssteinbach in #1423
- Remove Kdenlive adapter for split out by @jlskuz in #1438
- Add support for editable installs by @JeanChristopheMorinPerso in #1460
- Add Python 3.11 to CI matrix by @JeanChristopheMorinPerso in #1465
- Add support for Premiere styled EDLs to the CMX 3600 adapter by @douglascomet in #1199
- Added --downgrade option to otiotool. by @jminor in #1485
- Added otiotool --remove-metadata-key option by @jminor in #1642
- Experimental Editing Commands by @ggarra13 in #1654
- Add optional comment field to Marker by @nickblt in #1698
- Added support to filepath_from_url for UNC paths and tests for UNC and posix paths by @douglascomet in #1674
- Support for C++17 Part 2 by @darbyjohnston in #1713
Breaking Changes
- [Breaking change] Remove support for passing a None value as the name argument by @JeanChristopheMorinPerso in #1453
- Remove deprecated each_child and each_clip functions by @darbyjohnston in #1437
Other Changes
- Script-assisted release process by @ssteinbach in #1421
- Initialize v0.16 by @ssteinbach in #1424
- Bump codecov/codecov-action from 2.1.0 to 3.1.1 by @dependabot in #1399
- Bump actions/upload-artifact from 2 to 3 by @dependabot in #1269
- Remove Travis traces by @ssteinbach in #1412
- Add documentation for new schema development/proposal process by @ssteinbach in #1429
- Bump myst-parser from 0.17.2 to 0.18.1 by @dependabot in #1431
- Bump actions/setup-python from 3 to 4.1.0 by @dependabot in #1351
- remove cp27 builds from CI by @ssteinbach in #1435
- Bump pypa/cibuildwheel from 1.12.0 to 2.10.2 by @dependabot in #1420
- Bump sphinx from 4.5.0 to 5.2.2 by @dependabot in #1434
- Remove Plugin schema
execution_scope
parameter by @ssteinbach in #1428 - Bump src/deps/pybind11 from
914c06f
toda8c730
by @dependabot in #1439 - Improve test coverage by @JeanChristopheMorinPerso in #1436
- remove more python2/3 shim code: next -> next by @ssteinbach in #1432
- Bump actions/setup-python from 4.1.0 to 4.2.0 by @dependabot in #1441
- Improve type of function callbacks in register_upgrade_function and register_downgrade_function by @JeanChristopheMorinPerso in #1445
- README: Fix typo (pypy->pypi) by @dgw in #1447
- Replace py::object type by optionalstd::string for name parameters by @JeanChristopheMorinPerso in #1446
- Use glossary terms for environment variables references in the docs by @JeanChristopheMorinPerso in #1442
- fcp_xml: serialize marker out value instead of -1 by @jhorrocks-tl in #1411
- Bump sphinx from 5.2.2 to 5.2.3 by @dependabot in #1440
- Don't override iter methods by @JeanChristopheMorinPerso in #1444
- Improve typing of the drop_frame parameter on the RationalTime.to_timecode method by @JeanChristopheMorinPerso in #1443
- Improve types of childen, tracks, effects and markers parameters in function signatures by @JeanChristopheMorinPerso in #1448
- Bump actions/setup-python from 4.2.0 to 4.3.0 by @dependabot in #1450
- Bump src/deps/pybind11 from
da8c730
to7c6f2f8
by @dependabot in #1449 - Bump pypa/cibuildwheel from 2.10.2 to 2.11.1 by @dependabot in #1451
- Bump src/deps/Imath from
3ad5d4d
to6add873
by @dependabot in #1455 - Bump src/deps/optional-lite from
5e4b776
tobe720eb
by @dependabot in #1456 - Bump sphinx from 5.2.3 to 5.3.0 by @dependabot in #1457
- Bump src/deps/pybind11 from
7c6f2f8
to964c499
by @dependabot in #1454 - Bump src/deps/pybind11 from
964c499
to5bc0943
by @dependabot in #1471 - Bump src/deps/Imath from
6add873
to443b7f0
by @dependabot in #1472 - Bump src/deps/pybind11 from
5bc0943
toee2b522
by @dependabot in #1476 - Switch to using
importlib
frompkg_resources
by @mikemahony in #1469 - Reworded error message by @jminor in #1482
- Remove RV adapter and example plugin by @jminor in #1480
- Bump src/deps/Imath from
443b7f0
to0436624
by @dependabot in #1484 - Added --relink-by-name feature to otiotool by @jminor in #1475
- Bump src/deps/pybind11 from
ee2b522
to9727dcd
by @dependabot in #1498 - Bump src/deps/Imath from
0436624
tofcb8a32
by @dependabot in #1509 - Bump src/deps/pybind11 from
9727dcd
to0694ec6
by @dependabot in #1508 - Use duration() as a virtual function by @darbyjohnston in #1514
- Docs: Line wrap long lines of text for a display by @ThomasWilshaw in #1140
- Added new TSC members and new Committers by @jminor in #1531
- Replaced clip_if() with find_clips() in sample code in README.md by @jminor in #1541
- Use the C++ override keyword by @darbyjohnston in #1543
- Bump src/deps/Imath from
fcb8a32
toe52b07d
by @dependabot in #1552 - Bump src/deps/Imath from
e52b07d
to5b8627a
by @dependabot in #1556 - Fix exception when doc is None with portable Python by @robbiesz in #1550
- Bump src/deps/pybind11 from
0694ec6
to4ce0517
by @dependabot in #1573 - Make serialize_json_to_string output compact when indent is less than 1 by @JeanChristopheMorinPerso in #1578
- Support compiling with GCC 13 by @JeanChristopheMorinPerso in #1605
- Fix rendering of otioz file bundle structure in the docs by @JeanChristopheMorinPerso in #1606
- Adjust license for package uploaded to PyPI by @JeanChristopheMorinPerso in #1598
- Use IMATH_NAMESPACE in place of Imath by @peter-targett in #1613
- CMake config file improvements to find dependencies automatically for consumers by @foundry-markf in #1640
- fix a bug in the docs for using schema downgrading by @ssteinbach in #1641
- Add C++17 guard to casters.h by @ssteinbach in #1646
- stray prints in the tests by @ssteinbach in #1648
- Pre-release repo cleanup - 0.16.0 by @reinecke in #1666
- Adds support to
filepath_from_url
to support non-encoded URLs by @douglascomet in #1664 - Replaced usages of deprecated pkg_resources module by @reinecke in #1675
- Add utility functions for comparison and rounding by @darbyjohnston in #1623
- Updated TSC chair in GOVERNANCE.md by @reinecke in #1682
- add rendering notes by @meshula in #1679
- Python 3.12 support / imp module deleted by @EvanBldy in #1669
- fix: Bumped cibuildwheel action to 2.16.5 to address windows build issues by @reinecke in #1699
- Updated issue and PR templates to be a bit more approachable by @reinecke in #1700
- Fix non latin symbols decoding in adapters by @kalemas in #1691
- Normalize track lengths with gaps before flatten stacks by @markreidvfx in #1703
- Redact media reference names by @peter-targett in #1712
- Fixed AttributeError: editable_mode in setup.py by @reinecke in #1715
- Release v0.16.0 changes by @reinecke in #1716
New Contributors
- @dgw made their first contribution in #1447
- @jhorrocks-tl made their first contribution in #1411
- @douglascomet made their first contribution in #1199
- @robbiesz made their first contribution in #1550
- @peter-targett made their first contribution in #1613
- @foundry-markf made their first contribution in #1640
- @ggarra13 made their first contribution in #1654
- @EvanBldy made their first contribution in #1669
- @nickblt made their first contribution in #1698
- @kalemas made their first contribution in #1691
Full Changelog: v0.15...v0.16.0