Skip to content

CI: add GitHub releases and PyPI wheel pipeline - #168

Merged
jminor merged 4 commits into
OpenTimelineIO:mainfrom
timlehr:tlehr/github-releases
Sep 23, 2026
Merged

jminor merged 4 commits into
OpenTimelineIO:mainfrom
timlehr:tlehr/github-releases

Conversation

@timlehr

@timlehr timlehr commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #56 and #135

Change Summary

This adds a PyPi release pipeline, based on the pipeline used for the otio-aaf-adapter. Since this is purely a convenience package to install Raven into a standard Python environment, we only need to build one wheel for each supported platform. No Python C-extensions here, just a slim Python wrapper around the embedded binary).

Like the adapters, newly contributed code to main will overwrite the latest tag and the associated pre-release (Development Build) on Github. This maintains an up to date binary for download, even though no official release is cut.

This also sets the version to 0.1.0 for an initial release of Raven (once this PR is merged). The version for both Cmake and Python packaging is sourced from VERSION.txt.

To test the publish flow to PyPI, I added a workflow_dispatch config, which allows us to trigger a manual release of any tag to test.pypi.org via Actions -> "publish" -> Run workflow. Successfully tested this using my fork over and pushed a test release. https://test.pypi.org/project/opentimelineio-raven/

Official releases get automatically published to pypi.org, whenever a tag named "v*" is pushed.

Environment testpypi -> test.pypi.org
Screenshot 2026-09-21 at 01 04 34
Environment pypi -> pypi.org
Screenshot 2026-09-21 at 01 06 15

Code assist disclosure

Assisted-by: Claude Code / Opus 4.8

Added a `--version` flag which is not just useful for deployment debugging, but also allows us to easily test if a binary is portable in a headless environment (e.g. CI run).

Signed-off-by: Tim Lehr <tim.lehr@disneyanimation.com>
This adds a PyPi release pipeline, based on the pipeline used for the otio-aaf-adapter. Since this is purely a convenience package to install Raven into a standard Python environment, we only need to build one wheel for each supported platform. No Python C-extensions here, just a slim Python wrapper around the embedded binary).

This also sets the version to 0.1.0 for an initial release of Raven. The version for both Cmake and Python packaging is sourced from VERSION.txt.

To test the publish flow to PyPI, I added a `workflow_dispatch` config, which allows us to trigger a manual release of any tag to `test.pypi.org` via Actions -> "publish" -> Run workflow.

Official releases get automatically published to `pypi.org`, whenever a tag named "v*" is pushed.

Signed-off-by: Tim Lehr <tim.lehr@disneyanimation.com>
Signed-off-by: Tim Lehr <tim.lehr@disneyanimation.com>
@timlehr
timlehr requested a review from jminor September 21, 2026 07:53
@timlehr timlehr added devdays26 ASWF Dev Days 2026 github_actions Pull requests that update GitHub Actions code and removed github_actions Pull requests that update GitHub Actions code labels Sep 21, 2026
@jminor

jminor commented Sep 22, 2026

Copy link
Copy Markdown
Member

This looks mostly good, I think? I'm not super confident in my understanding of publishing packages, and some Windows specific stuff. Let me ask for some extra eyes to review this.

Comment thread README.md
@timlehr

timlehr commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator Author

Here are some example "Development Build" artifacts generated on my fork: https://github.com/timlehr/raven/releases/tag/latest

@darbyjohnston

Copy link
Copy Markdown
Contributor

For Windows it would be a good idea to add this to the CMake file:

include(InstallRequiredSystemLibraries)

That includes some system libraries in the install that are needed for non-developer machines.

Signed-off-by: Tim Lehr <tim.lehr@disneyanimation.com>
@timlehr

timlehr commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

@darbyjohnston added it! Thanks!

Latest builds: https://github.com/timlehr/raven/releases/tag/latest

@jminor
jminor requested review from reinecke and removed request for jminor September 23, 2026 00:01

@reinecke reinecke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@jminor
jminor merged commit e407bce into OpenTimelineIO:main Sep 23, 2026
12 checks passed
@timlehr
timlehr deleted the tlehr/github-releases branch September 23, 2026 01:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devdays26 ASWF Dev Days 2026

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Releases for prebuilt binaries

4 participants