From 9a3af4a44bbd8ca4954b5f2fa66c8ddb15001217 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 01:38:34 +0100 Subject: [PATCH] buildstep: BuildModuleOf goes, a build module is the holder of its build seat on the seat list No caller is left (the checker, the watchman and the view find the holders; the builder's reader looks a step up by its seat). Builds: design 47 G A-82 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- .../assignerholder_test.go} | 0 .../cmd/mesh-delivery-builder/assignments.go | 41 ------------------- sdk/buildstep/ask.go | 8 ---- 3 files changed, 49 deletions(-) rename modules/mesh-delivery-builder/{cmd/mesh-delivery-builder/assignments_test.go => buildrun/assignerholder_test.go} (100%) delete mode 100644 modules/mesh-delivery-builder/cmd/mesh-delivery-builder/assignments.go diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/assignments_test.go b/modules/mesh-delivery-builder/buildrun/assignerholder_test.go similarity index 100% rename from modules/mesh-delivery-builder/cmd/mesh-delivery-builder/assignments_test.go rename to modules/mesh-delivery-builder/buildrun/assignerholder_test.go diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/assignments.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/assignments.go deleted file mode 100644 index a8dd75e1..00000000 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/assignments.go +++ /dev/null @@ -1,41 +0,0 @@ -package main - -import ( - "context" - "time" - - mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" - "git.novox.be/novox/mesh-sdk/go/seatlist" -) - -// assignerHolder is the module holding the seat mesh-module-assigner now, asked of the seat list through mesh-sdk's seatlist.HolderOf -// until it answers or ctx ends (design 47 G A-119, A-126): the builder names no assigner module, so a new holder is followed with no -// change of code. wait is the pause between two asks that failed; sleep says false when ctx ended during it. -func assignerHolder(ctx context.Context, call seatlist.HolderCaller, wait time.Duration, sleep func(context.Context, time.Duration) bool, logf func(string, ...any)) (string, bool) { - for { - holder, err := seatlist.HolderOf(call, mma.Seat) - if err == nil { - return holder, true - } - logf("who holds the seat %s is not known yet, so no node is counted by the assignments: %v", mma.Seat, err) - if !sleep(ctx, wait) { - return "", false - } - } -} - -// assignmentsNames are the names made from the holder: the view's first-view tool `.assignments` and the -// bucket `_assignments` of the state, both made from the holder found at run time. -type assignmentsNames struct{ Holder, Tool, Bucket string } - -func assignmentsOf(holder string) assignmentsNames { - return assignmentsNames{Holder: holder, Tool: holder + "." + mma.StateAssignments, Bucket: holder + "_" + mma.StateAssignments} -} - -// sleepFor waits d, a context's bound, and says whether ctx is still alive. -func sleepFor(ctx context.Context, d time.Duration) bool { - w, cancel := context.WithTimeout(ctx, d) - defer cancel() - <-w.Done() - return ctx.Err() == nil -} diff --git a/sdk/buildstep/ask.go b/sdk/buildstep/ask.go index 6281a77d..64439a89 100644 --- a/sdk/buildstep/ask.go +++ b/sdk/buildstep/ask.go @@ -129,14 +129,6 @@ func BuildSeat(language string) (string, error) { return "node-build-" + language, nil } -// BuildModuleOf is the module of a language's build seat. -func BuildModuleOf(language string) (string, error) { - if err := checkAskLanguage(language); err != nil { - return "", err - } - return "mesh-build-" + language, nil -} - // AskSubject is the subject a build seat accepts a kind of ask on: the seat's accept subject of main's form, which names no // asker (design 47 G §600, §483). func AskSubject(language, kind string) (string, error) {