Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move AAF Adapter to separate git repo #1348

Conversation

markreidvfx
Copy link
Contributor

@markreidvfx markreidvfx commented Jul 9, 2022

Here is a first attempt to move the AAF Adapter to separate git repo.
This started out as a test but turned out to be pretty straightforward,
since I already did most of the work with my AVB adapter.

The extracted AAF Adapter plugin is currently here https://github.com/OpenTimelineIO/otio-aaf-adapter
I did some git magic to preserve the original commit history of the adapter files.

You can use the external adapter without applying this pull request.
Unfortunately using the pkg_resources method doesn't seem to override the contrib plugin.
The OTIO_PLUGIN_MANIFEST_PATH env variable is needed in that case.

The adapter also uses features that aren't in the 0.14 release, and doesn't work with a pypi wheel.

@codecov-commenter
Copy link

codecov-commenter commented Jul 9, 2022

Codecov Report

Merging #1348 (2f3d0de) into extract_adapters (d1608c7) will decrease coverage by 1.11%.
The diff coverage is n/a.

Additional details and impacted files

Impacted file tree graph

@@                 Coverage Diff                  @@
##           extract_adapters    #1348      +/-   ##
====================================================
- Coverage             79.35%   78.24%   -1.12%     
====================================================
  Files                   193      190       -3     
  Lines                 20617    18816    -1801     
  Branches               4152     3846     -306     
====================================================
- Hits                  16361    14722    -1639     
+ Misses                 2145     2031     -114     
+ Partials               2111     2063      -48     
Flag Coverage Δ
py-unittests 78.24% <ø> (-1.12%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/opentimelineio/generatorReference.h 40.00% <0.00%> (-60.00%) ⬇️
src/opentimelineio/marker.h 83.33% <0.00%> (-16.67%) ⬇️
src/opentimelineio/track.cpp 49.66% <0.00%> (-2.02%) ⬇️
src/opentimelineio/composition.cpp 46.62% <0.00%> (-0.97%) ⬇️
...entimelineio-bindings/otio_serializableObjects.cpp 36.09% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d1608c7...2f3d0de. Read the comment docs.

@meshula
Copy link
Collaborator

meshula commented Jul 10, 2022

It's nice to see that it was easily separable! Thanks for getting the ball rolling.

Perhaps it would make sense to also add a line to Readme.md in the "Adapters" section, that tells where to find the relocated AAF adapter. When this is ready to land, we could update the Readme.md to point to a fork of your adapter work into the OpenTimelineIO org, as my working assumption is that this adapter will fall in the "officially supported by the OTIO project" umbrella.

@markreidvfx
Copy link
Contributor Author

Good idea. The api docs for adapter aren't being generated anywhere yet either. I'm looking into next too.

@JeanChristopheMorinPerso
Copy link
Member

@meshula
Copy link
Collaborator

meshula commented Jul 10, 2022

Every decrease noted indicates a missing unit test on the C/C++ side of things. Some strategies are to (1) add unit tests as part of the change, (2) start an Issue that lists with checkboxes missing unit tests corresponding to items identified by the CI, and start a separate effort to improve test coverage, (3) leave test coverage for future us.

I'm personally inclined to (2), but would be interested in hearing other people's thoughts about it. The reason I'm inclined to (2) is that my preference would be that good unit tests are written, rather than letter of the law unit tests that simply satisfy a bot, and good unit tests could stall things indefinitely until someone has time to devote to it.

@markreidvfx
Copy link
Contributor Author

It looks pretty straight forward to add a few tests to restore coverage. I will send a pull request.

@reinecke
Copy link
Collaborator

reinecke commented Jul 13, 2022

This (and the forked repo you created) is really great!
On the unit test front, I think we should emphasize good tests being written and minimize the burden on these kinds of PRs getting through, so somehow noting the changes for future and letting this get through feels like the best approach (another vote for (2) in the suggestions @meshula made). I think it probably should fall on us maintainers to own doing the work associated with that.

On the adapter precedence front - this is an issue I've run into as well. In my case I was able to work around it by giving the adapter a different name and using otio.adapters.from_name - but I don't think this is the right approach for this case. My instinct is that we should at least make the pkg_resources plugins take precedence. This does open the question of what happens if you have multiple pkg_resources plugins registered for the same extension. However I think that case will be a bit rarer, is currently an issue anyway, and can be managed by users when choosing which python packages to install.

@markreidvfx
Copy link
Contributor Author

I did add the unit tests that restore the coverage lost from the adapter removal. I was hoping to remove it from this pull and create separate pull request, but first wanted to demonstrate it fixes the issue.

@markreidvfx
Copy link
Contributor Author

I'm unsure why the EDL adapter has shown up in the Codecov report? I think its something to do with the recent EDL commits. The Codecov website can be pretty frustrating to use :p. By my account though, the added unit tests should restore the coverage lost from the adapters removal and even add a bit more.

@JeanChristopheMorinPerso
Copy link
Member

I think codecov is just confused. Codecov is unfortunately quite easy to confuse.

@meshula
Copy link
Collaborator

meshula commented Jul 14, 2022

Tests are awesome :) Why don't we go ahead and PR/land them separately, per your suggestion? I think they're ready.

