Skip to content

Automatic loading of ExportChaser and ImportChaser plugins#4642

Merged
seando-adsk merged 4 commits into
Autodesk:devfrom
jufrantz:automatic_loading_of_chaser_plugins
Jun 22, 2026
Merged

Automatic loading of ExportChaser and ImportChaser plugins#4642
seando-adsk merged 4 commits into
Autodesk:devfrom
jufrantz:automatic_loading_of_chaser_plugins

Conversation

@jufrantz

Copy link
Copy Markdown
Contributor

This PR adds ability for automatic loading for USD or Maya plugins that register an ExportChaser or ImportChaser.

With this change, clients no longer need to preload chaser plugins manually, wrap the MayaUSD import/export commands, load plugins at Maya startup, or rely on a JobContext plugins side effect to make a chaser available.

The implementation follows the existing JobContextPlugin and ShadingModePlugin discovery pattern. Plugins can advertise chaser support in plugInfo.json with:

"UsdMaya": {
  "ExportChaserPlugin": {
    "mayaPlugin": "myExportChaserPlugin"
  }
}

or:

"UsdMaya": {
  "ImportChaserPlugin": {
    "mayaPlugin": "myImportChaserPlugin"
  }
}

If mayaPlugin is omitted, the USD plugin is loaded directly.

Included changes:

  • Refactors the shared plugin discovery/loading logic used by jobContext and shadingMode registries
  • Reuses that logic for import and export chasers, triggering chaser plugin loading just before chasers are created.
  • Adds unit tests for automatic import and export chaser loading.
  • Updates related documumentation.

jufrantz added 4 commits June 11, 2026 14:01
…xportChaser` or `ImportChaser`.

- Refactors the shared plugin discovery/loading logic used by jobContext and shadingMode registries.
- Reuses that logic for import and export chasers, triggering chaser plugin loading just before chasers are created.
@seando-adsk

Copy link
Copy Markdown
Collaborator

@jufrantz We discussed this PR internally and one comment that came up was if "this PR looking to add the option to make it automatic or not or will it force to automatically load?" Looking quickly at the changes I don't see any option - it is just automatic. Is that correct? If so it was suggested this could be a problem and changing behaviours for other customers then. And could there be an option then?

Sean

@jufrantz

Copy link
Copy Markdown
Contributor Author

Hi @seando-adsk,

There is no global option, but this PR should not change the behavior of existing plugins. To opt in to this automatic loading, the developer needs to add new metadata (Info/UsdMaya/ExportChaserPlugin) to the plugInfo.json manifest file, as in this unit test file: infoImportChaser_plugInfo.json.

Therefore, existing plugins, that do not include the new metadata, will not be loaded automatically.

Julien

@seando-adsk

Copy link
Copy Markdown
Collaborator

@jufrantz Thanks for the answer. That covers all the concerns we had. I'll get someone assigned for a code review.

Sean

@barbalt barbalt self-assigned this Jun 17, 2026
@barbalt barbalt assigned barbalt and unassigned barbalt Jun 17, 2026
@seando-adsk seando-adsk assigned jufrantz and unassigned barbalt Jun 17, 2026
@barbalt barbalt added the ready-for-merge Development process is finished, PR is ready for merge label Jun 17, 2026
@seando-adsk seando-adsk added import-export Related to Import and/or Export workflows Related to in-context workflows labels Jun 22, 2026
@seando-adsk seando-adsk merged commit 6c5eefe into Autodesk:dev Jun 22, 2026
15 checks passed
@jufrantz jufrantz deleted the automatic_loading_of_chaser_plugins branch June 23, 2026 16:14
deboisj pushed a commit that referenced this pull request Jun 26, 2026
…ugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ic for import and export chasers, triggering chaser plugin loading just before chasers are created.
o CMakeLists.
- Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R,
  add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/
  save-stage button, GeneratedIconButton paint states).
- Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button
  test covering the runtime-gated edit-forwarding setup.
- Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable.

UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%.
TURE-----
 

Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion

EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
eply@anthropic.com>
hropic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
782136578 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3
 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
ort for the RenderSetup.
782136578 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3
 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3
 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
Fix cmakes.
Fix filenames
Fix member names
Refactor UndoChunkUtils
RE-----
 
 wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3
 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
ges :
Fix cmakes.
Fix filenames
Fix member names
Refactor UndoChunkUtils
RE-----
 
 wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3
 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
filenames
Fix member names
Refactor UndoChunkUtils
RE-----
 
 wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3
 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
rcase.
filenames
Fix member names
Refactor UndoChunkUtils
RE-----
 
 wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3
 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
deboisj pushed a commit that referenced this pull request Jun 26, 2026
EMSUSD-3762 - RenderSetup undo/redof  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7oSpk
 mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W
 +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/
 AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK
 SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR
 itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj
 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq
 U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj
 V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp
 N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g
 kmByzCDMP5fFwAqaOste
 =oVJ2
 -----END PGP SIGNATURE-----
 

Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins

Automatic loading of  `ExportChaser` and `ImportChaser` pluginsis no…both unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
opic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

import-export Related to Import and/or Export ready-for-merge Development process is finished, PR is ready for merge workflows Related to in-context workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants