Raxol.Plugins.DependencyResolverV2 (Raxol v2.0.1)

View Source

Advanced dependency resolution system for Plugin System v2.0.

Features:

  • Semantic version resolution (^1.2.0, ~> 2.1, >= 1.0.0)
  • Conflict detection and resolution strategies
  • Circular dependency detection
  • Dependency graph optimization
  • Version compatibility checking

Summary

Functions

Detects circular dependencies in the dependency graph.

Resolves version conflicts using configured strategies.

Resolves dependencies for a plugin manifest. Returns ordered list of dependencies to install/load.

Checks if a version satisfies a version requirement. Supports: ^1.2.0, ~> 2.1, >= 1.0.0, == 1.5.0, < 2.0.0

Types

dependency_spec()

@type dependency_spec() :: {plugin_id(), version_requirement()}

plugin_id()

@type plugin_id() :: String.t()

resolution_result()

@type resolution_result() :: {:ok, [dependency_spec()]} | {:error, term()}

version()

@type version() :: String.t()

version_requirement()

@type version_requirement() :: String.t()

Functions

detect_circular_dependencies(graph)

Detects circular dependencies in the dependency graph.

resolve_conflicts(conflicts, strategies \\ default_conflict_strategies())

Resolves version conflicts using configured strategies.

resolve_dependencies(manifest, available_plugins \\ %{})

Resolves dependencies for a plugin manifest. Returns ordered list of dependencies to install/load.

version_satisfies?(version, requirement)

Checks if a version satisfies a version requirement. Supports: ^1.2.0, ~> 2.1, >= 1.0.0, == 1.5.0, < 2.0.0