@markreidvfx
Copy link
Contributor Author

Will do

@markreidvfx
Copy link
Contributor Author

The separated AAF Adapter is now located here
https://github.com/OpenTimelineIO/otio-aaf-adapter

I created a task list of things that need to happen before this pull request could safely be applied
OpenTimelineIO/otio-aaf-adapter#1

Please let me know if there are any other blocking issues to add to this task list.

@jminor
Copy link
Collaborator

jminor commented Nov 30, 2022

@markreidvfx could you aim this PR at the newly created extract_adapters branch? I think there should be an "Edit" button at the top of the PR page for this which will let you change the target branch.

@markreidvfx markreidvfx changed the base branch from main to extract_adapters December 1, 2022 20:11
@markreidvfx
Copy link
Contributor Author

@jminor the pull has be change to target that branch. There were some conflicts which I've resolved. f7123d0 made some changes to the aaf adapter, I'll port them to the adapter repo.

@markreidvfx markreidvfx force-pushed the remove_aaf_adapter_v1 branch 2 times, most recently from 3812f5a to 1d15fc6 Compare December 1, 2022 21:06
@apetrynet
Copy link
Contributor

@markreidvfx, would you mind rebasing on top of or merging the latest changes in the "extract_adapters"? It might kick off the CI so we can see that everything is still good to go.

@markreidvfx
Copy link
Contributor Author

@apetrynet rebased and all tests pass!

@apetrynet apetrynet merged commit 7a0a8c7 into AcademySoftwareFoundation:extract_adapters Dec 14, 2022
@apetrynet
Copy link
Contributor

Thanks @markreidvfx!

