The indexer's packages state is read through its read tool's first view and its views family (ADR 0615 §1), as the other four states the builder follows, not by its bucket: the manifest drops the read, invokes indexer_read_packages and consumes views.packages. A package built unnumbered because its name was not known at its claim was numbered only at its module's next claim. Now a series key heard naming a name looks at its module again (Builder.PackageNamed), and a look at a done trunk build numbers what it left unnumbered with the done key's digests (BuildClaim.Done), so version.numbered carries the digest for the build module's late publish. Woken by the views family, never a timer. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
168 lines
4.7 KiB
JSON
168 lines
4.7 KiB
JSON
{
|
|
"module": "mesh-delivery-builder",
|
|
"version": "1",
|
|
"slug": "builder",
|
|
"tools": [
|
|
"builder_announce_again",
|
|
"builder_ask_again",
|
|
"builder_build_again",
|
|
"builder_builds_since",
|
|
"builder_engine_reads",
|
|
"builder_floor_again",
|
|
"builder_floor_waits",
|
|
"builder_old_form",
|
|
"builder_publish_again",
|
|
"builder_seat_queue",
|
|
"builder_stuck",
|
|
"builder_tag",
|
|
"builder_tag_asks",
|
|
"builder_untag",
|
|
"builder_versions",
|
|
"builder_first_views",
|
|
"builder_first_view_again"
|
|
],
|
|
"emits": [
|
|
"build.asked-again",
|
|
"version.numbered",
|
|
"version.old-form-closed"
|
|
],
|
|
"consumes": [
|
|
"container-image-registry.published",
|
|
"container-image-registry.refused",
|
|
"container-image-registry.removed",
|
|
"go-package-registry.published",
|
|
"go-package-registry.refused",
|
|
"go-package-registry.removed",
|
|
"mesh-artifact-sweep.artifacts-gone",
|
|
"mesh-build-go.toolchain.reported",
|
|
"mesh-build-node.toolchain.reported",
|
|
"mesh-conditions.condition-cleared",
|
|
"mesh-delivery-checker.tag-wanted",
|
|
"mesh-delivery-forge-bridge.forge.**",
|
|
"mesh-delivery-indexer.manifest-accepted",
|
|
"node-engine.manifest-reads-changed",
|
|
"npm-package-registry.published",
|
|
"npm-package-registry.refused",
|
|
"npm-package-registry.removed",
|
|
"oci-artifact-registry.published",
|
|
"oci-artifact-registry.refused",
|
|
"oci-artifact-registry.removed",
|
|
"mesh-delivery-assigner.views.placement",
|
|
"mesh-delivery-indexer.views.candidates",
|
|
"mesh-delivery-indexer.views.manifests",
|
|
"mesh-delivery-indexer.views.modules",
|
|
"mesh-delivery-indexer.views.packages"
|
|
],
|
|
"invokes": [
|
|
"mesh-delivery-forge-bridge.bridge_tags",
|
|
"mesh-delivery-indexer.indexer_requirements",
|
|
"seat:container-image-registry.remove",
|
|
"seat:container-image-registry.versions",
|
|
"seat:go-package-registry.remove",
|
|
"seat:go-package-registry.versions",
|
|
"seat:mesh-artifact-sweep.held",
|
|
"seat:mesh-hand-acts.hand-act",
|
|
"seat:node-engine.manifest-reads",
|
|
"seat:npm-package-registry.remove",
|
|
"seat:npm-package-registry.versions",
|
|
"seat:oci-artifact-registry.remove",
|
|
"seat:oci-artifact-registry.versions",
|
|
"mesh-delivery-assigner.assigner_read_placement",
|
|
"mesh-delivery-indexer.indexer_read_candidates",
|
|
"mesh-delivery-indexer.indexer_read_manifests",
|
|
"mesh-delivery-indexer.indexer_read_modules",
|
|
"mesh-delivery-indexer.indexer_read_packages"
|
|
],
|
|
"state": [
|
|
{ "name": "builds", "history": 5 },
|
|
{ "name": "engine-reads", "history": 1 },
|
|
{ "name": "findings", "history": 5 },
|
|
{ "name": "floor-waits", "history": 1 },
|
|
{ "name": "hearing", "history": 1 },
|
|
{ "name": "instances", "history": 1 },
|
|
{ "name": "old-form", "history": 1 },
|
|
{ "name": "queues", "history": 1 },
|
|
{ "name": "reasks", "history": 1 },
|
|
{ "name": "tag-ask-bounds", "history": 1, "key-ttl": true },
|
|
{ "name": "tag-asks", "history": 1 },
|
|
{ "name": "versions", "history": 1 },
|
|
{ "name": "first-views", "history": 1 }
|
|
],
|
|
"logs": [
|
|
{ "name": "build-log", "max-age-days": 30 }
|
|
],
|
|
"reads": [
|
|
"mesh-build-go.steps",
|
|
"mesh-build-go.toolchains",
|
|
"mesh-build-image.steps",
|
|
"mesh-build-node.steps",
|
|
"mesh-build-node.toolchains",
|
|
"mesh-delivery-gate.source"
|
|
],
|
|
"uses": [
|
|
"node-build-go",
|
|
"node-build-image",
|
|
"node-build-node"
|
|
],
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-builder",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-builder",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-builder"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-builder",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "builder",
|
|
"type": "process",
|
|
"name": "mesh-delivery-builder",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-builder"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-builder",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-builder",
|
|
"binary": "mesh-delivery-builder"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-builder-tools",
|
|
"binary": "mesh-delivery-builder-tools",
|
|
"loads": [
|
|
"mesh-delivery-builder-tools"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|