Repository navigation
CI: add GitHub releases and PyPI wheel pipeline - #168
Merged
Merged
Conversation
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>
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. |
Collaborator
Author
|
Here are some example "Development Build" artifacts generated on my fork: https://github.com/timlehr/raven/releases/tag/latest |
Contributor
|
For Windows it would be a good idea to add this to the CMake file: That includes some system libraries in the install that are needed for non-developer machines. |
Signed-off-by: Tim Lehr <tim.lehr@disneyanimation.com>
Collaborator
Author
|
@darbyjohnston added it! Thanks! Latest builds: https://github.com/timlehr/raven/releases/tag/latest |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
mainwill overwrite thelatesttag 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_dispatchconfig, which allows us to trigger a manual release of any tag totest.pypi.orgvia 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.orgEnvironment
pypi->pypi.orgCode assist disclosure
Assisted-by: Claude Code / Opus 4.8