Files
git.stella-ops.org/docs/features/unchecked/plugin/plugin-dependency-resolution.md

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