1.4 KiB
1.4 KiB
Plugin Dependency Resolution
Module
Plugin
Status
IMPLEMENTED
Description
Plugin dependency resolution with resolver service, interface, and comprehensive tests.
Implementation Details
- PluginDependencyResolver:
src/Plugin/StellaOps.Plugin.Host/Dependencies/PluginDependencyResolver.cs-- topological sorting of plugin manifests for load order; cycle detection via DFS with CircularDependencyError reporting; version constraint parsing (>=, >, <=, <, =, ~pessimistic, ^compatible); AreDependenciesSatisfied/GetMissingDependencies for optional dependency support; reverse load order for unload sequence - IPluginDependencyResolver:
src/Plugin/StellaOps.Plugin.Host/Dependencies/IPluginDependencyResolver.cs-- interface: ResolveLoadOrder, ResolveUnloadOrder, AreDependenciesSatisfied, GetMissingDependencies, ValidateDependencyGraph - DependencyGraph:
src/Plugin/StellaOps.Plugin.Host/Dependencies/DependencyGraph.cs-- graph data structure with AddNode, AddEdge, HasNode, GetDependents - Source: Feature matrix scan
E2E Test Plan
- Verify topological sort produces correct load order for a dependency chain
- Test circular dependency detection reports correct cycle paths
- Verify version constraint matching for all operators (>=, >, <=, <, =, ~, ^)
- Test unload order is reverse of load order
- Verify optional dependencies do not block loading when missing