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

Support C++ manager plugins #44

Merged
merged 5 commits into from
Aug 23, 2024

Conversation

feltech
Copy link
Member

@feltech feltech commented Aug 21, 2024

Closes #40. Add support for forwarding to C++ OpenAssetIO Manager plugins as well as Python, by making use of the hybrid plugin system.

Update test/CI infrastructure to test with both a Python (BAL) and C++ (SimpleCppManager) plugin.

Since OpenAssetIO/OpenAssetIO#1351 dropped support for CY22 and below,
there is no need to use the backport of `importlib-metadata`

Signed-off-by: David Feltell <[email protected]>
Part of OpenAssetIO#40. In preparation for running the tests through another
manager (i.e. SimpleCppManager), do not overwrite the
value of the `OPENASSETIO_DEFAULT_CONFIG` environment variable, so that
the manager to be used by the test can be configured externally.

This does add yet another variable that must be set before the tests can
run and pass, but there are already several others that are required
anyway (`LD_LIBRARY_PATH`, `OPENASSETIO_PLUGIN_PATH`,
`PXR_PLUGINPATH_NAME`, `PYTHONPATH`) , so it's not that much extra
bother, and forcing the env var to be set externally means we can be
sure the intended manager is used for the tests.

Signed-off-by: David Feltell <[email protected]>
Part of OpenAssetIO#40. Since OpenAssetIO/OpenAssetIO-Manager-BAL#84 BAL has had
configurable responses to the `hasCapability(...)` method. So it is no
longer necessary to monkeypatch BAL in order to test varying
capabilities.

This will also help us in future when we run the tests through a
different manager (i.e. SimpleCppManager).

Signed-off-by: David Feltell <[email protected]>
@feltech feltech self-assigned this Aug 21, 2024
@feltech feltech marked this pull request as ready for review August 21, 2024 18:16
@feltech feltech changed the title Support C++ manager Support C++ manager plugins Aug 21, 2024
Copy link

@foundry-markf foundry-markf left a comment

Choose a reason for hiding this comment

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

Nothing that would block an approval.

Copy link

@foundry-markf foundry-markf left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link

@foundry-markf foundry-markf left a comment

Choose a reason for hiding this comment

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

LGTM

Part of OpenAssetIO#40. Add support for C++ manager plugins via use of the hybrid
plugin system, which additionally means that Python and C++ plugins can
be composed.

Make the tests a bit more agnostic to the particular manager. Add a
config file suitable for using SimpleCppManager as the plugin used to
test against. Modify test for error behaviour when given an invalid
asset reference so that it works for both BAL and SimpleCppManager -
i.e. instead of `bal:///` ("maformedEntityReference" for BAL only) use
`bal:///doesntexist`, which causes an "entityResolutionError" in both
BAL and SimpleCppManager.

Signed-off-by: David Feltell <[email protected]>
Part of OpenAssetIO#40. Update CI tests to make use of SimpleCppManager as a C++
alternative to the Python BasicAssetLibrary (BAL) manager.

Signed-off-by: David Feltell <[email protected]>
@feltech feltech merged commit eb354cd into OpenAssetIO:main Aug 23, 2024
10 checks passed
@feltech feltech deleted the work/40-cppPluginSupport branch August 23, 2024 13:48
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.

Add Support for C++ plugin system
2 participants