Skip to content
docsv0.2.0

DriftDetector

Detects manifest drift: the gap between what a package DECLARES in its `milpa.json` and what its code ACTUALLY carries in `#[PluginMetadata]`. It diffs the two {@see VersionManifest}s field by field — `name`, `version`, and the `provides`/`requires`/`suggests` capability sets (identity compared by interface/id, normalized with `ltrim('\\')` so a leading-backslash FQCN and its bare form are equal). This is the tested primitive only. Turning a non-empty diff into the learnable `manifest drift` error is slice 2; slice 1 ships and proves the detector.

DriftDetector::diff()

public function diff(Milpa\Resolver\Manifest\VersionManifest $declared, Milpa\Resolver\Manifest\VersionManifest $actual): array

Diff a declared manifest against the actual one.

Parameters

Parameters of diff()
NameTypeDescription
$declaredMilpa\Resolver\Manifest\VersionManifest
$actualMilpa\Resolver\Manifest\VersionManifest