rosborne132 pushed a commit to rosborne132/OpenTimelineIO that referenced this pull request Jan 19, 2023
…cademySoftwareFoundation#1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Robert Osborne <[email protected]>
reinecke pushed a commit that referenced this pull request Oct 6, 2023
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
reinecke pushed a commit that referenced this pull request Oct 6, 2023
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
reinecke pushed a commit that referenced this pull request Apr 4, 2024
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
reinecke pushed a commit that referenced this pull request Apr 12, 2024
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
reinecke pushed a commit that referenced this pull request Apr 12, 2024
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
reinecke pushed a commit that referenced this pull request Jun 12, 2024
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
reinecke pushed a commit that referenced this pull request Jun 12, 2024
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
reinecke pushed a commit that referenced this pull request Jun 12, 2024
…1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
reinecke added a commit that referenced this pull request Jun 12, 2024
* Prepare plugin detection for removal of the cmx_3600 adapter (#1488)

* add "extract_adapters" to CI triggers
* use "otiod" as override example

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Extracted CMX3600 adapter and related sample data and tests (#1487)

* Removed the cmx_3600 adapter
* Removed sample data only used by the cmx_3600 adapter
* Add "extract_adapters" to CI triggers
* otioz test called for an edl we removed. Replaced with an otio file
* Converted screening_example.edl to screening_example.otio and used it in tests
* Removed other adapter suffixes from plugin tests as they belong to adapters soon to be extracted
* Autogenerated docs for CMX3600 removed

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Extract AAF Adapter from OTIO core and establish separate git repo (#1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove fcp adapter (#1501)

* removing the fcp adapter and it's test files
* replaced premiere_example.xml with premiere_example.otio to pass console tests.
* updated auto generated docs

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove svg adapter (#1502)

* removed svg adapter and related test files
* updated auto documentation

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove maya sequencer adapter related files (#1520)

* Remove maya adapter related files
* Update docs

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove fcp x xml adapter related files (#1529)

* remove fcp x xml adapter files
* update docs

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* remove hls adapter related files (#1535)

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* remove ale adapter related files (#1536)

* remove ale adapter related files

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove burnins adapter related files (#1537)

* extract burnin files
* remove test

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* extract xges adapter files (#1538)

* extract xges adapter files

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove the remains of "contrib"

* Removed the "contrib" directory tree and all references to the contrib adapters.
* Plugin system, setup and auto doc scripts no longer rely on contrib files.
* Also removed some entries on other adapters left behind in the adapters.md file.
* add README_contrib.md to the manifest

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* fixed `doc-plugins-update` when custom hooks are in environment (#1644)

Signed-off-by: Tim Lehr <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* added support for pathlib.Path filepath arguments for adapter IO functions (#1704)

Signed-off-by: Tim Lehr <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Removed orphaned FCP XML adapter post-rebase.

Signed-off-by: Eric Reinecke <[email protected]>

* Update README.md to point users to the adapter repos

Co-authored-by: Daniel Flehner Heen <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Updated documentation about adapters to better reflect the current landscape

Signed-off-by: Eric Reinecke <[email protected]>

* Removed contrib plugin manifest from package data

Signed-off-by: Eric Reinecke <[email protected]>

* Removed extract_adapters branch from CI references

Signed-off-by: Eric Reinecke <[email protected]>

---------

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Tim Lehr <[email protected]>
Co-authored-by: Daniel Flehner Heen <[email protected]>
Co-authored-by: Mark Reid <[email protected]>
Co-authored-by: Rob Osborne <[email protected]>
Co-authored-by: Tim Lehr <[email protected]>
darbyjohnston pushed a commit to darbyjohnston/OpenTimelineIO that referenced this pull request Jun 14, 2024
* Prepare plugin detection for removal of the cmx_3600 adapter (AcademySoftwareFoundation#1488)

* add "extract_adapters" to CI triggers
* use "otiod" as override example

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Extracted CMX3600 adapter and related sample data and tests (AcademySoftwareFoundation#1487)

* Removed the cmx_3600 adapter
* Removed sample data only used by the cmx_3600 adapter
* Add "extract_adapters" to CI triggers
* otioz test called for an edl we removed. Replaced with an otio file
* Converted screening_example.edl to screening_example.otio and used it in tests
* Removed other adapter suffixes from plugin tests as they belong to adapters soon to be extracted
* Autogenerated docs for CMX3600 removed

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Extract AAF Adapter from OTIO core and establish separate git repo (AcademySoftwareFoundation#1348)

* Remove AAF adapter
* Add Note about the AAF adapter being moved

Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove fcp adapter (AcademySoftwareFoundation#1501)

* removing the fcp adapter and it's test files
* replaced premiere_example.xml with premiere_example.otio to pass console tests.
* updated auto generated docs

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove svg adapter (AcademySoftwareFoundation#1502)

* removed svg adapter and related test files
* updated auto documentation

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove maya sequencer adapter related files (AcademySoftwareFoundation#1520)

* Remove maya adapter related files
* Update docs

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove fcp x xml adapter related files (AcademySoftwareFoundation#1529)

* remove fcp x xml adapter files
* update docs

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* remove hls adapter related files (AcademySoftwareFoundation#1535)

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* remove ale adapter related files (AcademySoftwareFoundation#1536)

* remove ale adapter related files

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove burnins adapter related files (AcademySoftwareFoundation#1537)

* extract burnin files
* remove test

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* extract xges adapter files (AcademySoftwareFoundation#1538)

* extract xges adapter files

Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Remove the remains of "contrib"

* Removed the "contrib" directory tree and all references to the contrib adapters.
* Plugin system, setup and auto doc scripts no longer rely on contrib files.
* Also removed some entries on other adapters left behind in the adapters.md file.
* add README_contrib.md to the manifest

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* fixed `doc-plugins-update` when custom hooks are in environment (AcademySoftwareFoundation#1644)

Signed-off-by: Tim Lehr <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* added support for pathlib.Path filepath arguments for adapter IO functions (AcademySoftwareFoundation#1704)

Signed-off-by: Tim Lehr <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Removed orphaned FCP XML adapter post-rebase.

Signed-off-by: Eric Reinecke <[email protected]>

* Update README.md to point users to the adapter repos

Co-authored-by: Daniel Flehner Heen <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>

* Updated documentation about adapters to better reflect the current landscape

Signed-off-by: Eric Reinecke <[email protected]>

* Removed contrib plugin manifest from package data

Signed-off-by: Eric Reinecke <[email protected]>

* Removed extract_adapters branch from CI references

Signed-off-by: Eric Reinecke <[email protected]>

---------

Signed-off-by: apetrynet <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Eric Reinecke <[email protected]>
Signed-off-by: Mark Reid <[email protected]>
Signed-off-by: rosborne132 <[email protected]>
Signed-off-by: Tim Lehr <[email protected]>
Co-authored-by: Daniel Flehner Heen <[email protected]>
Co-authored-by: Mark Reid <[email protected]>
Co-authored-by: Rob Osborne <[email protected]>
Co-authored-by: Tim Lehr <[email protected]>
Signed-off-by: Darby Johnston <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants