Skip to content

Commit

Permalink
Release v0.15.0 changes (AcademySoftwareFoundation#1403)
Browse files Browse the repository at this point in the history
* freeze versions ahead of release
* remove path
* remove .dev1 suffix
* bump version number in CMakeLists.txt to 0.15
* Update README.md
* Update CONTRIBUTORS.md
* update supported VFX platform list
* add link to Presentations wiki page
* tweak some settings in clang format
* Run make format over the c++ code
* match autoformatted C++ in the version map

Signed-off-by: Stephan Steinbach <[email protected]>
Co-authored-by: Nick Porcino <[email protected]>
Signed-off-by: Michele Spina <[email protected]>
  • Loading branch information
2 people authored and MichaelPlug committed Aug 5, 2023
1 parent 595fd4d commit b0420a1
Show file tree
Hide file tree
Showing 52 changed files with 914 additions and 791 deletions.
8 changes: 4 additions & 4 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ AlignConsecutiveDeclarations: true
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
# AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
# AllowAllConstructorInitializersOnNextLine: true
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: InlineOnly
Expand Down Expand Up @@ -39,7 +39,7 @@ BraceWrapping:
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBinaryOperators: None
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name: OpenTimelineIO
# for configuring which build will be a C++ coverage build / coverage report
env:
GH_COV_PY: 3.7
GH_COV_OS: ubuntu-latest
GH_COV_OS: ubuntu-20.04
GH_DEPENDABOT: dependabot

on:
Expand All @@ -24,15 +24,15 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-20.04, windows-2022, macos-11]
# Unfortunately the CMake test target is OS dependent so we set it as
# a variable here.
include:
- os: ubuntu-latest
- os: ubuntu-20.04
OTIO_TEST_TARGET: test
- os: windows-latest
- os: windows-2022
OTIO_TEST_TARGET: RUN_TESTS
- os: macos-latest
- os: macos-11
OTIO_TEST_TARGET: test

env:
Expand Down Expand Up @@ -86,13 +86,13 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-20.04, windows-2022, macos-11]
python-version: ['2.7', '3.7', '3.8', '3.9', '3.10']
include:
- { os: ubuntu-latest, shell: bash }
- { os: macos-latest, shell: bash }
- { os: windows-latest, shell: pwsh }
- { os: windows-latest, shell: msys2, python-version: 'mingw64' }
- { os: ubuntu-20.04, shell: bash }
- { os: macos-11, shell: bash }
- { os: windows-2022, shell: pwsh }
- { os: windows-2022, shell: msys2, python-version: 'mingw64' }

defaults:
run:
Expand Down Expand Up @@ -129,7 +129,7 @@ jobs:
sudo apt-get install lcov
- name: Install python build dependencies
run: |
python -m pip install --upgrade pip setuptools wheel flake8>=3.5 check-manifest
python -m pip install --upgrade pip setuptools wheel "flake8>=3.5" check-manifest
- name: install mock for python 2.7 tests only
if: matrix.python-version == 2.7
run: python -m pip install --upgrade mock
Expand Down Expand Up @@ -158,7 +158,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-20.04, windows-2022, macos-11]
python-build: ['cp27*', 'cp37*', 'cp38*', 'cp39*', 'cp310*']
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -206,7 +206,7 @@ jobs:

package_sdist:
needs: py_build_test
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.18.2)
# TODO: read this information from a configuration file, here, and in setup.py

set(OTIO_VERSION_MAJOR "0")
set(OTIO_VERSION_MINOR "14")
set(OTIO_VERSION_MINOR "15")
set(OTIO_VERSION_PATCH "0")
set(OTIO_VERSION ${OTIO_VERSION_MAJOR}.${OTIO_VERSION_MINOR}.${OTIO_VERSION_PATCH})

Expand Down
15 changes: 13 additions & 2 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,29 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Aditya Rana ([Viraj-Rana008](https://github.com/Viraj-Rana008))
* Alex Schworer ([schworer](https://github.com/schworer))
* Alex Widener ([boredstiff](https://github.com/boredstiff))
* Andrew Moore ([andrewmoore-nz](https://github.com/andrewmoore-nz))
* Ashley Whetter ([AWhetter](https://github.com/AWhetter))
* Bas Hesen ([bashesenaxis](https://github.com/bashesenaxis))
* Bonnie Tai ([bonpix](https://github.com/bonpix))
* Cameron Kerr ([camkerr](https://github.com/camkerr))
* Daniel Flehner Heen ([apetrynet](https://github.com/apetrynet))
* Darby Johnston ([darbyjohnston](https://github.com/darbyjohnston))
* Darwyn Peachey ([peachey](https://github.com/peachey))
* David Baraff ([davidbaraff](https://github.com/davidbaraff))
* Ed Caspersen ([repsac](https://github.com/repsac))
* Emile Labrosse ([elabrosseRodeofx](https://github.com/elabrosseRodeofx))
* Eric ([eric-with-a-c](https://github.com/eric-with-a-c))
* Eric Desruisseaux ([desruie](https://github.com/desruie))
* Eric Reinecke ([reinecke](https://github.com/reinecke))
* Félix Bourbonnais ([BadSingleton](https://github.com/BadSingleton))
* Félix David ([Tilix4](https://github.com/Tilix4))
* Flavian Liger ([flavienliger](https://github.com/flavienliger))
* Fredrik Brännbacka ([smaragden](https://github.com/smaragden))
* Freeson Wang ([freesonluxo](https://github.com/freesonluxo))
* Félix Bourbonnais ([BadSingleton](https://github.com/BadSingleton))
* Félix David ([Tilix4](https://github.com/Tilix4))
* Henry Wilkes ([hwilkes-igalia](https://github.com/hwilkes-igalia))
* Jean-Christophe Morin ([JeanChristopheMorinPerso](https://github.com/JeanChristopheMorinPerso))
* Jeffrey Barendse ([IOjeffrey](https://github.com/IOjeffrey))
* jlskuz ([jlskuz](https://github.com/jlskuz))
* John Mertic ([jmertic](https://github.com/jmertic))
* Jon Morley ([rogergodspeed](https://github.com/rogergodspeed))
* Jonathan Hearn ([splidje](https://github.com/splidje))
Expand All @@ -32,11 +36,14 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Julian Yu-Chung Chen ([jchen9](https://github.com/jchen9))
* Karthik Ramesh Iyer ([KarthikRIyer](https://github.com/KarthikRIyer))
* Laura Savidge ([lsavidge](https://github.com/lsavidge))
* Mark Reid ([markreidvfx](https://github.com/markreidvfx))
* Matt Johnson ([mattyjams](https://github.com/mattyjams))
* Michael Dolan ([michdolan](https://github.com/michdolan))
* Michael Jefferies ([michaeljefferies](https://github.com/michaeljefferies))
* Mike Koetter ([mikekoetter](https://github.com/mikekoetter))
* Mike Mahony ([mikemahony](https://github.com/mikemahony))
* Nick Porcino ([meshula](https://github.com/meshula))
* Pedro Labonia ([pedrolabonia](https://github.com/pedrolabonia))
* Robyn Rindge ([avrata](https://github.com/avrata))
* Roger Nelson ([rogernelson](https://github.com/rogernelson))
* Sasha Aleshchenko ([TheBigSasha](https://github.com/TheBigSasha))
Expand All @@ -46,10 +53,14 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Simran Spiller ([Simran-B](https://github.com/Simran-B))
* Stefan Schulze ([stefanschulze](https://github.com/stefanschulze))
* Stephan Steinbach ([ssteinbach](https://github.com/ssteinbach))
* Stéphane Deverly ([gplsteph](https://github.com/gplsteph))
* Thibault Saunier ([thiblahute](https://github.com/thiblahute))
* Thierry Dervieux-Lecocq ([tdervieux](https://github.com/tdervieux))
* ThomasWilshaw ([ThomasWilshaw](https://github.com/ThomasWilshaw))
* Tim Lehr ([timlehr](https://github.com/timlehr))
* Troy James Sobotka ([sobotka](https://github.com/sobotka))
* Tuan Truong ([tuan-huy-truong](https://github.com/tuan-huy-truong))
* Utsab Saha ([utsab](https://github.com/utsab))
* Valerio Viperino ([vvzen](https://github.com/vvzen))
* Vincent Pinon ([vpinon](https://github.com/vpinon))
* Visaj Nirav Shah ([visajshah](https://github.com/visajshah))
89 changes: 62 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@ OpenTimelineIO
[![OpenTimelineIO](docs/_static/[email protected])](http://opentimeline.io)
==============

[![Supported VFX Platform Versions](https://img.shields.io/badge/vfx%20platform-2018--2021-lightgrey.svg)](http://www.vfxplatform.com/)
[![Supported VFX Platform Versions](https://img.shields.io/badge/vfx%20platform-2019--2022-lightgrey.svg)](http://www.vfxplatform.com/)
![Supported Versions](https://img.shields.io/badge/python-2.7%2C%203.7%2C%203.8%2C%203.9%2C%203.10-blue)
[![Build Status](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/actions/workflows/python-package.yml/badge.svg)](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/actions/workflows/python-package.yml)
[![codecov](https://codecov.io/gh/AcademySoftwareFoundation/OpenTimelineIO/branch/main/graph/badge.svg)](https://codecov.io/gh/AcademySoftwareFoundation/OpenTimelineIO)
[![docs](https://readthedocs.org/projects/opentimelineio/badge/?version=latest)](https://opentimelineio.readthedocs.io/en/latest/index.html)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2288/badge)](https://bestpractices.coreinfrastructure.org/projects/2288)

Main web site: http://opentimeline.io/
Links
-----

Documentation: https://opentimelineio.readthedocs.io/

GitHub: https://github.com/AcademySoftwareFoundation/OpenTimelineIO

Discussion group: https://lists.aswf.io/g/otio-discussion

Slack channel: https://academysoftwarefdn.slack.com/messages/CMQ9J4BQC
To join, create an account here first: https://slack.aswf.io/
* Main web site: http://opentimeline.io/
* Documentation: https://opentimelineio.readthedocs.io/
* GitHub: https://github.com/AcademySoftwareFoundation/OpenTimelineIO
* [Discussion group](https://lists.aswf.io/g/otio-discussion)
* [Slack channel](https://academysoftwarefdn.slack.com/messages/CMQ9J4BQC)
* To join, create an account here first: https://slack.aswf.io/
* [Presentations](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/wiki/Presentations)

PUBLIC BETA NOTICE
------------------
Expand All @@ -33,17 +33,19 @@ Overview
--------

OpenTimelineIO is an interchange format and API for editorial cut information.
OTIO is not a container format for media, rather it contains information about
the order and length of cuts and references to external media.
OTIO contains information about the order and length of cuts and
references to external media. It is not however, a container format for media.

OTIO includes both a file format and an API for manipulating that format. It
also includes a plugin architecture for writing adapters to convert
from/to existing editorial timeline formats. It also implements a dependency-
less library for dealing strictly with time, `opentime`.
For integration with applications, the core OTIO library is implemented in C++
and provides an in-memory data model, as well as library functions for
interpreting, manipulating, and serializing that data model. Within the core is
a dependency-less library for dealing strictly with time, `opentime`.

You can provide adapters for your video editing tool or pipeline as needed.
Each adapter allows for import/export between that proprietary tool and the
OpenTimelineIO format.
The project also supports an official python binding, which is intended to be
an idiomatic and ergonomic binding for python developers. The python binding
includes a plugin system which supports a number of different types of plugins,
most notably adapters, which can be used to read and write legacy formats into
the OTIO data model.

Documentation
--------------
Expand All @@ -52,24 +54,25 @@ Documentation, including quick start, architecture, use cases, API docs, and muc
Supported VFX Platforms
-----------------
The current release supports:
- VFX platform 2021, 2020, 2019, 2018
- VFX platform 2022, 2021, 2020, 2019
- Python 2.7 - 3.10

For more information on our vfxplatform support policy: [Contribution Guidelines Documentation Page](https://opentimelineio.readthedocs.io/en/latest/tutorials/contributing.html)
For more information on the vfxplatform: [VFX Platform Homepage](https://vfxplatform.com)

Adapters
--------
Adapter Plugins
---------------

OpenTimelineIO supports, or plans to support, conversion adapters for many
existing file formats, such as Final Cut Pro XML, AAF, CMX 3600 EDL, etc.
To provide interoperability with other file formats or applications lacking a
native integration, the opentimelineio community has built a number of python
adapter plugins. This includes Final Cut Pro XML, AAF, CMX 3600 EDL, and more.

See: https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html
For more information about this, including supported formats, see: https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html

Other Plugins
-------------

OTIO also supports several other kinds of plugins, for more information see:
The OTIO python bindings also support several other kinds of plugins, for more information see:

* [Media Linkers](https://opentimelineio.readthedocs.io/en/latest/tutorials/write-a-media-linker.html) - Generate media references to local media according to your local conventions.
* [HookScripts](https://opentimelineio.readthedocs.io/en/latest/tutorials/write-a-hookscript.html) - Scripts that can run at various points during OTIO execution (_ie_ before the media linker)
Expand All @@ -88,11 +91,43 @@ For detailed installation instructions and notes on how to run the included view
Example Usage
-------------

C++:

```c++
#include <iostream>

#include "opentimelineio/timeline.h"

namespace otio = opentimelineio::OPENTIMELINEIO_VERSION;

void
main()
{
otio::ErrorStatus err;
otio::SerializableObject::Retainer<otio::Timeline> tl(
dynamic_cast<otio::Timeline*>(
otio::Timeline::from_json_file("taco.otio", &err)
)
);
const std::vector<otio::SerializableObject::Retainer<otio::Clip>> clips = (
tl->clip_if()
);
for (const auto& cl : clips)
{
otio::RationalTime dur = cl->duration();
std::cout << "Name: " << cl->name() << " [";
std::cout << dur.value() << "/" << dur.rate() << "]" << std::endl;
}
}
```
Python:
```python
import opentimelineio as otio
timeline = otio.adapters.read_from_file("foo.aaf")
for clip in timeline.each_clip():
for clip in timeline.clip_if():
print(clip.name, clip.duration())
```

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ def cmake_install(self):

# Metadata that gets stamped into the __init__ files during the build phase.
PROJECT_METADATA = {
"version": "0.15.0.dev1",
"version": "0.15.0",
"author": 'Contributors to the OpenTimelineIO project',
"author_email": '[email protected]',
"license": 'Modified Apache 2.0 License',
Expand Down
Loading

0 comments on commit b0420a1

Please sign in to comment.