-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
waaake
wants to merge
7
commits into
develop
Choose a base branch
from
dev/NodePluginManager
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
waaake
force-pushed
the
dev/NodePluginManager
branch
2 times, most recently
from
November 11, 2024 04:00
253b32c
to
d31d134
Compare
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.
… on a Paramter Descriptor to hold the status of whether the parameter has an issues with the value types, if so this gets skipped when adding an Incompatible Plugin Node.
Reloading forces the python reload of the module a plugin and if the reload is successful -> the update gets propagated to the node graph holding any instances of the given node type.
… Node from Plugin Manager UI Plugin manager has Reload button for each of the pluginto allow reloading the plugin and the nodes if instanced in the graph. The reload also prompts user before reloading
waaake
force-pushed
the
dev/NodePluginManager
branch
4 times, most recently
from
November 28, 2024 13:37
3e2185b
to
34e4473
Compare
waaake
force-pushed
the
dev/NodePluginManager
branch
from
November 28, 2024 13:39
34e4473
to
8b9c9b9
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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