feat(release): guide selective gate remediation

This commit is contained in:
2026-07-22 16:27:03 +02:00
parent 99534c0251
commit bcab7095c3
6 changed files with 457 additions and 5 deletions

View File

@@ -186,6 +186,18 @@ class ModuleContractSnapshot:
requires_interfaces: tuple[InterfaceRequirementSnapshot, ...] = ()
@dataclass(frozen=True, slots=True)
class ReleaseGateFinding:
code: str
severity: str
message: str
remediation: str
repo: str | None = None
source: str | None = None
expected: str | None = None
actual: str | None = None
@dataclass(frozen=True, slots=True)
class ReleasePlanUnit:
repo: str
@@ -200,6 +212,8 @@ class ReleasePlanUnit:
warnings: tuple[str, ...] = ()
provides_interfaces: tuple[InterfaceProviderSnapshot, ...] = ()
requires_interfaces: tuple[InterfaceRequirementSnapshot, ...] = ()
gate_findings: tuple[ReleaseGateFinding, ...] = ()
source_preflight_ready: bool = False
@dataclass(frozen=True, slots=True)
@@ -224,6 +238,15 @@ class ReleasePlanStep:
status: str = "planned"
@dataclass(frozen=True, slots=True)
class ReleaseRecommendedAction:
id: str
title: str
detail: str
remediation: str
repo: str | None = None
@dataclass(frozen=True, slots=True)
class SelectiveReleasePlan:
generated_at: str
@@ -233,6 +256,9 @@ class SelectiveReleasePlan:
compatibility: tuple[CompatibilityIssue, ...]
dry_run_steps: tuple[ReleasePlanStep, ...]
notes: tuple[str, ...] = ()
gate_findings: tuple[ReleaseGateFinding, ...] = ()
recommended_action: ReleaseRecommendedAction | None = None
source_preflight_ready: bool = False
@dataclass(frozen=True, slots=True)