Record the inputs of a build's source fingerprint in its build record (issue 1215)

This commit is contained in:
2026-10-19 11:54:21 +02:00
parent 8da2619920
commit 68088ec782
13 changed files with 204 additions and 16 deletions
+6 -1
View File
@@ -21,6 +21,7 @@ import (
"strings"
"time"
"git.novox.be/novox/mesh-sdk/go/delivery"
"github.com/novox/mesh-controller/internal/catalogue"
)
@@ -91,6 +92,10 @@ type Result struct {
// (novox/hq issue 280).
Source string
// SourceInputs are what Source was computed from (novox/hq ADR 0437 §5, issue 1215), set also where the source
// does not pin the build, so the reason is visible: with them delivery.SourceFingerprint gives Source again.
SourceInputs *delivery.SourceInputs
// ReuseKey is the build's reuse key (novox/hq ADR 0350 §1): its source fingerprint's parts with the builder's
// version, and ReuseParts those parts; empty, with NoKey saying why, where the source does not pin the build.
ReuseKey string
@@ -491,7 +496,7 @@ func build(ctx context.Context, run Runner, publish Publisher,
// The reuse key (novox/hq ADR 0350 §1): what a check keeps its build under, and what a walk takes one by.
key := keyOf(src, manifest, Version)
return Result{Manifest: resolved, Commit: commit, Built: built,
Against: against(within, manifest, stoodOn), Read: readBy(manifest), Source: fingerprint,
Against: against(within, manifest, stoodOn), Read: readBy(manifest), Source: fingerprint, SourceInputs: resultInputs(src),
Trunk: trunk, OnTrunk: onTrunk, Branches: branches, Sources: sources,
ReuseKey: key.Key, ReuseParts: key.Parts, NoKey: key.Why, Reused: reused, Why: builtWhy,
Predefined: listed}, nil