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

[core] Plugins: Introduction of NodePluginManager #2589

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

waaake
Copy link

@waaake waaake commented Oct 29, 2024

TCSR-1193 | Part 1 - Introduction of a Plugin Management System

Node Plugin Manager

The NodePluginManager provides a way for registering and managing node plugins within Meshroom.
This also provides a way for other components to interact with the plugins to understand whether a plugin is available or not.

The Node Plugin Manager serves as an initial setup by removing a standard python dictionary "nodesDesc" and using a Singleton class dealing with Plugins.
The Registered Node Plugin is of the type NodeDescriptor.
The NodeDescriptor would later evolve into a Class holding the Module and its Modification times.
The Errors should also be stored in the NodeDescriptor along with its Version.

The changes here also replace the usage of standard conditions of dictionary to validate whether a plugin exists with the lingo of now checking "registered".

What's Next

The Next steps would be to update the plugin registering mechanism to also include the plugins which have an error on them.
Currently the plugins with issues/errors are discarded and not registered.
With the changes proposed here, the Error Nodes should also be allowed to be created in the NodeGraph, but will be of the form of CompatibilityNode, allowing the developer/user to visualise the Errors on the Node.

Tests

  • All existing tests have been updated
  • Introduced a test to validate the Plugin Manager behaviour with registering and unregistering Plugins.

@waaake waaake self-assigned this Oct 29, 2024
@waaake waaake marked this pull request as draft November 8, 2024 12:13
The NodePluginManager provides a way for registering and managing node plugins within Meshroom. This also provides a way for other components to interact with the plugins to understand whether a plugin is available or not.
The Plugin Manager UI lets users see the available loaded Node Plugins. Each of the plugins have a detailed descriptive view which shows up when the label of the plugin name is clicked in the UI

Node Plugin Manager allows browsing the Python Packages consisting the Node Plugins to load them in the current instance of Meshroom.
@waaake waaake marked this pull request as ready for review November 11, 2024 04:02
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.

1 participant