Skip to content

Commit 40017d3

Browse files
authored
Added notes about versioning OpenTimelineIO-Plugins (#1769)
* Added notes about versioning OpenTimelineIO-Plugins Signed-off-by: Eric Reinecke <[email protected]> --------- Signed-off-by: Eric Reinecke <[email protected]>
1 parent 0d04b04 commit 40017d3

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

CONTRIBUTING.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,21 @@ git push origin mybugfix
9191
Now your remote branch will have your `mybugfix` branch, which you can now pull request (to OpenTimelineIO's `main` branch) using the github UI.
9292

9393
Please make sure that your pull requests are clean. In other words, address only the issue at hand. Split minor corrections, formatting clean ups, and the like into other PRs. Ensure that new work has coverage in a test. Ensure that any resultant behavioral changes in other parts of the library are called out. Use the rebase and squash git facilities as needed to ensure that the pull request does not contain non-informative remnants of old or superseded work.
94+
95+
## OpenTimelineIO-Plugins Versioning Strategy
96+
97+
OpenTimelineIO provides two PyPI packages:
98+
99+
- `opentimelineio` - the core library and builtin file format support
100+
- `opentimelineio-plugins` - additional "batteries included" adapters
101+
102+
In short, the rules are:
103+
104+
- `OpenTimelineIO-Plugins` pins to the same `OpenTimelineIO` PyPI version using the `==` constraint - in other words the `OpenTimelineIO-Plugins` version is in lock-step with `OpenTimelineIO`.
105+
- Each adapter specifies a version constraint against the `OpenTimelineIO` version based on that adapter's requirements.
106+
- The `OpenTimelineIO-Plugins` project depends on a set of adapters in a floating way, which lets the adapter repos individually deal with their dependency on the core.
107+
- `OpenTimelineIO-Plugins` is versioned only when plugins are added, removed, or the pinned version of `OpenTimelineIO` is updated.
108+
109+
Keeping `OpenTimelineIO-Plugins` versioning lock-step with `OpenTimelineIO` ensures that version constraints on `OpenTimelineIO-Plugins` will yield the same result as version constraints on `OpenTimelineIO`. For example, installing `OpenTimelineIO-plugins==0.17.0` will guarantee that `OpenTimelineIO` 0.17.0 is installed. Individual adapter version can then be pinned by end-users.
110+
111+
Adapter developers should specify a loose version constraint on `OpenTimelineIO` (e.g. `>=0.17.0`) so that the package manager can discover the adapter version that works best with the desired `OpenTimelineIO` version.

0 commit comments

Comments
 (0)