Files
git.stella-ops.org/src/StellaOps.Concelier.Connector.Distro.RedHat/CONFLICT_RESOLVER_NOTES.md
2025-10-20 14:19:25 +03:00

1.9 KiB
Raw Blame History

RHSA Fixture Diffs for Conflict Resolver (Sprint 1)

Status date: 2025-10-11

The Red Hat connector fixtures were re-baselined after the model helper rollout so that the conflict resolver receives the canonical payload shape expected for range reconciliation.

Key schema deltas

  • affectedPackages[] now emits the type field ahead of the identifier and always carries a normalizedVersions array (empty for NEVRA/CPE today) alongside existing versionRanges.
  • All nested provenance objects (package ranges, statuses, advisory-level metadata, references) now serialize in canonical order source, kind, value, decisionReason, recordedAt, fieldMask to align with AdvisoryProvenance equality used by the conflict resolver.
  • decisionReason is now present (null) on provenance payloads so future precedence decisions can annotate overrides without another fixture bump.

Impact on conflict resolver

  • Range merge logic must accept an optional normalizedVersions array even when it is empty; RPM reconciliation continues to rely on NEVRA primitives (rangeKind: "nevra").
  • Provenance comparisons should treat the new property ordering and decisionReason field as canonical; older snapshots that lacked these fields are obsolete.
  • Advisory/reference provenance now matches the structure that merge emits, so deterministic hashing of resolver inputs will remain stable across connectors.

Updated goldens

  • src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0001.snapshot.json
  • src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0002.snapshot.json
  • src/StellaOps.Concelier.Connector.Distro.RedHat.Tests/RedHat/Fixtures/rhsa-2025-0003.snapshot.json

Keep these notes in sync with any future provenance or normalized-rule updates so the conflict resolver team can reason about fixture-driven regressions.