From 71a35a6376c673efbe9ef0570c93bfb9a8cb22cd Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 05:09:56 +0100 Subject: [PATCH 01/12] MV1: move contracts and sdk under modules/, importers follow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The delivery repository's contracts and SDK live under modules/ as mesh-delivery-contracts and mesh-delivery-sdk, their Go module paths renamed to match the folders (the TypeScript names already did), and every importer in mesh-delivery, mesh-catalog, mesh-host, mesh-tools and mesh-sdk follows in the same group: a design as it should be, one path per module, checked by the group's check building every importer. Builds: design 47 G §427, §88 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- contracts/go/clients/meshbuildsclient/go.mod | 5 --- .../clients/meshdeliverycheckerclient/go.mod | 8 ---- .../go/clients/meshdeliveryclient/go.mod | 8 ---- .../clients/meshpipelinerunnerclient/go.mod | 8 ---- .../go/seats/containerimageregistry/go.mod | 3 -- contracts/go/seats/git/go.mod | 3 -- contracts/go/seats/gopackageregistry/go.mod | 3 -- contracts/go/seats/meshartifactsweep/go.mod | 3 -- contracts/go/seats/meshbuilds/go.mod | 3 -- contracts/go/seats/meshcatalog/go.mod | 3 -- contracts/go/seats/meshdelivery/go.mod | 3 -- contracts/go/seats/meshdeliverychecker/go.mod | 3 -- contracts/go/seats/meshpipelinerunner/go.mod | 3 -- contracts/go/seats/meshwants/go.mod | 3 -- contracts/go/seats/nodebuildgo/go.mod | 3 -- contracts/go/seats/nodebuildimage/go.mod | 3 -- contracts/go/seats/nodebuildnode/go.mod | 3 -- contracts/go/seats/npmpackageregistry/go.mod | 3 -- contracts/go/seats/ociartifactregistry/go.mod | 3 -- modules/mesh-delivery-assigner/asks/asks.go | 6 +-- modules/mesh-delivery-assigner/asks/go.mod | 16 ++++---- .../mesh-delivery-assigner/askagain_tool.go | 2 +- .../cmd/mesh-delivery-assigner/buildended.go | 2 +- .../mesh-delivery-assigner/buildended_test.go | 2 +- .../cmd/mesh-delivery-assigner/composed.go | 2 +- .../cmd/mesh-delivery-assigner/graph_tools.go | 2 +- .../cmd/mesh-delivery-assigner/graphkept.go | 4 +- .../mesh-delivery-assigner/graphkept_test.go | 8 ++-- .../cmd/mesh-delivery-assigner/halves.go | 6 +-- .../cmd/mesh-delivery-assigner/inputs.go | 2 +- .../cmd/mesh-delivery-assigner/inputs_test.go | 2 +- .../integration_test.go | 12 +++--- .../cmd/mesh-delivery-assigner/outside.go | 4 +- .../mesh-delivery-assigner/outside_test.go | 4 +- .../cmd/mesh-delivery-assigner/pass.go | 6 +-- .../cmd/mesh-delivery-assigner/pass_test.go | 12 +++--- .../cmd/mesh-delivery-assigner/pipelines.go | 10 ++--- .../mesh-delivery-assigner/pipelines_test.go | 10 ++--- .../cmd/mesh-delivery-assigner/puts.go | 4 +- .../cmd/mesh-delivery-assigner/seat.go | 4 +- .../cmd/mesh-delivery-assigner/seat_tools.go | 2 +- .../mesh-delivery-assigner/seat_tools_test.go | 8 ++-- .../cmd/mesh-delivery-assigner/tools.go | 4 +- .../cmd/mesh-delivery-assigner/verbs.go | 2 +- .../cmd/mesh-delivery-assigner/wants_tools.go | 6 +-- .../cmd/mesh-delivery-assigner/world.go | 10 ++--- .../cmd/mesh-delivery-assigner/world_test.go | 6 +-- modules/mesh-delivery-assigner/go.mod | 36 ++++++++--------- .../internal/assign/askjson.go | 2 +- .../internal/assign/asks.go | 6 +-- .../internal/assign/asks_test.go | 6 +-- .../internal/assign/ended.go | 2 +- .../internal/assign/put.go | 4 +- .../internal/assign/seat.go | 2 +- .../internal/assign/verbs.go | 2 +- .../internal/assign/wants.go | 8 ++-- .../internal/assign/wants_test.go | 6 +-- .../internal/assigngraph/compute.go | 4 +- .../internal/assigngraph/graph_test.go | 6 +-- .../internal/assigngraph/keep.go | 2 +- .../internal/assigngraph/verbs.go | 2 +- .../internal/buckets/buckets.go | 6 +-- .../internal/judge/judge.go | 2 +- .../internal/judge/judge_test.go | 2 +- .../internal/puts/puts.go | 2 +- .../mesh-delivery-assigner/manifest_test.go | 2 +- .../mesh-delivery-builder/buildrun/asks.go | 2 +- .../buildrun/asks_integration_test.go | 2 +- .../buildrun/asks_test.go | 2 +- .../buildrun/buildseats.go | 2 +- .../mesh-delivery-builder/buildrun/choose.go | 2 +- .../buildrun/choose_test.go | 2 +- .../mesh-delivery-builder/buildrun/faults.go | 2 +- modules/mesh-delivery-builder/buildrun/go.mod | 6 +-- .../buildrun/heardends.go | 2 +- .../mesh-delivery-builder/buildrun/lostask.go | 2 +- .../buildrun/standing.go | 4 +- .../buildrun/standing_test.go | 2 +- .../mesh-delivery-builder/buildrun/steps.go | 2 +- .../buildrun/steps_resume_test.go | 2 +- .../buildrun/steps_test.go | 2 +- .../buildrun/toolchaingate.go | 6 +-- .../buildrun/toolchaingate_test.go | 4 +- .../buildrun/toolchains.go | 2 +- .../buildrun/toolchains_test.go | 2 +- .../mesh-delivery-builder/builds/builds.go | 14 +++---- .../builds/builds_test.go | 2 +- .../builds/forms/forms.go | 6 +-- modules/mesh-delivery-builder/builds/go.mod | 10 ++--- modules/mesh-delivery-builder/builds/log.go | 2 +- .../cmd/mesh-delivery-builder-tools/build.go | 4 +- .../mesh-delivery-builder-tools/build_test.go | 4 +- .../cmd/mesh-delivery-builder-tools/main.go | 6 +-- .../reservedname_test.go | 2 +- .../mesh-delivery-builder-tools/toolchains.go | 2 +- .../toolchains_test.go | 2 +- .../cmd/mesh-delivery-builder/catalog.go | 4 +- .../cmd/mesh-delivery-builder/catalog_test.go | 2 +- .../catalogholder_integration_test.go | 4 +- .../gone_integration_test.go | 2 +- .../cmd/mesh-delivery-builder/held.go | 2 +- .../mesh-delivery-builder/integration_test.go | 10 ++--- .../cmd/mesh-delivery-builder/main.go | 8 ++-- .../cmd/mesh-delivery-builder/names.go | 2 +- .../cmd/mesh-delivery-builder/refused_test.go | 2 +- .../cmd/mesh-delivery-builder/republish.go | 4 +- .../mesh-delivery-builder/republish_test.go | 8 ++-- .../cmd/mesh-delivery-builder/reserve.go | 6 +-- .../cmd/mesh-delivery-builder/reserve_test.go | 6 +-- .../cmd/mesh-delivery-builder/reservedverb.go | 4 +- .../reservedverb_test.go | 4 +- .../cmd/mesh-delivery-builder/seats.go | 8 ++-- .../cmd/mesh-delivery-builder/step.go | 6 +-- .../step_integration_test.go | 2 +- .../cmd/mesh-delivery-builder/stored.go | 2 +- .../cmd/mesh-delivery-builder/toolchains.go | 8 ++-- .../mesh-delivery-builder/toolchains_test.go | 2 +- .../cmd/mesh-delivery-builder/versions.go | 4 +- modules/mesh-delivery-builder/go.mod | 40 +++++++++---------- .../internal/build/askagain.go | 2 +- .../internal/build/askfake_test.go | 2 +- .../internal/build/buildread.go | 2 +- .../internal/build/candidates.go | 2 +- .../internal/build/entry_test.go | 2 +- .../internal/build/fakes_test.go | 2 +- .../internal/build/fixtures_test.go | 2 +- .../internal/build/followups_test.go | 4 +- .../internal/build/gone_test.go | 2 +- .../internal/build/imports_test.go | 2 +- .../internal/build/numbers.go | 6 +-- .../internal/build/queue.go | 2 +- .../internal/build/r4e_test.go | 6 +-- .../internal/build/reserve_test.go | 6 +-- .../internal/build/retake.go | 2 +- .../internal/build/retake_test.go | 2 +- .../internal/build/run.go | 12 +++--- .../internal/build/run_test.go | 6 +-- .../internal/build/step.go | 4 +- .../internal/build/step_test.go | 4 +- .../internal/build/stuck.go | 2 +- .../internal/build/toolchains.go | 4 +- .../internal/build/waits.go | 4 +- .../internal/versions/entrynames.go | 4 +- .../internal/versions/entrynames_test.go | 2 +- .../internal/versions/names.go | 2 +- .../internal/versions/oldform.go | 2 +- .../internal/versions/republish.go | 2 +- .../internal/versions/republish_test.go | 2 +- .../internal/versions/reserve.go | 4 +- .../internal/versions/reserve_test.go | 2 +- .../internal/versions/reservedname_test.go | 4 +- .../internal/versions/tools.go | 2 +- .../checkermsg/checkermsg.go | 2 +- .../mesh-delivery-checker/checkermsg/go.mod | 4 +- .../cmd/mesh-checking-program/main.go | 2 +- .../cmd/mesh-checking-program/main_test.go | 6 +-- .../cmd/mesh-delivery-checker-tools/main.go | 6 +-- .../mesh-delivery-checker-tools/main_test.go | 6 +-- .../cmd/mesh-delivery-checker/bus.go | 2 +- .../cmd/mesh-delivery-checker/engines.go | 8 ++-- .../cmd/mesh-delivery-checker/forge.go | 2 +- .../cmd/mesh-delivery-checker/forge_test.go | 4 +- .../mesh-delivery-checker/integration_test.go | 14 +++---- .../cmd/mesh-delivery-checker/judge.go | 6 +-- .../cmd/mesh-delivery-checker/judge_test.go | 6 +-- .../cmd/mesh-delivery-checker/main.go | 4 +- .../cmd/mesh-delivery-checker/packages.go | 4 +- .../cmd/mesh-delivery-checker/trunk.go | 2 +- .../cmd/mesh-delivery-checker/trunk_test.go | 2 +- .../mesh-delivery-checker/try_candidates.go | 4 +- modules/mesh-delivery-checker/go.mod | 32 +++++++-------- .../internal/check/adr548_test.go | 6 +-- .../internal/check/askagain.go | 8 ++-- .../internal/check/beside.go | 2 +- .../internal/check/binaries_test.go | 4 +- .../internal/check/bounded.go | 2 +- .../internal/check/build_change.go | 2 +- .../internal/check/builds.go | 4 +- .../internal/check/buildseats.go | 2 +- .../internal/check/case.go | 10 ++--- .../internal/check/checker.go | 12 +++--- .../internal/check/checker_test.go | 12 +++--- .../internal/check/composition_test.go | 8 ++-- .../internal/check/couldnotrun.go | 4 +- .../internal/check/declared.go | 2 +- .../internal/check/digestform_test.go | 4 +- .../internal/check/engines.go | 8 ++-- .../internal/check/engines_test.go | 14 +++---- .../internal/check/every_failure_test.go | 6 +-- .../internal/check/examiner_test.go | 10 ++--- .../internal/check/failure_words_test.go | 2 +- .../internal/check/gate_test.go | 2 +- .../internal/check/graph_edges.go | 4 +- .../internal/check/judge.go | 10 ++--- .../internal/check/judged_test.go | 4 +- .../internal/check/kept.go | 4 +- .../internal/check/kept_test.go | 6 +-- .../internal/check/line.go | 6 +-- .../internal/check/line_test.go | 8 ++-- .../internal/check/lostask.go | 6 +-- .../internal/check/lostask_test.go | 8 ++-- .../internal/check/manifests_judge.go | 10 ++--- .../internal/check/names.go | 4 +- .../internal/check/owed.go | 6 +-- .../internal/check/pins.go | 4 +- .../internal/check/pins_test.go | 10 ++--- .../internal/check/preview.go | 4 +- .../internal/check/programs.go | 6 +-- .../internal/check/rank_test.go | 8 ++-- .../internal/check/read.go | 10 ++--- .../internal/check/read_test.go | 10 ++--- .../internal/check/results.go | 2 +- .../internal/check/series.go | 2 +- .../internal/check/trunkview.go | 2 +- .../internal/check/try.go | 10 ++--- .../internal/check/try_test.go | 8 ++-- .../internal/check/verdictevent.go | 4 +- modules/mesh-delivery-checker/rules/facts.go | 6 +-- modules/mesh-delivery-checker/rules/judged.go | 10 ++--- modules/mesh-delivery-checker/rules/names.go | 2 +- .../mesh-delivery-checker/rules/results.go | 2 +- modules/mesh-delivery-checker/rules/seats.go | 2 +- modules/mesh-delivery-checker/rules/words.go | 6 +-- .../containerimageregistryclient/client.go | 4 +- .../client_test.go | 4 +- .../containerimageregistryclient}/go.mod | 6 +-- .../containerimageregistryclient/go.sum | 0 .../reference/reference.go | 0 .../reference/reference_test.go | 0 .../clients/gopackageregistryclient/client.go | 4 +- .../gopackageregistryclient/client_test.go | 4 +- .../go/clients/gopackageregistryclient/go.mod | 6 +-- .../go/clients/gopackageregistryclient/go.sum | 0 .../go/clients/meshbuildsclient/client.go | 2 +- .../clients/meshbuildsclient/client_test.go | 2 +- .../go/clients/meshbuildsclient/go.mod | 5 +++ .../go/clients/meshcatalogclient/branches.go | 4 +- .../meshcatalogclient/branches_test.go | 4 +- .../go/clients/meshcatalogclient/candidate.go | 2 +- .../go/clients/meshcatalogclient/catalog.go | 2 +- .../clients/meshcatalogclient/catalog_test.go | 2 +- .../meshcatalogclient/catalog_view_test.go | 2 +- .../go/clients/meshcatalogclient/entry.go | 2 +- .../clients/meshcatalogclient/entry_test.go | 2 +- .../clients/meshcatalogclient/fingerprint.go | 2 +- .../go/clients/meshcatalogclient/go.mod | 6 +-- .../go/clients/meshcatalogclient/go.sum | 0 .../clients/meshcatalogclient/imports_test.go | 0 .../go/clients/meshcatalogclient/manifest.go | 2 +- .../go/clients/meshcatalogclient/module.go | 4 +- .../meshcatalogclient/registrations.go | 4 +- .../meshcatalogclient/registrations_test.go | 2 +- .../go/clients/meshcatalogclient/verdict.go | 2 +- .../meshdeliverycheckerclient/client.go | 2 +- .../meshdeliverycheckerclient/client_test.go | 2 +- .../meshdeliverycheckerclient/codec.go | 2 +- .../clients/meshdeliverycheckerclient/go.mod | 8 ++++ .../meshdeliverycheckerclient/input.go | 2 +- .../go/clients/meshdeliveryclient/client.go | 2 +- .../clients/meshdeliveryclient/client_test.go | 2 +- .../go/clients/meshdeliveryclient/gate.go | 2 +- .../clients/meshdeliveryclient/gate_test.go | 2 +- .../go/clients/meshdeliveryclient/go.mod | 8 ++++ .../go/clients/meshdeliveryclient/go.sum | 0 .../go/clients/meshdeliveryclient/switched.go | 0 .../meshpipelinerunnerclient/client.go | 2 +- .../meshpipelinerunnerclient/client_test.go | 2 +- .../clients/meshpipelinerunnerclient/go.mod | 8 ++++ .../clients/meshpipelinerunnerclient/go.sum | 0 .../go/clients/meshwantsclient/assignment.go | 2 +- .../meshwantsclient/assignment_test.go | 2 +- .../go/clients/meshwantsclient/go.mod | 4 +- .../go/clients/meshwantsclient/go.sum | 0 .../go/clients/meshwantsclient/placed.go | 2 +- .../go/clients/meshwantsclient/wants.go | 2 +- .../go/clients/meshwantsclient/wants_test.go | 2 +- .../npmpackageregistryclient/client.go | 4 +- .../npmpackageregistryclient/client_test.go | 4 +- .../clients/npmpackageregistryclient/go.mod | 6 +-- .../clients/npmpackageregistryclient/go.sum | 0 .../ociartifactregistryclient/client.go | 4 +- .../ociartifactregistryclient/client_test.go | 4 +- .../clients/ociartifactregistryclient}/go.mod | 6 +-- .../clients/ociartifactregistryclient/go.sum | 0 .../seats/containerimageregistry/contract.go | 0 .../containerimageregistry/contract_test.go | 0 .../go/seats/containerimageregistry/go.mod | 3 ++ .../go/seats/git/contract.go | 0 .../go/seats/git/contract_test.go | 0 .../go/seats/git/go.mod | 3 ++ .../go/seats/gopackageregistry/contract.go | 0 .../seats/gopackageregistry/contract_test.go | 0 .../go/seats/gopackageregistry/go.mod | 3 ++ .../go/seats/meshartifactsweep/contract.go | 0 .../seats/meshartifactsweep/contract_test.go | 0 .../go/seats/meshartifactsweep/go.mod | 3 ++ .../go/seats/meshbuilds/contract.go | 0 .../go/seats/meshbuilds/contract_test.go | 0 .../go/seats/meshbuilds/go.mod | 3 ++ .../go/seats/meshcatalog/contract.go | 0 .../go/seats/meshcatalog/contract_test.go | 0 .../go/seats/meshcatalog/go.mod | 3 ++ .../go/seats/meshdelivery/contract.go | 0 .../go/seats/meshdelivery/contract_test.go | 0 .../go/seats/meshdelivery/go.mod | 3 ++ .../go/seats/meshdeliverychecker/contract.go | 0 .../meshdeliverychecker/contract_test.go | 0 .../go/seats/meshdeliverychecker/go.mod | 3 ++ .../go/seats/meshpipelinerunner/contract.go | 0 .../seats/meshpipelinerunner/contract_test.go | 0 .../go/seats/meshpipelinerunner/go.mod | 3 ++ .../go/seats/meshwants/contract.go | 0 .../go/seats/meshwants/contract_test.go | 0 .../go/seats/meshwants/go.mod | 3 ++ .../go/seats/nodebuildgo/contract.go | 0 .../go/seats/nodebuildgo/contract_test.go | 0 .../go/seats/nodebuildgo/go.mod | 3 ++ .../go/seats/nodebuildimage/contract.go | 0 .../go/seats/nodebuildimage/contract_test.go | 0 .../go/seats/nodebuildimage/go.mod | 3 ++ .../go/seats/nodebuildnode/contract.go | 0 .../go/seats/nodebuildnode/contract_test.go | 0 .../go/seats/nodebuildnode/go.mod | 3 ++ .../go/seats/npmpackageregistry/contract.go | 0 .../seats/npmpackageregistry/contract_test.go | 0 .../go/seats/npmpackageregistry/go.mod | 3 ++ .../go/seats/ociartifactregistry/contract.go | 0 .../ociartifactregistry/contract_test.go | 0 .../go/seats/ociartifactregistry/go.mod | 3 ++ .../mesh-delivery-contracts}/module.json | 0 .../parts/build-step.json | 0 .../parts/registry.json | 0 .../fixtures/events.json | 0 .../fixtures/states.json | 0 .../fixtures/verbs.json | 0 .../seats/container-image-registry/seat.json | 0 .../seats/git/fixtures/events.json | 0 .../seats/git/fixtures/states.json | 0 .../seats/git/fixtures/verbs.json | 0 .../seats/git/seat.json | 0 .../go-package-registry/fixtures/events.json | 0 .../go-package-registry/fixtures/verbs.json | 0 .../seats/go-package-registry/seat.json | 0 .../seats/mesh-artifact-store/seat.json | 0 .../mesh-artifact-sweep/fixtures/events.json | 0 .../mesh-artifact-sweep/fixtures/states.json | 0 .../mesh-artifact-sweep/fixtures/verbs.json | 0 .../seats/mesh-artifact-sweep/seat.json | 0 .../seats/mesh-builds/fixtures/events.json | 0 .../seats/mesh-builds/fixtures/verbs.json | 0 .../seats/mesh-builds/seat.json | 0 .../seats/mesh-catalog/fixtures/events.json | 0 .../seats/mesh-catalog/fixtures/states.json | 0 .../seats/mesh-catalog/fixtures/verbs.json | 0 .../seats/mesh-catalog/seat.json | 0 .../fixtures/events.json | 0 .../fixtures/states.json | 0 .../mesh-delivery-checker/fixtures/verbs.json | 0 .../seats/mesh-delivery-checker/seat.json | 0 .../seats/mesh-delivery/fixtures/events.json | 0 .../seats/mesh-delivery/fixtures/states.json | 0 .../seats/mesh-delivery/fixtures/verbs.json | 0 .../seats/mesh-delivery/seat.json | 0 .../mesh-pipeline-runner/fixtures/events.json | 0 .../mesh-pipeline-runner/fixtures/states.json | 0 .../mesh-pipeline-runner/fixtures/verbs.json | 0 .../seats/mesh-pipeline-runner/seat.json | 0 .../seats/mesh-wants/fixtures/events.json | 0 .../seats/mesh-wants/fixtures/states.json | 0 .../seats/mesh-wants/fixtures/verbs.json | 0 .../seats/mesh-wants/seat.json | 0 .../seats/node-build-go/fixtures/events.json | 0 .../seats/node-build-go/fixtures/states.json | 0 .../seats/node-build-go/fixtures/verbs.json | 0 .../seats/node-build-go/seat.json | 0 .../node-build-image/fixtures/events.json | 0 .../node-build-image/fixtures/states.json | 0 .../node-build-image/fixtures/verbs.json | 0 .../seats/node-build-image/seat.json | 0 .../node-build-node/fixtures/events.json | 0 .../node-build-node/fixtures/states.json | 0 .../seats/node-build-node/fixtures/verbs.json | 0 .../seats/node-build-node/seat.json | 0 .../npm-package-registry/fixtures/events.json | 0 .../npm-package-registry/fixtures/verbs.json | 0 .../seats/npm-package-registry/seat.json | 0 .../fixtures/events.json | 0 .../fixtures/states.json | 0 .../oci-artifact-registry/fixtures/verbs.json | 0 .../seats/oci-artifact-registry/seat.json | 0 .../seats/containerimageregistry/index.d.ts | 0 .../ts/seats/containerimageregistry/index.js | 0 .../containerimageregistry/package-lock.json | 0 .../seats/containerimageregistry/package.json | 0 .../parts/registry.d.ts | 0 .../containerimageregistry/parts/registry.js | 0 .../ts/seats/git/index.d.ts | 0 .../ts/seats/git/index.js | 0 .../ts/seats/git/package-lock.json | 0 .../ts/seats/git/package.json | 0 .../ts/seats/gopackageregistry/index.d.ts | 0 .../ts/seats/gopackageregistry/index.js | 0 .../seats/gopackageregistry/package-lock.json | 0 .../ts/seats/gopackageregistry/package.json | 0 .../gopackageregistry/parts/registry.d.ts | 0 .../seats/gopackageregistry/parts/registry.js | 0 .../ts/seats/meshartifactsweep/index.d.ts | 0 .../ts/seats/meshartifactsweep/index.js | 0 .../seats/meshartifactsweep/package-lock.json | 0 .../ts/seats/meshartifactsweep/package.json | 0 .../ts/seats/meshbuilds/index.d.ts | 0 .../ts/seats/meshbuilds/index.js | 0 .../ts/seats/meshbuilds/package-lock.json | 0 .../ts/seats/meshbuilds/package.json | 0 .../ts/seats/meshcatalog/index.d.ts | 0 .../ts/seats/meshcatalog/index.js | 0 .../ts/seats/meshcatalog/package-lock.json | 0 .../ts/seats/meshcatalog/package.json | 0 .../ts/seats/meshdelivery/index.d.ts | 0 .../ts/seats/meshdelivery/index.js | 0 .../ts/seats/meshdelivery/package-lock.json | 0 .../ts/seats/meshdelivery/package.json | 0 .../ts/seats/meshdeliverychecker/index.d.ts | 0 .../ts/seats/meshdeliverychecker/index.js | 0 .../meshdeliverychecker/package-lock.json | 0 .../ts/seats/meshdeliverychecker/package.json | 0 .../ts/seats/meshpipelinerunner/index.d.ts | 0 .../ts/seats/meshpipelinerunner/index.js | 0 .../meshpipelinerunner/package-lock.json | 0 .../ts/seats/meshpipelinerunner/package.json | 0 .../ts/seats/meshwants/index.d.ts | 0 .../ts/seats/meshwants/index.js | 0 .../ts/seats/meshwants/package-lock.json | 0 .../ts/seats/meshwants/package.json | 0 .../ts/seats/nodebuildgo/index.d.ts | 0 .../ts/seats/nodebuildgo/index.js | 0 .../ts/seats/nodebuildgo/package-lock.json | 0 .../ts/seats/nodebuildgo/package.json | 0 .../seats/nodebuildgo/parts/build-step.d.ts | 0 .../ts/seats/nodebuildgo/parts/build-step.js | 0 .../ts/seats/nodebuildimage/index.d.ts | 0 .../ts/seats/nodebuildimage/index.js | 0 .../ts/seats/nodebuildimage/package-lock.json | 0 .../ts/seats/nodebuildimage/package.json | 0 .../nodebuildimage/parts/build-step.d.ts | 0 .../seats/nodebuildimage/parts/build-step.js | 0 .../ts/seats/nodebuildnode/index.d.ts | 0 .../ts/seats/nodebuildnode/index.js | 0 .../ts/seats/nodebuildnode/package-lock.json | 0 .../ts/seats/nodebuildnode/package.json | 0 .../seats/nodebuildnode/parts/build-step.d.ts | 0 .../seats/nodebuildnode/parts/build-step.js | 0 .../ts/seats/npmpackageregistry/index.d.ts | 0 .../ts/seats/npmpackageregistry/index.js | 0 .../npmpackageregistry/package-lock.json | 0 .../ts/seats/npmpackageregistry/package.json | 0 .../npmpackageregistry/parts/registry.d.ts | 0 .../npmpackageregistry/parts/registry.js | 0 .../ts/seats/ociartifactregistry/index.d.ts | 0 .../ts/seats/ociartifactregistry/index.js | 0 .../ociartifactregistry/package-lock.json | 0 .../ts/seats/ociartifactregistry/package.json | 0 .../ociartifactregistry/parts/registry.d.ts | 0 .../ociartifactregistry/parts/registry.js | 0 .../mesh-delivery-forge-bridge-tools/main.go | 2 +- .../main_test.go | 6 +-- .../mesh-delivery-forge-bridge/gate_test.go | 6 +-- .../mesh-delivery-forge-bridge/groupask.go | 2 +- .../cmd/mesh-delivery-forge-bridge/groups.go | 2 +- .../mesh-delivery-forge-bridge/groups_test.go | 2 +- .../integration_test.go | 6 +-- .../cmd/mesh-delivery-forge-bridge/main.go | 6 +-- .../mesh-delivery-forge-bridge/main_test.go | 4 +- .../cmd/mesh-delivery-forge-bridge/open.go | 2 +- .../cmd/mesh-delivery-forge-bridge/owed.go | 8 ++-- .../forgemsg/forge.go | 4 +- .../forgemsg/forge_test.go | 2 +- .../forgemsg/go.mod | 6 +-- modules/mesh-delivery-forge-bridge/go.mod | 10 ++--- .../internal/bridge/bridge.go | 2 +- .../internal/bridge/bridge_test.go | 2 +- .../internal/bridge/call.go | 2 +- .../internal/bridge/forgemade.go | 2 +- .../internal/bridge/owed.go | 6 +-- .../internal/bridge/owed_test.go | 2 +- .../internal/bridge/tags.go | 2 +- .../internal/gitfixture/gitfixture.go | 4 +- .../internal/groups/groups.go | 6 +-- .../mesh-delivery-indexer-tools/catalog.go | 6 +-- .../cmd/mesh-delivery-indexer-tools/views.go | 4 +- .../cmd/mesh-delivery-indexer/buildmodules.go | 2 +- .../mesh-delivery-indexer/integration_test.go | 22 +++++----- .../cmd/mesh-delivery-indexer/main.go | 8 ++-- .../cmd/mesh-delivery-indexer/main_test.go | 2 +- .../cmd/mesh-delivery-indexer/named.go | 6 +-- .../cmd/mesh-delivery-indexer/named_events.go | 2 +- .../cmd/mesh-delivery-indexer/named_test.go | 2 +- .../cmd/mesh-delivery-indexer/objects.go | 2 +- .../packages_integration_test.go | 10 ++--- .../cmd/mesh-delivery-indexer/registry.go | 4 +- .../cmd/mesh-delivery-indexer/seatdefs.go | 2 +- .../cmd/mesh-delivery-indexer/series.go | 4 +- .../cmd/mesh-delivery-indexer/source.go | 2 +- .../cmd/mesh-delivery-indexer/steps.go | 2 +- .../mesh-delivery-indexer/toolchains_test.go | 2 +- .../cmd/mesh-delivery-indexer/verdicts.go | 2 +- .../cmd/mesh-delivery-indexer/versions.go | 8 ++-- .../cmd/mesh-delivery-indexer/views.go | 4 +- .../cmd/mesh-judge/main.go | 2 +- modules/mesh-delivery-indexer/go.mod | 32 +++++++-------- .../internal/fingerprint/fingerprint.go | 8 ++-- .../internal/fingerprint/fingerprint_test.go | 6 +-- .../internal/index/accepted.go | 4 +- .../internal/index/accepted_problems_test.go | 2 +- .../internal/index/artifacts.go | 4 +- .../internal/index/branch_builds.go | 4 +- .../internal/index/branch_builds_test.go | 4 +- .../internal/index/branch_take_in.go | 2 +- .../internal/index/branch_take_in_test.go | 4 +- .../internal/index/builds.go | 4 +- .../internal/index/bus_state.go | 2 +- .../index/candidate_manifests_test.go | 4 +- .../internal/index/candidate_values.go | 10 ++--- .../internal/index/candidates.go | 10 ++--- .../internal/index/catalog.go | 4 +- .../internal/index/catalog_branches_test.go | 2 +- .../internal/index/catalog_graph.go | 4 +- .../internal/index/catalog_graph_test.go | 6 +-- .../internal/index/catalog_revisions.go | 6 +-- .../internal/index/catalog_test.go | 4 +- .../internal/index/config_readers.go | 2 +- .../internal/index/control_records.go | 4 +- .../internal/index/control_records_test.go | 8 ++-- .../internal/index/domain.go | 2 +- .../internal/index/entry_verb.go | 2 +- .../internal/index/entry_verb_test.go | 2 +- .../internal/index/events.go | 2 +- .../internal/index/fingerprints.go | 2 +- .../internal/index/form.go | 6 +-- .../internal/index/graph.go | 6 +-- .../internal/index/imports.go | 6 +-- .../internal/index/imports_test.go | 6 +-- .../internal/index/index_test.go | 4 +- .../internal/index/inputs.go | 6 +-- .../internal/index/inputs_test.go | 4 +- .../internal/index/manifests.go | 4 +- .../internal/index/manifests_test.go | 2 +- .../internal/index/modules.go | 6 +-- .../internal/index/modules_test.go | 6 +-- .../internal/index/moves.go | 2 +- .../internal/index/named.go | 2 +- .../internal/index/named_test.go | 4 +- .../internal/index/newform_test.go | 2 +- .../internal/index/order.go | 2 +- .../internal/index/own.go | 6 +-- .../internal/index/package_users.go | 6 +-- .../internal/index/packages.go | 6 +-- .../internal/index/packages_values.go | 6 +-- .../internal/index/paths_backfill_test.go | 6 +-- .../internal/index/pending.go | 10 ++--- .../internal/index/pending_test.go | 6 +-- .../internal/index/pending_tools.go | 4 +- .../internal/index/previews.go | 12 +++--- .../internal/index/previews_test.go | 8 ++-- .../internal/index/previews_values.go | 4 +- .../internal/index/registered.go | 4 +- .../internal/index/registered_test.go | 4 +- .../internal/index/registrations.go | 4 +- .../internal/index/registrations_test.go | 4 +- .../internal/index/registrations_tools.go | 2 +- .../internal/index/remove_test.go | 4 +- .../internal/index/requirements.go | 2 +- .../internal/index/revision_tools.go | 2 +- .../internal/index/revision_verb.go | 2 +- .../internal/index/run_inputs.go | 4 +- .../internal/index/seatdefs.go | 6 +-- .../internal/index/seatsof.go | 2 +- .../internal/index/seed.go | 2 +- .../internal/index/seed_steps.go | 4 +- .../internal/index/seed_steps_test.go | 4 +- .../internal/index/series.go | 8 ++-- .../internal/index/source.go | 6 +-- .../internal/index/source_test.go | 2 +- .../internal/index/takein.go | 4 +- .../internal/index/taken.go | 2 +- .../internal/index/toolchains.go | 8 ++-- .../internal/index/toolchains_test.go | 10 ++--- .../internal/index/toolchains_values.go | 2 +- .../internal/index/trycandidates.go | 8 ++-- .../internal/index/verdicts.go | 4 +- .../internal/index/verdicts_test.go | 4 +- .../internal/index/versions.go | 4 +- .../internal/index/versions_edges.go | 6 +-- .../internal/index/versions_fill.go | 2 +- .../internal/index/versions_fill_edges.go | 4 +- .../internal/index/versions_test.go | 8 ++-- .../internal/index/views.go | 2 +- .../internal/index/wanted_names_test.go | 4 +- .../judge/busstate_test.go | 2 +- modules/mesh-delivery-indexer/judge/judge.go | 2 +- .../mesh-delivery-indexer/judge/judge_test.go | 2 +- .../judge/packagenames.go | 2 +- .../judge/packagenames_test.go | 2 +- .../mesh-delivery-indexer/manifest_test.go | 2 +- modules/mesh-delivery-indexer/takein/go.mod | 8 ++-- .../mesh-delivery-indexer/takein/takein.go | 2 +- .../takein/takein_test.go | 2 +- modules/mesh-delivery-indexer/takein/taken.go | 2 +- .../cmd/mesh-delivery-pipeline-tools/main.go | 2 +- .../cmd/mesh-delivery-pipeline/main.go | 2 +- .../run_integration_test.go | 6 +-- .../cmd/mesh-delivery-pipeline/start.go | 4 +- .../cmd/mesh-delivery-pipeline/steps.go | 6 +-- .../cmd/mesh-delivery-pipeline/verbs.go | 2 +- .../cmd/mesh-delivery-pipeline/verbs_test.go | 2 +- .../cmd/mesh-delivery-pipeline/views.go | 4 +- modules/mesh-delivery-pipeline/go.mod | 16 ++++---- .../internal/pipeline/approval.go | 2 +- .../internal/pipeline/bounds.go | 8 ++-- .../internal/pipeline/place.go | 14 +++---- .../internal/pipeline/place_test.go | 10 ++--- .../internal/pipeline/read.go | 2 +- .../internal/pipeline/read_test.go | 2 +- .../internal/pipeline/registrations.go | 4 +- .../internal/pipeline/registrations_test.go | 2 +- .../internal/pipeline/start.go | 10 ++--- .../internal/pipeline/start_test.go | 6 +-- .../internal/pipeline/steps.go | 12 +++--- .../internal/pipeline/steps_test.go | 6 +-- .../internal/pipeline/toolchain.go | 4 +- .../internal/pipeline/verbs.go | 8 ++-- .../internal/pipeline/verbs_test.go | 6 +-- .../mesh-delivery-pipeline/manifest_test.go | 4 +- .../buildrecord/buildrecord.go | 0 .../buildrecord/buildrecord_test.go | 0 .../testdata/build-record-build-agent.json | 0 .../mesh-delivery-sdk}/buildrun/keys_test.go | 2 +- .../mesh-delivery-sdk}/buildrun/stale.go | 2 +- .../mesh-delivery-sdk}/buildrun/stale_test.go | 2 +- .../mesh-delivery-sdk}/buildstep/ask.go | 0 .../mesh-delivery-sdk}/buildstep/ask_test.go | 4 +- .../buildstep/busfree_test.go | 0 .../mesh-delivery-sdk}/buildstep/capacity.go | 0 .../mesh-delivery-sdk}/buildstep/doc.go | 0 .../mesh-delivery-sdk}/buildstep/failure.go | 0 .../mesh-delivery-sdk}/buildstep/helpers.go | 0 .../buildstep/keptartifact.go | 0 .../mesh-delivery-sdk}/buildstep/launchers.go | 0 .../buildstep/launchers_test.go | 0 .../mesh-delivery-sdk}/buildstep/passing.go | 0 .../mesh-delivery-sdk}/buildstep/pause.go | 0 .../buildstep/pipelinestep.go | 0 .../mesh-delivery-sdk}/buildstep/request.go | 0 .../buildstep/request_test.go | 0 .../mesh-delivery-sdk}/buildstep/run.go | 0 .../buildstep/seat_acts_test.go | 2 +- .../mesh-delivery-sdk}/buildstep/step.go | 0 .../mesh-delivery-sdk}/buildstep/step_test.go | 0 .../mesh-delivery-sdk}/buildstep/steps.go | 0 .../mesh-delivery-sdk}/buildstep/toolchain.go | 0 .../buildstep/toolchain_test.go | 2 +- .../buildstep/toolchains.go | 0 .../buildstep/toolchains_test.go | 0 .../mesh-delivery-sdk}/buildstep/trees.go | 0 .../mesh-delivery-sdk}/catalogkey/key.go | 0 .../mesh-delivery-sdk}/catalogkey/key_test.go | 0 .../mesh-delivery-sdk}/composer/composer.go | 0 .../composer/composer_test.go | 0 .../mesh-delivery-sdk}/forgekey/forgekey.go | 0 .../forgekey/forgekey_test.go | 0 {sdk => modules/mesh-delivery-sdk}/go.mod | 6 +-- {sdk => modules/mesh-delivery-sdk}/go.sum | 0 .../mesh-delivery-sdk}/graph/entry.go | 2 +- .../mesh-delivery-sdk}/graph/graph.go | 4 +- .../mesh-delivery-sdk}/graph/graph_test.go | 2 +- .../mesh-delivery-sdk}/graph/reads.go | 0 .../mesh-delivery-sdk}/graph/waits.go | 0 .../grouppackages/grouppackages.go | 4 +- .../mesh-delivery-sdk}/kept/kept.go | 0 .../mesh-delivery-sdk}/kept/kept_test.go | 0 .../mesh-delivery-sdk}/manifest_test.go | 0 .../mesh-delivery-sdk}/module.json | 0 .../packagename/packagename.go | 2 +- .../mesh-delivery-sdk}/parts/bus.go | 0 .../mesh-delivery-sdk}/parts/parts.go | 0 .../mesh-delivery-sdk}/parts/parts_test.go | 0 .../mesh-delivery-sdk}/parts/receive.go | 0 .../mesh-delivery-sdk}/parts/receive_test.go | 0 .../mesh-delivery-sdk}/seatdefs/domain.go | 0 .../mesh-delivery-sdk}/seatdefs/seatdefs.go | 2 +- .../sourcebranches/sourcebranches.go | 2 +- .../mesh-delivery-sdk}/trunk/packages.go | 0 .../mesh-delivery-sdk}/trunk/trunk.go | 0 .../mesh-delivery-sdk}/trunk/trunk_test.go | 2 +- .../mesh-delivery-sdk}/window/window.go | 0 .../mesh-delivery-sdk}/window/window_test.go | 0 .../cmd/mesh-delivery-teller/assignerasks.go | 2 +- .../mesh-delivery-teller/assignerasks_test.go | 2 +- .../mesh-delivery-teller/integration_test.go | 2 +- .../cmd/mesh-delivery-teller/room_test.go | 2 +- .../cmd/mesh-delivery-teller/teller.go | 2 +- .../cmd/mesh-delivery-teller/teller_test.go | 4 +- .../cmd/mesh-delivery-teller/viewanswers.go | 2 +- .../mesh-delivery-teller/viewanswers_test.go | 2 +- modules/mesh-delivery-teller/go.mod | 18 ++++----- .../internal/ends/ends.go | 2 +- .../cmd/mesh-delivery-cli/main_test.go | 10 ++--- .../mesh-delivery-view-tools/catalogread.go | 2 +- .../cmd/mesh-delivery-view-tools/main.go | 2 +- .../mesh-delivery-view-tools/owners_test.go | 6 +-- .../tiers_rows_test.go | 8 ++-- .../mesh-delivery-view/integration_test.go | 12 +++--- .../cmd/mesh-delivery-view/main.go | 4 +- modules/mesh-delivery-view/go.mod | 22 +++++----- .../internal/view/answers_test.go | 2 +- .../internal/view/asks_test.go | 4 +- .../internal/view/backlog.go | 2 +- .../internal/view/backlog_test.go | 2 +- .../internal/view/catalog.go | 4 +- .../view/fingerprints_newform_test.go | 2 +- .../internal/view/fingerprints_test.go | 6 +-- .../internal/view/history.go | 4 +- .../mesh-delivery-view/internal/view/holds.go | 4 +- .../internal/view/holds_test.go | 6 +-- .../internal/view/motion.go | 2 +- .../mesh-delivery-view/internal/view/names.go | 6 +-- .../mesh-delivery-view/internal/view/reach.go | 8 ++-- .../internal/view/reach_test.go | 12 +++--- .../mesh-delivery-view/internal/view/read.go | 8 ++-- .../internal/view/status.go | 2 +- .../mesh-delivery-view/internal/view/tiers.go | 8 ++-- .../mesh-delivery-view/internal/view/usage.go | 4 +- .../mesh-delivery-view/internal/view/view.go | 14 +++---- .../internal/view/view_test.go | 4 +- .../internal/view/wants_test.go | 10 ++--- modules/mesh-delivery-view/manifest_test.go | 4 +- .../mesh-delivery-view/viewstate/answerkey.go | 2 +- modules/mesh-delivery-view/viewstate/go.mod | 18 ++++----- modules/mesh-delivery-view/viewstate/reach.go | 2 +- .../viewstate/viewstate_test.go | 2 +- .../cmd/mesh-delivery-watchman/consumes.go | 10 ++--- .../integration_test.go | 6 +-- modules/mesh-delivery-watchman/go.mod | 26 ++++++------ .../internal/watch/busstate.go | 2 +- .../internal/watch/findings_test.go | 6 +-- .../internal/watch/mirror.go | 8 ++-- .../internal/watch/pipelines.go | 4 +- .../internal/watch/pipelines_test.go | 4 +- .../internal/watch/records.go | 2 +- .../internal/watch/verdicts.go | 2 +- .../internal/watch/waits.go | 2 +- .../internal/watch/waits_test.go | 2 +- .../internal/watch/watch_test.go | 4 +- .../cmd/mesh-grants/integration_test.go | 4 +- modules/mesh-grants/cmd/mesh-grants/main.go | 4 +- modules/mesh-grants/go.mod | 16 ++++---- modules/mesh-grants/grants_test.go | 6 +-- modules/mesh-grants/grantsstate/go.mod | 14 +++---- modules/mesh-grants/grantsstate/grants.go | 2 +- modules/mesh-grants/grantsstate/userlist.go | 2 +- .../internal/buscompose/buildbacklog.go | 2 +- .../internal/buscompose/buscompose_test.go | 2 +- .../mesh-grants/internal/grants/catalog.go | 6 +-- .../mesh-grants/internal/grants/firstviews.go | 4 +- modules/mesh-grants/internal/grants/grants.go | 2 +- modules/mesh-grants/internal/grants/inputs.go | 6 +-- .../mesh-grants/internal/grants/rootfree.go | 2 +- modules/mesh-grants/internal/grants/tools.go | 2 +- .../internal/grants/wantedkeep_test.go | 2 +- 769 files changed, 1277 insertions(+), 1277 deletions(-) delete mode 100644 contracts/go/clients/meshbuildsclient/go.mod delete mode 100644 contracts/go/clients/meshdeliverycheckerclient/go.mod delete mode 100644 contracts/go/clients/meshdeliveryclient/go.mod delete mode 100644 contracts/go/clients/meshpipelinerunnerclient/go.mod delete mode 100644 contracts/go/seats/containerimageregistry/go.mod delete mode 100644 contracts/go/seats/git/go.mod delete mode 100644 contracts/go/seats/gopackageregistry/go.mod delete mode 100644 contracts/go/seats/meshartifactsweep/go.mod delete mode 100644 contracts/go/seats/meshbuilds/go.mod delete mode 100644 contracts/go/seats/meshcatalog/go.mod delete mode 100644 contracts/go/seats/meshdelivery/go.mod delete mode 100644 contracts/go/seats/meshdeliverychecker/go.mod delete mode 100644 contracts/go/seats/meshpipelinerunner/go.mod delete mode 100644 contracts/go/seats/meshwants/go.mod delete mode 100644 contracts/go/seats/nodebuildgo/go.mod delete mode 100644 contracts/go/seats/nodebuildimage/go.mod delete mode 100644 contracts/go/seats/nodebuildnode/go.mod delete mode 100644 contracts/go/seats/npmpackageregistry/go.mod delete mode 100644 contracts/go/seats/ociartifactregistry/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/clients/containerimageregistryclient/client.go (94%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/containerimageregistryclient/client_test.go (91%) rename {contracts/go/clients/ociartifactregistryclient => modules/mesh-delivery-contracts/go/clients/containerimageregistryclient}/go.mod (53%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/containerimageregistryclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/containerimageregistryclient/reference/reference.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/containerimageregistryclient/reference/reference_test.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/gopackageregistryclient/client.go (94%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/gopackageregistryclient/client_test.go (92%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/gopackageregistryclient/go.mod (53%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/gopackageregistryclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshbuildsclient/client.go (96%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshbuildsclient/client_test.go (96%) create mode 100644 modules/mesh-delivery-contracts/go/clients/meshbuildsclient/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/branches.go (98%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/branches_test.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/candidate.go (96%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/catalog.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/catalog_test.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/catalog_view_test.go (98%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/entry.go (98%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/entry_test.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/fingerprint.go (92%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/go.mod (53%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/imports_test.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/manifest.go (96%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/module.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/registrations.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/registrations_test.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshcatalogclient/verdict.go (98%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliverycheckerclient/client.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliverycheckerclient/client_test.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliverycheckerclient/codec.go (98%) create mode 100644 modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliverycheckerclient/input.go (95%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliveryclient/client.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliveryclient/client_test.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliveryclient/gate.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliveryclient/gate_test.go (99%) create mode 100644 modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliveryclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshdeliveryclient/switched.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshpipelinerunnerclient/client.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshpipelinerunnerclient/client_test.go (95%) create mode 100644 modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshpipelinerunnerclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshwantsclient/assignment.go (98%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshwantsclient/assignment_test.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshwantsclient/go.mod (62%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshwantsclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshwantsclient/placed.go (97%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshwantsclient/wants.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/meshwantsclient/wants_test.go (99%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/npmpackageregistryclient/client.go (94%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/npmpackageregistryclient/client_test.go (92%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/npmpackageregistryclient/go.mod (53%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/npmpackageregistryclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/ociartifactregistryclient/client.go (94%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/ociartifactregistryclient/client_test.go (92%) rename {contracts/go/clients/containerimageregistryclient => modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient}/go.mod (53%) rename {contracts => modules/mesh-delivery-contracts}/go/clients/ociartifactregistryclient/go.sum (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/containerimageregistry/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/containerimageregistry/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/containerimageregistry/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/git/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/git/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/git/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/gopackageregistry/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/gopackageregistry/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/gopackageregistry/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshartifactsweep/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshartifactsweep/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/meshartifactsweep/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshbuilds/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshbuilds/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/meshbuilds/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshcatalog/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshcatalog/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/meshcatalog/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshdelivery/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshdelivery/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/meshdelivery/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshdeliverychecker/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshdeliverychecker/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshpipelinerunner/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshpipelinerunner/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshwants/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/meshwants/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/meshwants/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/nodebuildgo/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/nodebuildgo/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/nodebuildgo/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/nodebuildimage/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/nodebuildimage/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/nodebuildimage/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/nodebuildnode/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/nodebuildnode/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/nodebuildnode/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/npmpackageregistry/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/npmpackageregistry/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/npmpackageregistry/go.mod rename {contracts => modules/mesh-delivery-contracts}/go/seats/ociartifactregistry/contract.go (100%) rename {contracts => modules/mesh-delivery-contracts}/go/seats/ociartifactregistry/contract_test.go (100%) create mode 100644 modules/mesh-delivery-contracts/go/seats/ociartifactregistry/go.mod rename {contracts => modules/mesh-delivery-contracts}/module.json (100%) rename {contracts => modules/mesh-delivery-contracts}/parts/build-step.json (100%) rename {contracts => modules/mesh-delivery-contracts}/parts/registry.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/container-image-registry/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/container-image-registry/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/container-image-registry/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/container-image-registry/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/git/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/git/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/git/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/git/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/go-package-registry/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/go-package-registry/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/go-package-registry/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-artifact-store/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-artifact-sweep/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-artifact-sweep/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-artifact-sweep/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-artifact-sweep/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-builds/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-builds/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-builds/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-catalog/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-catalog/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-catalog/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-catalog/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery-checker/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery-checker/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery-checker/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery-checker/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-delivery/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-pipeline-runner/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-pipeline-runner/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-pipeline-runner/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-pipeline-runner/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-wants/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-wants/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-wants/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/mesh-wants/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-go/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-go/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-go/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-go/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-image/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-image/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-image/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-image/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-node/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-node/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-node/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/node-build-node/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/npm-package-registry/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/npm-package-registry/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/npm-package-registry/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/oci-artifact-registry/fixtures/events.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/oci-artifact-registry/fixtures/states.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/oci-artifact-registry/fixtures/verbs.json (100%) rename {contracts => modules/mesh-delivery-contracts}/seats/oci-artifact-registry/seat.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/containerimageregistry/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/containerimageregistry/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/containerimageregistry/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/containerimageregistry/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/containerimageregistry/parts/registry.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/containerimageregistry/parts/registry.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/git/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/git/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/git/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/git/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/gopackageregistry/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/gopackageregistry/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/gopackageregistry/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/gopackageregistry/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/gopackageregistry/parts/registry.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/gopackageregistry/parts/registry.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshartifactsweep/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshartifactsweep/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshartifactsweep/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshartifactsweep/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshbuilds/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshbuilds/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshbuilds/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshbuilds/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshcatalog/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshcatalog/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshcatalog/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshcatalog/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdelivery/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdelivery/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdelivery/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdelivery/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdeliverychecker/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdeliverychecker/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdeliverychecker/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshdeliverychecker/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshpipelinerunner/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshpipelinerunner/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshpipelinerunner/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshpipelinerunner/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshwants/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshwants/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshwants/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/meshwants/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildgo/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildgo/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildgo/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildgo/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildgo/parts/build-step.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildgo/parts/build-step.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildimage/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildimage/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildimage/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildimage/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildimage/parts/build-step.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildimage/parts/build-step.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildnode/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildnode/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildnode/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildnode/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildnode/parts/build-step.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/nodebuildnode/parts/build-step.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/npmpackageregistry/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/npmpackageregistry/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/npmpackageregistry/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/npmpackageregistry/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/npmpackageregistry/parts/registry.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/npmpackageregistry/parts/registry.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/ociartifactregistry/index.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/ociartifactregistry/index.js (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/ociartifactregistry/package-lock.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/ociartifactregistry/package.json (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/ociartifactregistry/parts/registry.d.ts (100%) rename {contracts => modules/mesh-delivery-contracts}/ts/seats/ociartifactregistry/parts/registry.js (100%) rename {sdk => modules/mesh-delivery-sdk}/buildrecord/buildrecord.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildrecord/buildrecord_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildrecord/testdata/build-record-build-agent.json (100%) rename {sdk => modules/mesh-delivery-sdk}/buildrun/keys_test.go (93%) rename {sdk => modules/mesh-delivery-sdk}/buildrun/stale.go (99%) rename {sdk => modules/mesh-delivery-sdk}/buildrun/stale_test.go (99%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/ask.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/ask_test.go (99%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/busfree_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/capacity.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/doc.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/failure.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/helpers.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/keptartifact.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/launchers.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/launchers_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/passing.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/pause.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/pipelinestep.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/request.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/request_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/run.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/seat_acts_test.go (86%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/step.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/step_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/steps.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/toolchain.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/toolchain_test.go (95%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/toolchains.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/toolchains_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/buildstep/trees.go (100%) rename {sdk => modules/mesh-delivery-sdk}/catalogkey/key.go (100%) rename {sdk => modules/mesh-delivery-sdk}/catalogkey/key_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/composer/composer.go (100%) rename {sdk => modules/mesh-delivery-sdk}/composer/composer_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/forgekey/forgekey.go (100%) rename {sdk => modules/mesh-delivery-sdk}/forgekey/forgekey_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/go.mod (58%) rename {sdk => modules/mesh-delivery-sdk}/go.sum (100%) rename {sdk => modules/mesh-delivery-sdk}/graph/entry.go (91%) rename {sdk => modules/mesh-delivery-sdk}/graph/graph.go (99%) rename {sdk => modules/mesh-delivery-sdk}/graph/graph_test.go (99%) rename {sdk => modules/mesh-delivery-sdk}/graph/reads.go (100%) rename {sdk => modules/mesh-delivery-sdk}/graph/waits.go (100%) rename {sdk => modules/mesh-delivery-sdk}/grouppackages/grouppackages.go (94%) rename {sdk => modules/mesh-delivery-sdk}/kept/kept.go (100%) rename {sdk => modules/mesh-delivery-sdk}/kept/kept_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/manifest_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/module.json (100%) rename {sdk => modules/mesh-delivery-sdk}/packagename/packagename.go (96%) rename {sdk => modules/mesh-delivery-sdk}/parts/bus.go (100%) rename {sdk => modules/mesh-delivery-sdk}/parts/parts.go (100%) rename {sdk => modules/mesh-delivery-sdk}/parts/parts_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/parts/receive.go (100%) rename {sdk => modules/mesh-delivery-sdk}/parts/receive_test.go (100%) rename {sdk => modules/mesh-delivery-sdk}/seatdefs/domain.go (100%) rename {sdk => modules/mesh-delivery-sdk}/seatdefs/seatdefs.go (98%) rename {sdk => modules/mesh-delivery-sdk}/sourcebranches/sourcebranches.go (97%) rename {sdk => modules/mesh-delivery-sdk}/trunk/packages.go (100%) rename {sdk => modules/mesh-delivery-sdk}/trunk/trunk.go (100%) rename {sdk => modules/mesh-delivery-sdk}/trunk/trunk_test.go (98%) rename {sdk => modules/mesh-delivery-sdk}/window/window.go (100%) rename {sdk => modules/mesh-delivery-sdk}/window/window_test.go (100%) diff --git a/contracts/go/clients/meshbuildsclient/go.mod b/contracts/go/clients/meshbuildsclient/go.mod deleted file mode 100644 index f28889ab..00000000 --- a/contracts/go/clients/meshbuildsclient/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/meshbuildsclient - -go 1.26.0 - -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds v0.0.0-00010101000000-000000000000 diff --git a/contracts/go/clients/meshdeliverycheckerclient/go.mod b/contracts/go/clients/meshdeliverycheckerclient/go.mod deleted file mode 100644 index ba6062bf..00000000 --- a/contracts/go/clients/meshdeliverycheckerclient/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient - -go 1.26.0 - -require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 -) diff --git a/contracts/go/clients/meshdeliveryclient/go.mod b/contracts/go/clients/meshdeliveryclient/go.mod deleted file mode 100644 index 7b85ffc7..00000000 --- a/contracts/go/clients/meshdeliveryclient/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient - -go 1.26.0 - -require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 -) diff --git a/contracts/go/clients/meshpipelinerunnerclient/go.mod b/contracts/go/clients/meshpipelinerunnerclient/go.mod deleted file mode 100644 index cb8aa7cc..00000000 --- a/contracts/go/clients/meshpipelinerunnerclient/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/meshpipelinerunnerclient - -go 1.26.0 - -require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 -) diff --git a/contracts/go/seats/containerimageregistry/go.mod b/contracts/go/seats/containerimageregistry/go.mod deleted file mode 100644 index 26ccf02f..00000000 --- a/contracts/go/seats/containerimageregistry/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry - -go 1.26.0 diff --git a/contracts/go/seats/git/go.mod b/contracts/go/seats/git/go.mod deleted file mode 100644 index 1f36d290..00000000 --- a/contracts/go/seats/git/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/git - -go 1.26.0 diff --git a/contracts/go/seats/gopackageregistry/go.mod b/contracts/go/seats/gopackageregistry/go.mod deleted file mode 100644 index 065f758b..00000000 --- a/contracts/go/seats/gopackageregistry/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry - -go 1.26.0 diff --git a/contracts/go/seats/meshartifactsweep/go.mod b/contracts/go/seats/meshartifactsweep/go.mod deleted file mode 100644 index 77f0649b..00000000 --- a/contracts/go/seats/meshartifactsweep/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep - -go 1.26.0 diff --git a/contracts/go/seats/meshbuilds/go.mod b/contracts/go/seats/meshbuilds/go.mod deleted file mode 100644 index 784ddfa7..00000000 --- a/contracts/go/seats/meshbuilds/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds - -go 1.26.0 diff --git a/contracts/go/seats/meshcatalog/go.mod b/contracts/go/seats/meshcatalog/go.mod deleted file mode 100644 index e6fd10a2..00000000 --- a/contracts/go/seats/meshcatalog/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog - -go 1.26.0 diff --git a/contracts/go/seats/meshdelivery/go.mod b/contracts/go/seats/meshdelivery/go.mod deleted file mode 100644 index 12356bcf..00000000 --- a/contracts/go/seats/meshdelivery/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery - -go 1.26.0 diff --git a/contracts/go/seats/meshdeliverychecker/go.mod b/contracts/go/seats/meshdeliverychecker/go.mod deleted file mode 100644 index d50dcda1..00000000 --- a/contracts/go/seats/meshdeliverychecker/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker - -go 1.26.0 diff --git a/contracts/go/seats/meshpipelinerunner/go.mod b/contracts/go/seats/meshpipelinerunner/go.mod deleted file mode 100644 index 6ca3dc30..00000000 --- a/contracts/go/seats/meshpipelinerunner/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner - -go 1.26.0 diff --git a/contracts/go/seats/meshwants/go.mod b/contracts/go/seats/meshwants/go.mod deleted file mode 100644 index edcaa257..00000000 --- a/contracts/go/seats/meshwants/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants - -go 1.26.0 diff --git a/contracts/go/seats/nodebuildgo/go.mod b/contracts/go/seats/nodebuildgo/go.mod deleted file mode 100644 index 7d786c14..00000000 --- a/contracts/go/seats/nodebuildgo/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo - -go 1.26.0 diff --git a/contracts/go/seats/nodebuildimage/go.mod b/contracts/go/seats/nodebuildimage/go.mod deleted file mode 100644 index 33cb3f5b..00000000 --- a/contracts/go/seats/nodebuildimage/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildimage - -go 1.26.0 diff --git a/contracts/go/seats/nodebuildnode/go.mod b/contracts/go/seats/nodebuildnode/go.mod deleted file mode 100644 index 836a6dc8..00000000 --- a/contracts/go/seats/nodebuildnode/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildnode - -go 1.26.0 diff --git a/contracts/go/seats/npmpackageregistry/go.mod b/contracts/go/seats/npmpackageregistry/go.mod deleted file mode 100644 index acddbbfb..00000000 --- a/contracts/go/seats/npmpackageregistry/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry - -go 1.26.0 diff --git a/contracts/go/seats/ociartifactregistry/go.mod b/contracts/go/seats/ociartifactregistry/go.mod deleted file mode 100644 index f145223c..00000000 --- a/contracts/go/seats/ociartifactregistry/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry - -go 1.26.0 diff --git a/modules/mesh-delivery-assigner/asks/asks.go b/modules/mesh-delivery-assigner/asks/asks.go index 01cc61cd..3b178434 100644 --- a/modules/mesh-delivery-assigner/asks/asks.go +++ b/modules/mesh-delivery-assigner/asks/asks.go @@ -16,10 +16,10 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/kept" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/kept" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-assigner/asks/go.mod b/modules/mesh-delivery-assigner/asks/go.mod index 6ed0f8c5..07db4a1d 100644 --- a/modules/mesh-delivery-assigner/asks/go.mod +++ b/modules/mesh-delivery-assigner/asks/go.mod @@ -5,19 +5,19 @@ go 1.26.0 require ( git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 ) require ( git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/askagain_tool.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/askagain_tool.go index 762a44b1..93529ea5 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/askagain_tool.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/askagain_tool.go @@ -10,8 +10,8 @@ import ( occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-teller/tellerevents" stdio "git.novox.be/novox/mesh-sdk/go" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended.go index 0dcbb895..98c0465d 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended.go @@ -5,7 +5,7 @@ import ( "fmt" "sync" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/process" "github.com/nats-io/nats.go/jetstream" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended_test.go index ffe0c50f..d73743e2 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/buildended_test.go @@ -5,8 +5,8 @@ import ( "reflect" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-assigner/internal/assign" ) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go index 82b95a25..ebffbad0 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/composed.go @@ -5,7 +5,7 @@ import ( "strings" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" ) // Every node's published compositions, read only to compare (novox/hq ADR 0593 §8): each node's engine writes its own diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graph_tools.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graph_tools.go index 5710deb4..9a6abb17 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graph_tools.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graph_tools.go @@ -4,7 +4,7 @@ import ( "context" "encoding/json" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/busstate" "mesh-delivery-assigner/internal/assigngraph" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept.go index 9ea4bbec..c013f018 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept.go @@ -10,8 +10,8 @@ import ( "strings" "time" - mcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + mcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/keys" "mesh-delivery-assigner/internal/assign" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept_test.go index a40924b9..ad7637be 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/graphkept_test.go @@ -7,10 +7,10 @@ import ( "testing" "time" - mcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + mcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "mesh-delivery-assigner/internal/buckets" ) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/halves.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/halves.go index 40fd4ee2..8d617071 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/halves.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/halves.go @@ -9,9 +9,9 @@ import ( "sync" "time" - mcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/graph" + mcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs.go index 0bbb0bf7..dd3bb904 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs.go @@ -10,7 +10,7 @@ import ( "sort" "strings" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs_test.go index b1e754ba..071c6899 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/inputs_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) // Design 47 G §354: the seat mesh-wants' verb `input` answers a kept step input by its digest, and assigner_inputs reads them. diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/integration_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/integration_test.go index 8cc79fdd..80f04ef5 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/integration_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/integration_test.go @@ -23,15 +23,15 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - mdcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + mdcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" "github.com/nats-io/nats-server/v2/server" "github.com/nats-io/nats.go" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside.go index c8d18551..1af5f53c 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside.go @@ -18,9 +18,9 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" "git.novox.be/novox/mesh-sdk/go/seatdef" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside_test.go index 690716b4..4a06236e 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/outside_test.go @@ -12,9 +12,9 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" - mdc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + mdc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "mesh-delivery-assigner/internal/assign" "mesh-delivery-assigner/internal/buckets" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass.go index 49a73c03..71581d0e 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass.go @@ -13,9 +13,9 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "git.novox.be/novox/mesh-networking/modules/mesh-wireguard/go/overlay" "git.novox.be/novox/mesh-sdk/go/motion" @@ -24,7 +24,7 @@ import ( oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" "git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient/enginereads" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go index f884f342..e8398ead 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pass_test.go @@ -17,13 +17,13 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" wdc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - mdc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - mdseat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + mdc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + mdseat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-teller/tellerevents" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" @@ -39,7 +39,7 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient/enginereads" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "mesh-delivery-assigner/internal/assign" plc "mesh-delivery-assigner/internal/assignment" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines.go index 43fe85ed..63951fc7 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines.go @@ -14,11 +14,11 @@ import ( "github.com/nats-io/nats.go/jetstream" - mcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - mprc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshpipelinerunnerclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - mpcat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - mpr "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + mcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + mprc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + mpcat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + mpr "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines_test.go index 8b4a6da8..19a2d4a4 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/pipelines_test.go @@ -12,11 +12,11 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - mpcat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - mpr "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + mpcat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + mpr "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/puts.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/puts.go index 727ec0b9..dab41719 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/puts.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/puts.go @@ -13,10 +13,10 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat.go index fb1a8330..51bcb989 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat.go @@ -16,9 +16,9 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - mdcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - mdc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + mdcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + mdc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools.go index c55cb433..3b524998 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools.go @@ -14,7 +14,7 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" mmac "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go index 8f486829..4d20b28c 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/seat_tools_test.go @@ -16,9 +16,9 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/seatlist" @@ -30,7 +30,7 @@ import ( "git.novox.be/novox/mesh-sdk/go/views" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "mesh-delivery-assigner/internal/assign" "mesh-delivery-assigner/internal/assigngraph" plc "mesh-delivery-assigner/internal/assignment" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go index d7921b8c..c4e1a470 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/tools.go @@ -15,9 +15,9 @@ import ( "sync" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" stdio "git.novox.be/novox/mesh-sdk/go" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/verbs.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/verbs.go index 9fa5ea2f..ec642a9c 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/verbs.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/verbs.go @@ -9,7 +9,7 @@ import ( "git.novox.be/novox/mesh-sdk/go/catalogue" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "mesh-delivery-assigner/internal/assign" ) diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/wants_tools.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/wants_tools.go index 6e492341..58e760f5 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/wants_tools.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/wants_tools.go @@ -12,9 +12,9 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" meshhandacts "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" stdio "git.novox.be/novox/mesh-sdk/go" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go index bb0c9fdb..e591751b 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world.go @@ -13,12 +13,12 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" wdc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" - mdc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/graph" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + mdc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" mmac "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" diff --git a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world_test.go b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world_test.go index 7dcc316d..7cf9ea22 100644 --- a/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world_test.go +++ b/modules/mesh-delivery-assigner/cmd/mesh-delivery-assigner/world_test.go @@ -7,10 +7,10 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" - "git.novox.be/novox/mesh-delivery/sdk/graph" ) // fakeManifests is the indexer's manifests bucket in memory. diff --git a/modules/mesh-delivery-assigner/go.mod b/modules/mesh-delivery-assigner/go.mod index e7424a86..0c0d4050 100644 --- a/modules/mesh-delivery-assigner/go.mod +++ b/modules/mesh-delivery-assigner/go.mod @@ -8,7 +8,7 @@ require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats-server/v2 v2.11.17 github.com/nats-io/nats.go v1.54.0 @@ -27,7 +27,7 @@ require ( golang.org/x/time v0.16.0 // indirect ) -require git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 require ( git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient v0.0.0-00010101000000-000000000000 @@ -36,7 +36,7 @@ require ( git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel v0.0.0-00010101000000-000000000000 ) -replace git.novox.be/novox/mesh-delivery/sdk => ../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../mesh-delivery-sdk replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds => ../mesh-delivery-builder/builds @@ -50,21 +50,21 @@ require git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdo require git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient v0.0.0-00010101000000-000000000000 -require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient => ../../contracts/go/clients/meshcatalogclient +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient => ../mesh-delivery-contracts/go/clients/meshcatalogclient -require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient => ../../contracts/go/clients/meshdeliveryclient +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient => ../mesh-delivery-contracts/go/clients/meshdeliveryclient -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog => ../../contracts/go/seats/meshcatalog +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog => ../mesh-delivery-contracts/go/seats/meshcatalog -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery => ../../contracts/go/seats/meshdelivery +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery => ../mesh-delivery-contracts/go/seats/meshdelivery require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 @@ -84,18 +84,18 @@ require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate v0 replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate => ../mesh-delivery-view/viewstate -require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 -require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient => ../../contracts/go/clients/meshdeliverycheckerclient +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient => ../mesh-delivery-contracts/go/clients/meshdeliverycheckerclient require git.novox.be/novox/mesh-networking/modules/mesh-wireguard/go v0.0.0-00010101000000-000000000000 require ( - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-networking/modules/mesh-connectivity-contracts/go/seats/theprivatenetwork v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-assigner/internal/assign/askjson.go b/modules/mesh-delivery-assigner/internal/assign/askjson.go index cbe97275..c7d9f48f 100644 --- a/modules/mesh-delivery-assigner/internal/assign/askjson.go +++ b/modules/mesh-delivery-assigner/internal/assign/askjson.go @@ -3,8 +3,8 @@ package assign import ( "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "time" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" diff --git a/modules/mesh-delivery-assigner/internal/assign/asks.go b/modules/mesh-delivery-assigner/internal/assign/asks.go index 4ed5b876..59e1c8fd 100644 --- a/modules/mesh-delivery-assigner/internal/assign/asks.go +++ b/modules/mesh-delivery-assigner/internal/assign/asks.go @@ -7,10 +7,10 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" diff --git a/modules/mesh-delivery-assigner/internal/assign/asks_test.go b/modules/mesh-delivery-assigner/internal/assign/asks_test.go index f8c560a9..3e23b1db 100644 --- a/modules/mesh-delivery-assigner/internal/assign/asks_test.go +++ b/modules/mesh-delivery-assigner/internal/assign/asks_test.go @@ -10,10 +10,10 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" diff --git a/modules/mesh-delivery-assigner/internal/assign/ended.go b/modules/mesh-delivery-assigner/internal/assign/ended.go index 52e03a77..98985d51 100644 --- a/modules/mesh-delivery-assigner/internal/assign/ended.go +++ b/modules/mesh-delivery-assigner/internal/assign/ended.go @@ -10,8 +10,8 @@ import ( occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-teller/tellerevents" "mesh-delivery-assigner/internal/puts" diff --git a/modules/mesh-delivery-assigner/internal/assign/put.go b/modules/mesh-delivery-assigner/internal/assign/put.go index eb139832..bec0609e 100644 --- a/modules/mesh-delivery-assigner/internal/assign/put.go +++ b/modules/mesh-delivery-assigner/internal/assign/put.go @@ -3,10 +3,10 @@ package assign import ( "fmt" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "mesh-delivery-assigner/internal/puts" "time" diff --git a/modules/mesh-delivery-assigner/internal/assign/seat.go b/modules/mesh-delivery-assigner/internal/assign/seat.go index 48b6ee28..df3b604d 100644 --- a/modules/mesh-delivery-assigner/internal/assign/seat.go +++ b/modules/mesh-delivery-assigner/internal/assign/seat.go @@ -7,8 +7,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" mmac "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" diff --git a/modules/mesh-delivery-assigner/internal/assign/verbs.go b/modules/mesh-delivery-assigner/internal/assign/verbs.go index 86466d74..a6d806f5 100644 --- a/modules/mesh-delivery-assigner/internal/assign/verbs.go +++ b/modules/mesh-delivery-assigner/internal/assign/verbs.go @@ -3,7 +3,7 @@ package assign import ( "slices" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // verbWaiting says why the module's want on node waits for a verb it invokes (novox/hq ADR 0614 §2): the first seat verb or diff --git a/modules/mesh-delivery-assigner/internal/assign/wants.go b/modules/mesh-delivery-assigner/internal/assign/wants.go index d0418df9..7412c757 100644 --- a/modules/mesh-delivery-assigner/internal/assign/wants.go +++ b/modules/mesh-delivery-assigner/internal/assign/wants.go @@ -4,9 +4,9 @@ import ( "fmt" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "maps" "mesh-delivery-assigner/internal/puts" @@ -19,7 +19,7 @@ import ( "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds/forms" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // Module is what the six rules read of one module (ADR 0429 §6, ADR 0528 clause 3): its newest fingerprint F at the diff --git a/modules/mesh-delivery-assigner/internal/assign/wants_test.go b/modules/mesh-delivery-assigner/internal/assign/wants_test.go index fce06ef2..d0f3be9f 100644 --- a/modules/mesh-delivery-assigner/internal/assign/wants_test.go +++ b/modules/mesh-delivery-assigner/internal/assign/wants_test.go @@ -3,10 +3,10 @@ package assign import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - mwc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + mwc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "mesh-delivery-assigner/internal/puts" "reflect" @@ -18,7 +18,7 @@ import ( "git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient" "git.novox.be/novox/mesh-sdk/go/catalogue" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) func fpOf(c byte) string { return meshcatalogclient.SourcePrefix2 + strings.Repeat(string(c), 64) } diff --git a/modules/mesh-delivery-assigner/internal/assigngraph/compute.go b/modules/mesh-delivery-assigner/internal/assigngraph/compute.go index a9667c8f..2825d6d5 100644 --- a/modules/mesh-delivery-assigner/internal/assigngraph/compute.go +++ b/modules/mesh-delivery-assigner/internal/assigngraph/compute.go @@ -14,8 +14,8 @@ import ( "strings" mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/keys" "mesh-delivery-assigner/internal/assignment" diff --git a/modules/mesh-delivery-assigner/internal/assigngraph/graph_test.go b/modules/mesh-delivery-assigner/internal/assigngraph/graph_test.go index e2c92d67..767c88e6 100644 --- a/modules/mesh-delivery-assigner/internal/assigngraph/graph_test.go +++ b/modules/mesh-delivery-assigner/internal/assigngraph/graph_test.go @@ -10,9 +10,9 @@ import ( "time" mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) type memObjects map[string][]byte diff --git a/modules/mesh-delivery-assigner/internal/assigngraph/keep.go b/modules/mesh-delivery-assigner/internal/assigngraph/keep.go index 4440c469..7ce8600e 100644 --- a/modules/mesh-delivery-assigner/internal/assigngraph/keep.go +++ b/modules/mesh-delivery-assigner/internal/assigngraph/keep.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) // RevisionsObjects is the local name of the kept data in the assigner's manifest's old `objects` section (design 47 diff --git a/modules/mesh-delivery-assigner/internal/assigngraph/verbs.go b/modules/mesh-delivery-assigner/internal/assigngraph/verbs.go index 69181919..3b7d2d6c 100644 --- a/modules/mesh-delivery-assigner/internal/assigngraph/verbs.go +++ b/modules/mesh-delivery-assigner/internal/assigngraph/verbs.go @@ -7,7 +7,7 @@ import ( "maps" "slices" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) // ErrNoCandidate answers a verb asked of a candidate's revision: the assigner keeps none (the candidate's graph and the diff --git a/modules/mesh-delivery-assigner/internal/buckets/buckets.go b/modules/mesh-delivery-assigner/internal/buckets/buckets.go index 8a9d215e..0cf5be2d 100644 --- a/modules/mesh-delivery-assigner/internal/buckets/buckets.go +++ b/modules/mesh-delivery-assigner/internal/buckets/buckets.go @@ -7,10 +7,10 @@ package buckets import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" watchdogs "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - delivery "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - wants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + delivery "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + wants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" plc "mesh-delivery-assigner/internal/assignment" diff --git a/modules/mesh-delivery-assigner/internal/judge/judge.go b/modules/mesh-delivery-assigner/internal/judge/judge.go index 2b1d7b55..44b83b75 100644 --- a/modules/mesh-delivery-assigner/internal/judge/judge.go +++ b/modules/mesh-delivery-assigner/internal/judge/judge.go @@ -9,7 +9,7 @@ import ( "encoding/json" "fmt" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - mdcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" + mdcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" "reflect" "sort" "strconv" diff --git a/modules/mesh-delivery-assigner/internal/judge/judge_test.go b/modules/mesh-delivery-assigner/internal/judge/judge_test.go index 786b5d5d..4d2ed8cc 100644 --- a/modules/mesh-delivery-assigner/internal/judge/judge_test.go +++ b/modules/mesh-delivery-assigner/internal/judge/judge_test.go @@ -2,7 +2,7 @@ package judge import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - mdcc "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" + mdcc "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" "slices" "strings" "testing" diff --git a/modules/mesh-delivery-assigner/internal/puts/puts.go b/modules/mesh-delivery-assigner/internal/puts/puts.go index 58a6d053..06da4c03 100644 --- a/modules/mesh-delivery-assigner/internal/puts/puts.go +++ b/modules/mesh-delivery-assigner/internal/puts/puts.go @@ -10,7 +10,7 @@ import ( "time" nec "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-assigner/manifest_test.go b/modules/mesh-delivery-assigner/manifest_test.go index 5139cf28..94ad01ef 100644 --- a/modules/mesh-delivery-assigner/manifest_test.go +++ b/modules/mesh-delivery-assigner/manifest_test.go @@ -3,8 +3,8 @@ package manifest import ( "encoding/json" "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-teller/tellerevents" "os" "reflect" diff --git a/modules/mesh-delivery-builder/buildrun/asks.go b/modules/mesh-delivery-builder/buildrun/asks.go index 632eb504..26cc3e2c 100644 --- a/modules/mesh-delivery-builder/buildrun/asks.go +++ b/modules/mesh-delivery-builder/buildrun/asks.go @@ -13,7 +13,7 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/busretry" ) diff --git a/modules/mesh-delivery-builder/buildrun/asks_integration_test.go b/modules/mesh-delivery-builder/buildrun/asks_integration_test.go index eb012857..f268e8a9 100644 --- a/modules/mesh-delivery-builder/buildrun/asks_integration_test.go +++ b/modules/mesh-delivery-builder/buildrun/asks_integration_test.go @@ -11,7 +11,7 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/testbus" ) diff --git a/modules/mesh-delivery-builder/buildrun/asks_test.go b/modules/mesh-delivery-builder/buildrun/asks_test.go index 379a0579..fac93dbd 100644 --- a/modules/mesh-delivery-builder/buildrun/asks_test.go +++ b/modules/mesh-delivery-builder/buildrun/asks_test.go @@ -13,7 +13,7 @@ import ( "github.com/nats-io/nats.go" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/busretry" "git.novox.be/novox/mesh-sdk/go/health" ) diff --git a/modules/mesh-delivery-builder/buildrun/buildseats.go b/modules/mesh-delivery-builder/buildrun/buildseats.go index b4c75e11..43288e31 100644 --- a/modules/mesh-delivery-builder/buildrun/buildseats.go +++ b/modules/mesh-delivery-builder/buildrun/buildseats.go @@ -6,7 +6,7 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/seatdef" ) diff --git a/modules/mesh-delivery-builder/buildrun/choose.go b/modules/mesh-delivery-builder/buildrun/choose.go index b8997280..777edf9d 100644 --- a/modules/mesh-delivery-builder/buildrun/choose.go +++ b/modules/mesh-delivery-builder/buildrun/choose.go @@ -5,7 +5,7 @@ import ( "sort" "strings" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // ChooseNodes picks up to want build nodes for a language (ADR 0478 clause 3): the nodes whose toolchains key reports the diff --git a/modules/mesh-delivery-builder/buildrun/choose_test.go b/modules/mesh-delivery-builder/buildrun/choose_test.go index d39e70c6..705a878a 100644 --- a/modules/mesh-delivery-builder/buildrun/choose_test.go +++ b/modules/mesh-delivery-builder/buildrun/choose_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) const digest = "sha256:2222222222222222222222222222222222222222222222222222222222222222" diff --git a/modules/mesh-delivery-builder/buildrun/faults.go b/modules/mesh-delivery-builder/buildrun/faults.go index e1054451..0d9b4def 100644 --- a/modules/mesh-delivery-builder/buildrun/faults.go +++ b/modules/mesh-delivery-builder/buildrun/faults.go @@ -4,7 +4,7 @@ import ( "strings" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The words of a key that failed on a transport fault (design 47 G §568, A-76): `transport fault: , , diff --git a/modules/mesh-delivery-builder/buildrun/go.mod b/modules/mesh-delivery-builder/buildrun/go.mod index 9255332a..8db44536 100644 --- a/modules/mesh-delivery-builder/buildrun/go.mod +++ b/modules/mesh-delivery-builder/buildrun/go.mod @@ -7,9 +7,9 @@ require ( git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats.go v1.54.0 ) diff --git a/modules/mesh-delivery-builder/buildrun/heardends.go b/modules/mesh-delivery-builder/buildrun/heardends.go index f9c16ea6..965eda80 100644 --- a/modules/mesh-delivery-builder/buildrun/heardends.go +++ b/modules/mesh-delivery-builder/buildrun/heardends.go @@ -7,7 +7,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // **A step's end is never only its own watch's to hear** (the lost check of 2026-10-28: mesh-catalog #553's verdict diff --git a/modules/mesh-delivery-builder/buildrun/lostask.go b/modules/mesh-delivery-builder/buildrun/lostask.go index a3392412..839bdc0a 100644 --- a/modules/mesh-delivery-builder/buildrun/lostask.go +++ b/modules/mesh-delivery-builder/buildrun/lostask.go @@ -12,7 +12,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/health" "git.novox.be/novox/mesh-sdk/go/process" ) diff --git a/modules/mesh-delivery-builder/buildrun/standing.go b/modules/mesh-delivery-builder/buildrun/standing.go index 379e0725..4ba65b08 100644 --- a/modules/mesh-delivery-builder/buildrun/standing.go +++ b/modules/mesh-delivery-builder/buildrun/standing.go @@ -10,8 +10,8 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/process" ) diff --git a/modules/mesh-delivery-builder/buildrun/standing_test.go b/modules/mesh-delivery-builder/buildrun/standing_test.go index 192757c8..c7073583 100644 --- a/modules/mesh-delivery-builder/buildrun/standing_test.go +++ b/modules/mesh-delivery-builder/buildrun/standing_test.go @@ -13,7 +13,7 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) // placing is a value of the state `assignments` placing modules on node. diff --git a/modules/mesh-delivery-builder/buildrun/steps.go b/modules/mesh-delivery-builder/buildrun/steps.go index 37566008..cf4ddaaf 100644 --- a/modules/mesh-delivery-builder/buildrun/steps.go +++ b/modules/mesh-delivery-builder/buildrun/steps.go @@ -6,7 +6,7 @@ import ( "fmt" "time" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // Caller calls a tool of a module on one named machine (mesh-sdk process.Conn.CallOn; ADR 0469 clause 3). diff --git a/modules/mesh-delivery-builder/buildrun/steps_resume_test.go b/modules/mesh-delivery-builder/buildrun/steps_resume_test.go index cb8c4203..06e3513c 100644 --- a/modules/mesh-delivery-builder/buildrun/steps_resume_test.go +++ b/modules/mesh-delivery-builder/buildrun/steps_resume_test.go @@ -9,7 +9,7 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/busretry" ) diff --git a/modules/mesh-delivery-builder/buildrun/steps_test.go b/modules/mesh-delivery-builder/buildrun/steps_test.go index c94a6314..89174b09 100644 --- a/modules/mesh-delivery-builder/buildrun/steps_test.go +++ b/modules/mesh-delivery-builder/buildrun/steps_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) type call struct { diff --git a/modules/mesh-delivery-builder/buildrun/toolchaingate.go b/modules/mesh-delivery-builder/buildrun/toolchaingate.go index 122c2b6c..ef2b7ff0 100644 --- a/modules/mesh-delivery-builder/buildrun/toolchaingate.go +++ b/modules/mesh-delivery-builder/buildrun/toolchaingate.go @@ -9,9 +9,9 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // A build module writes . of its toolchains state on every node it runs on, and nothing deletes the key diff --git a/modules/mesh-delivery-builder/buildrun/toolchaingate_test.go b/modules/mesh-delivery-builder/buildrun/toolchaingate_test.go index 8f526bce..3e41cc44 100644 --- a/modules/mesh-delivery-builder/buildrun/toolchaingate_test.go +++ b/modules/mesh-delivery-builder/buildrun/toolchaingate_test.go @@ -11,8 +11,8 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" - meshwants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + meshwants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) func gateReport(t *testing.T, node, version string, at time.Time) (string, []byte) { diff --git a/modules/mesh-delivery-builder/buildrun/toolchains.go b/modules/mesh-delivery-builder/buildrun/toolchains.go index 12b47bb5..755dfe4a 100644 --- a/modules/mesh-delivery-builder/buildrun/toolchains.go +++ b/modules/mesh-delivery-builder/buildrun/toolchains.go @@ -4,7 +4,7 @@ import ( "sort" "sync" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // ToolchainsHeardState is the builder's old state section of the toolchains it heard (design 47 G §604, §546): one key diff --git a/modules/mesh-delivery-builder/buildrun/toolchains_test.go b/modules/mesh-delivery-builder/buildrun/toolchains_test.go index 82b78c5e..5f8fa1a8 100644 --- a/modules/mesh-delivery-builder/buildrun/toolchains_test.go +++ b/modules/mesh-delivery-builder/buildrun/toolchains_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) func tc(language, version, digest string) buildstep.Toolchain { diff --git a/modules/mesh-delivery-builder/builds/builds.go b/modules/mesh-delivery-builder/builds/builds.go index 59a765e5..a434eec5 100644 --- a/modules/mesh-delivery-builder/builds/builds.go +++ b/modules/mesh-delivery-builder/builds/builds.go @@ -11,14 +11,14 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient/reference" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/reference" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds/forms" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/kept" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/kept" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-builder/builds/builds_test.go b/modules/mesh-delivery-builder/builds/builds_test.go index 8e272b67..dbc554fa 100644 --- a/modules/mesh-delivery-builder/builds/builds_test.go +++ b/modules/mesh-delivery-builder/builds/builds_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/sdk/buildrecord" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrecord" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-builder/builds/forms/forms.go b/modules/mesh-delivery-builder/builds/forms/forms.go index bd6d7ac8..73c24cde 100644 --- a/modules/mesh-delivery-builder/builds/forms/forms.go +++ b/modules/mesh-delivery-builder/builds/forms/forms.go @@ -10,9 +10,9 @@ import ( "sort" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient/reference" - containerimageregistry "git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry" - ociartifactregistry "git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/reference" + containerimageregistry "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry" + ociartifactregistry "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-builder/builds/go.mod b/modules/mesh-delivery-builder/builds/go.mod index 2ce35b5e..43c013de 100644 --- a/modules/mesh-delivery-builder/builds/go.mod +++ b/modules/mesh-delivery-builder/builds/go.mod @@ -3,11 +3,11 @@ module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 ) -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect diff --git a/modules/mesh-delivery-builder/builds/log.go b/modules/mesh-delivery-builder/builds/log.go index 455000d2..3eed958b 100644 --- a/modules/mesh-delivery-builder/builds/log.go +++ b/modules/mesh-delivery-builder/builds/log.go @@ -6,7 +6,7 @@ import ( "sort" "time" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build.go index a91ec8a2..1524a176 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build.go @@ -6,8 +6,8 @@ import ( "fmt" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/buscalls" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build_test.go index 071a5ea4..7feed31e 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/build_test.go @@ -8,8 +8,8 @@ import ( "mesh-delivery-builder/internal/build" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // Design 47 G §589, A-87: the tools bundle reads each watched branch's newest catalog graph entry of the module from the catalog diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/main.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/main.go index 4f5603ab..805d2874 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/main.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/main.go @@ -15,11 +15,11 @@ import ( "time" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/seatdef" "git.novox.be/novox/mesh-sdk/go/seatlist" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/reservedname_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/reservedname_test.go index 26b51535..a91daa9e 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/reservedname_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/reservedname_test.go @@ -6,7 +6,7 @@ import ( "time" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" "mesh-delivery-builder/internal/build" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains.go index 06ec72b9..08765666 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains.go @@ -8,7 +8,7 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains_test.go index 70429914..cfaa9dd2 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder-tools/toolchains_test.go @@ -8,7 +8,7 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog.go index 79a4fc77..7e975128 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog.go @@ -8,9 +8,9 @@ import ( "sync" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/views" "mesh-delivery-builder/internal/build" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog_test.go index 87768101..40ec236c 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalog_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // TestTheManifestOfAnEntryIsReadByItsDigest: the builder reads a manifest from the entry that holds it, by the entry's manifest diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalogholder_integration_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalogholder_integration_test.go index 699e8cb4..6461d173 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalogholder_integration_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/catalogholder_integration_test.go @@ -14,8 +14,8 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/seatdef" "git.novox.be/novox/mesh-sdk/go/seatlist" "git.novox.be/novox/mesh-sdk/go/seatlist/seatlisttest" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/gone_integration_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/gone_integration_test.go index 4c50f3ca..a76aaf99 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/gone_integration_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/gone_integration_test.go @@ -12,8 +12,8 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - sweep "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + sweep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep" ) // A done key whose blob the artifact store no longer holds is built again, by the builder whole against the bus diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/held.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/held.go index 475c7050..2069c451 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/held.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/held.go @@ -11,7 +11,7 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "mesh-delivery-builder/internal/build" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go index fd9cd17c..06d3e574 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go @@ -27,13 +27,13 @@ import ( // another repository's, by its published version, so the builder is tested against the real pulling code. runner "git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/buscompose" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/views/viewstest" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go index 0b8c7e46..4aaa8bc2 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/main.go @@ -31,11 +31,11 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - sweep "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + sweep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/operatorask" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/seatlist" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/names.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/names.go index d53dc33e..1a97f7e0 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/names.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/names.go @@ -1,7 +1,7 @@ package main import ( - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // The holders and buckets the builder names, taken from its own manifest (module.json: its `reads`) and from the holders' diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/refused_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/refused_test.go index ab4875a0..80fcec9f 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/refused_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/refused_test.go @@ -27,10 +27,10 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs" - sweep "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds/forms" + sweep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep" "mesh-delivery-builder/internal/build" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish.go index 7d201fb3..2e0e8fa8 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish.go @@ -14,8 +14,8 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-builder/internal/versions" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish_test.go index 0532ed69..641cb9ae 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/republish_test.go @@ -10,10 +10,10 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry" "mesh-delivery-builder/internal/build" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve.go index 195107df..1582b99d 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve.go @@ -5,7 +5,7 @@ import ( "encoding/json" "errors" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" "strings" "sync/atomic" "time" @@ -13,8 +13,8 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-builder/internal/build" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve_test.go index 24a349b5..72c84c5a 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reserve_test.go @@ -10,9 +10,9 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-builder/internal/versions" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb.go index 49bd2b14..5eedc4a0 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb.go @@ -6,8 +6,8 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb_test.go index ef87f65e..12da9d44 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/reservedverb_test.go @@ -5,8 +5,8 @@ import ( "encoding/json" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-builder/internal/versions" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/seats.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/seats.go index e3bff8b8..75e75287 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/seats.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/seats.go @@ -8,10 +8,10 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry" "mesh-delivery-builder/internal/build" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step.go index 87aabd3e..adc0a2bd 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step.go @@ -9,9 +9,9 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-builder/internal/build" diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step_integration_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step_integration_test.go index 8041973f..8c4a19ca 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step_integration_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/step_integration_test.go @@ -9,8 +9,8 @@ import ( "github.com/nats-io/nats.go" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" ) // The runner's build step ask on the seat mesh-builds' accept subject, naming an entry by its fingerprint, is built through the diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/stored.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/stored.go index 0cf302c1..37cfc18f 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/stored.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/stored.go @@ -9,7 +9,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - sweep "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep" + sweep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep" "mesh-delivery-builder/internal/build" ) diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains.go index b1168c3d..2581cd56 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains.go @@ -13,11 +13,11 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildnode" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // toolchainReportedPrefixes are the subjects the three build seats say toolchain-reported on, a node its last token (design diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains_test.go index 60cc8989..30bd5ca2 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/toolchains_test.go @@ -13,8 +13,8 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" ) // memState is the state toolchains-heard in memory. diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/versions.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/versions.go index e7d9d932..c0976448 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/versions.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/versions.go @@ -12,8 +12,8 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" - gitseat "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + gitseat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-builder/internal/build" diff --git a/modules/mesh-delivery-builder/go.mod b/modules/mesh-delivery-builder/go.mod index 18e70a23..1be7f8d2 100644 --- a/modules/mesh-delivery-builder/go.mod +++ b/modules/mesh-delivery-builder/go.mod @@ -11,18 +11,18 @@ require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/git v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildnode v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 @@ -48,23 +48,23 @@ replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun require ( git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) -replace git.novox.be/novox/mesh-delivery/sdk => ../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../mesh-delivery-sdk -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep v0.0.0-00010101000000-000000000000 require git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient v0.0.0-00010101000000-000000000000 require git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep => ../../contracts/go/seats/meshartifactsweep +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep => ../mesh-delivery-contracts/go/seats/meshartifactsweep require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/gopackageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/npmpackageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/ociartifactregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-builder/internal/build/askagain.go b/modules/mesh-delivery-builder/internal/build/askagain.go index 9c3ab4b1..3d235d02 100644 --- a/modules/mesh-delivery-builder/internal/build/askagain.go +++ b/modules/mesh-delivery-builder/internal/build/askagain.go @@ -13,7 +13,7 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // **An ask that can no longer be answered is asked again** (novox/hq issue 1945). A build seat's stream gives an ask up diff --git a/modules/mesh-delivery-builder/internal/build/askfake_test.go b/modules/mesh-delivery-builder/internal/build/askfake_test.go index c5bcffb2..f7766958 100644 --- a/modules/mesh-delivery-builder/internal/build/askfake_test.go +++ b/modules/mesh-delivery-builder/internal/build/askfake_test.go @@ -7,7 +7,7 @@ import ( "maps" "strings" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The build runner a build node runs an ask with is mesh-build-go's (novox/hq ADR 0593 §1), another repository's, diff --git a/modules/mesh-delivery-builder/internal/build/buildread.go b/modules/mesh-delivery-builder/internal/build/buildread.go index 859e434c..11b06ff2 100644 --- a/modules/mesh-delivery-builder/internal/build/buildread.go +++ b/modules/mesh-delivery-builder/internal/build/buildread.go @@ -10,7 +10,7 @@ import ( "time" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" ) diff --git a/modules/mesh-delivery-builder/internal/build/candidates.go b/modules/mesh-delivery-builder/internal/build/candidates.go index 0c7ea2c0..fe62b3fc 100644 --- a/modules/mesh-delivery-builder/internal/build/candidates.go +++ b/modules/mesh-delivery-builder/internal/build/candidates.go @@ -4,7 +4,7 @@ import ( "context" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // agreedFor are the toolchains the build nodes agree on now, for the languages of the manifest's plan: the toolchains the diff --git a/modules/mesh-delivery-builder/internal/build/entry_test.go b/modules/mesh-delivery-builder/internal/build/entry_test.go index 0eaa2008..eba6952f 100644 --- a/modules/mesh-delivery-builder/internal/build/entry_test.go +++ b/modules/mesh-delivery-builder/internal/build/entry_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // TestAnEntryOfTheCatalogHalfIsTheFormTheBuilderBuildsBy: a catalog graph entry gives the builder its fingerprint, manifest digest, diff --git a/modules/mesh-delivery-builder/internal/build/fakes_test.go b/modules/mesh-delivery-builder/internal/build/fakes_test.go index fb490343..b7ece699 100644 --- a/modules/mesh-delivery-builder/internal/build/fakes_test.go +++ b/modules/mesh-delivery-builder/internal/build/fakes_test.go @@ -11,7 +11,7 @@ import ( "time" "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) type call struct { diff --git a/modules/mesh-delivery-builder/internal/build/fixtures_test.go b/modules/mesh-delivery-builder/internal/build/fixtures_test.go index 956a831c..2d43d88a 100644 --- a/modules/mesh-delivery-builder/internal/build/fixtures_test.go +++ b/modules/mesh-delivery-builder/internal/build/fixtures_test.go @@ -9,7 +9,7 @@ import ( "time" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // result reads a captured step value of mesh-build-image (testdata/captured/README) and returns its result. diff --git a/modules/mesh-delivery-builder/internal/build/followups_test.go b/modules/mesh-delivery-builder/internal/build/followups_test.go index b2bfdd0b..82fd518a 100644 --- a/modules/mesh-delivery-builder/internal/build/followups_test.go +++ b/modules/mesh-delivery-builder/internal/build/followups_test.go @@ -5,9 +5,9 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // 1660: at start the builder closes a key left building for a fingerprint the module no longer has. diff --git a/modules/mesh-delivery-builder/internal/build/gone_test.go b/modules/mesh-delivery-builder/internal/build/gone_test.go index fea331ca..fdea85ef 100644 --- a/modules/mesh-delivery-builder/internal/build/gone_test.go +++ b/modules/mesh-delivery-builder/internal/build/gone_test.go @@ -9,8 +9,8 @@ import ( "sync" "testing" - sweep "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + sweep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep" ) // A done key whose blob the artifact store no longer holds is built again (novox/hq issue 1937): on 2026-10-24 the diff --git a/modules/mesh-delivery-builder/internal/build/imports_test.go b/modules/mesh-delivery-builder/internal/build/imports_test.go index ac12fc0f..1d8fe7b3 100644 --- a/modules/mesh-delivery-builder/internal/build/imports_test.go +++ b/modules/mesh-delivery-builder/internal/build/imports_test.go @@ -7,7 +7,7 @@ import ( "testing" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // ADR 0593 §2 (F3): the imports a Go build module answers at a build's end reach the done key and the log's end entry, diff --git a/modules/mesh-delivery-builder/internal/build/numbers.go b/modules/mesh-delivery-builder/internal/build/numbers.go index 7b3a6521..15b1f888 100644 --- a/modules/mesh-delivery-builder/internal/build/numbers.go +++ b/modules/mesh-delivery-builder/internal/build/numbers.go @@ -3,15 +3,15 @@ package build import ( "context" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" "git.novox.be/novox/mesh-sdk/go/catalogue" "strconv" "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "mesh-delivery-builder/internal/versions" ) diff --git a/modules/mesh-delivery-builder/internal/build/queue.go b/modules/mesh-delivery-builder/internal/build/queue.go index 68d94081..ea5b9903 100644 --- a/modules/mesh-delivery-builder/internal/build/queue.go +++ b/modules/mesh-delivery-builder/internal/build/queue.go @@ -7,7 +7,7 @@ import ( "time" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // **The tool builder_seat_queue reads a build seat's stream as the builder reads it** (novox/hq issue 1945 note 62; the diff --git a/modules/mesh-delivery-builder/internal/build/r4e_test.go b/modules/mesh-delivery-builder/internal/build/r4e_test.go index 63731dc6..c1957e8f 100644 --- a/modules/mesh-delivery-builder/internal/build/r4e_test.go +++ b/modules/mesh-delivery-builder/internal/build/r4e_test.go @@ -5,10 +5,10 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-builder/internal/build/reserve_test.go b/modules/mesh-delivery-builder/internal/build/reserve_test.go index c28993ad..8bd84216 100644 --- a/modules/mesh-delivery-builder/internal/build/reserve_test.go +++ b/modules/mesh-delivery-builder/internal/build/reserve_test.go @@ -10,10 +10,10 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/catalogue" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/internal/build/retake.go b/modules/mesh-delivery-builder/internal/build/retake.go index 22dd339c..e27865d2 100644 --- a/modules/mesh-delivery-builder/internal/build/retake.go +++ b/modules/mesh-delivery-builder/internal/build/retake.go @@ -9,7 +9,7 @@ import ( "strings" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "mesh-delivery-builder/internal/versions" diff --git a/modules/mesh-delivery-builder/internal/build/retake_test.go b/modules/mesh-delivery-builder/internal/build/retake_test.go index c3b4ba0f..3d8ee4a9 100644 --- a/modules/mesh-delivery-builder/internal/build/retake_test.go +++ b/modules/mesh-delivery-builder/internal/build/retake_test.go @@ -8,7 +8,7 @@ import ( "testing" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" ) diff --git a/modules/mesh-delivery-builder/internal/build/run.go b/modules/mesh-delivery-builder/internal/build/run.go index 66c5ae51..a6a59251 100644 --- a/modules/mesh-delivery-builder/internal/build/run.go +++ b/modules/mesh-delivery-builder/internal/build/run.go @@ -14,15 +14,15 @@ import ( "sync" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - sweep "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshartifactsweep" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds/forms" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" - repotrunk "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + sweep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + repotrunk "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/busretry" "git.novox.be/novox/mesh-sdk/go/catalogue" diff --git a/modules/mesh-delivery-builder/internal/build/run_test.go b/modules/mesh-delivery-builder/internal/build/run_test.go index 37c788f3..94060ed9 100644 --- a/modules/mesh-delivery-builder/internal/build/run_test.go +++ b/modules/mesh-delivery-builder/internal/build/run_test.go @@ -14,12 +14,12 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds/forms" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" diff --git a/modules/mesh-delivery-builder/internal/build/step.go b/modules/mesh-delivery-builder/internal/build/step.go index e996f757..f92fa35d 100644 --- a/modules/mesh-delivery-builder/internal/build/step.go +++ b/modules/mesh-delivery-builder/internal/build/step.go @@ -5,9 +5,9 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // **A candidate's build is the runner's step ask** (design 47 G A-97, A-84, A-99): the runner's asking half asks the seat diff --git a/modules/mesh-delivery-builder/internal/build/step_test.go b/modules/mesh-delivery-builder/internal/build/step_test.go index 6cadbc28..225ff77e 100644 --- a/modules/mesh-delivery-builder/internal/build/step_test.go +++ b/modules/mesh-delivery-builder/internal/build/step_test.go @@ -7,9 +7,9 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-builder/internal/build/stuck.go b/modules/mesh-delivery-builder/internal/build/stuck.go index cf2fd1c5..677a09e2 100644 --- a/modules/mesh-delivery-builder/internal/build/stuck.go +++ b/modules/mesh-delivery-builder/internal/build/stuck.go @@ -15,7 +15,7 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The builder's tools (novox/hq issue 1945; the instruction "tools are how a module is spoken to"): builder_stuck reads diff --git a/modules/mesh-delivery-builder/internal/build/toolchains.go b/modules/mesh-delivery-builder/internal/build/toolchains.go index f2477c0a..72603b86 100644 --- a/modules/mesh-delivery-builder/internal/build/toolchains.go +++ b/modules/mesh-delivery-builder/internal/build/toolchains.go @@ -1,9 +1,9 @@ package build import ( - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // CatalogToolchains are the toolchains of a build, by language, as a module's value holds them (the catalog's form names diff --git a/modules/mesh-delivery-builder/internal/build/waits.go b/modules/mesh-delivery-builder/internal/build/waits.go index 2c1f2cf5..b0f6d225 100644 --- a/modules/mesh-delivery-builder/internal/build/waits.go +++ b/modules/mesh-delivery-builder/internal/build/waits.go @@ -8,9 +8,9 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // **The builder's toolchain wait** (design 47 G §672, §267, §276): the builder holds an entry while its fingerprint names a diff --git a/modules/mesh-delivery-builder/internal/versions/entrynames.go b/modules/mesh-delivery-builder/internal/versions/entrynames.go index 3551f6f4..71b6e8d9 100644 --- a/modules/mesh-delivery-builder/internal/versions/entrynames.go +++ b/modules/mesh-delivery-builder/internal/versions/entrynames.go @@ -8,8 +8,8 @@ import ( "strings" "sync" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-builder/internal/versions/entrynames_test.go b/modules/mesh-delivery-builder/internal/versions/entrynames_test.go index 06e8ecf7..32644613 100644 --- a/modules/mesh-delivery-builder/internal/versions/entrynames_test.go +++ b/modules/mesh-delivery-builder/internal/versions/entrynames_test.go @@ -5,7 +5,7 @@ import ( "reflect" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) func named(module, artifact, name string) meshcatalog.CatalogEntry { diff --git a/modules/mesh-delivery-builder/internal/versions/names.go b/modules/mesh-delivery-builder/internal/versions/names.go index a4b7e796..4eead917 100644 --- a/modules/mesh-delivery-builder/internal/versions/names.go +++ b/modules/mesh-delivery-builder/internal/versions/names.go @@ -7,7 +7,7 @@ import ( "sort" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // PackagesState is the indexer's packages state as the builder reads it (its manifest's reads grant): its keys, and one diff --git a/modules/mesh-delivery-builder/internal/versions/oldform.go b/modules/mesh-delivery-builder/internal/versions/oldform.go index 6f435865..5262b492 100644 --- a/modules/mesh-delivery-builder/internal/versions/oldform.go +++ b/modules/mesh-delivery-builder/internal/versions/oldform.go @@ -11,7 +11,7 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds/forms" - "git.novox.be/novox/mesh-delivery/sdk/window" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/window" ) // The old reference form's window (design 51 *Every build keeps the old reference form*, ADR 0624 §1, ADR 0618 §2-§4, diff --git a/modules/mesh-delivery-builder/internal/versions/republish.go b/modules/mesh-delivery-builder/internal/versions/republish.go index e5950b5d..4a361b56 100644 --- a/modules/mesh-delivery-builder/internal/versions/republish.go +++ b/modules/mesh-delivery-builder/internal/versions/republish.go @@ -12,7 +12,7 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // **A reserved version left unpublished is published again by the builder, on an event or by a person's tool** (design 47 diff --git a/modules/mesh-delivery-builder/internal/versions/republish_test.go b/modules/mesh-delivery-builder/internal/versions/republish_test.go index b8c65419..1fbe7274 100644 --- a/modules/mesh-delivery-builder/internal/versions/republish_test.go +++ b/modules/mesh-delivery-builder/internal/versions/republish_test.go @@ -10,7 +10,7 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) type queueMem struct { diff --git a/modules/mesh-delivery-builder/internal/versions/reserve.go b/modules/mesh-delivery-builder/internal/versions/reserve.go index 1a983510..fbe2e814 100644 --- a/modules/mesh-delivery-builder/internal/versions/reserve.go +++ b/modules/mesh-delivery-builder/internal/versions/reserve.go @@ -10,8 +10,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // **The reservation is one key per module and MAJOR.MINOR** (design 47 G §369, §52): the builder keeps in its old state diff --git a/modules/mesh-delivery-builder/internal/versions/reserve_test.go b/modules/mesh-delivery-builder/internal/versions/reserve_test.go index 49ab3a06..4fd7936f 100644 --- a/modules/mesh-delivery-builder/internal/versions/reserve_test.go +++ b/modules/mesh-delivery-builder/internal/versions/reserve_test.go @@ -5,7 +5,7 @@ import ( "context" "errors" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" "reflect" "testing" "time" diff --git a/modules/mesh-delivery-builder/internal/versions/reservedname_test.go b/modules/mesh-delivery-builder/internal/versions/reservedname_test.go index ee5b48f2..27896ed6 100644 --- a/modules/mesh-delivery-builder/internal/versions/reservedname_test.go +++ b/modules/mesh-delivery-builder/internal/versions/reservedname_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // TestReservedByNameAnswersFromTheViewAndTheCatalog: design 47 G §572, §582, A-70 — a package's name (an npm name or a Go diff --git a/modules/mesh-delivery-builder/internal/versions/tools.go b/modules/mesh-delivery-builder/internal/versions/tools.go index a375b67d..09ef4f7a 100644 --- a/modules/mesh-delivery-builder/internal/versions/tools.go +++ b/modules/mesh-delivery-builder/internal/versions/tools.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" ) // The builder's tools of its versions (design 51 *Events of the builder*, *Tools of the builder*). diff --git a/modules/mesh-delivery-checker/checkermsg/checkermsg.go b/modules/mesh-delivery-checker/checkermsg/checkermsg.go index 37db5412..978f52f2 100644 --- a/modules/mesh-delivery-checker/checkermsg/checkermsg.go +++ b/modules/mesh-delivery-checker/checkermsg/checkermsg.go @@ -9,7 +9,7 @@ import ( "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" ) // The events of the checker's stream checks. diff --git a/modules/mesh-delivery-checker/checkermsg/go.mod b/modules/mesh-delivery-checker/checkermsg/go.mod index 0575be60..7181d0e9 100644 --- a/modules/mesh-delivery-checker/checkermsg/go.mod +++ b/modules/mesh-delivery-checker/checkermsg/go.mod @@ -2,9 +2,9 @@ module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg go 1.26.0 -require git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-checker/cmd/mesh-checking-program/main.go b/modules/mesh-delivery-checker/cmd/mesh-checking-program/main.go index facd8559..fc829bc8 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-checking-program/main.go +++ b/modules/mesh-delivery-checker/cmd/mesh-checking-program/main.go @@ -19,7 +19,7 @@ import ( "mesh-delivery-checker/rules" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) func main() { diff --git a/modules/mesh-delivery-checker/cmd/mesh-checking-program/main_test.go b/modules/mesh-delivery-checker/cmd/mesh-checking-program/main_test.go index 6856bacb..cbd54007 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-checking-program/main_test.go +++ b/modules/mesh-delivery-checker/cmd/mesh-checking-program/main_test.go @@ -15,9 +15,9 @@ import ( "mesh-delivery-checker/rules" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/seatdefs" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatdefs" "git.novox.be/novox/mesh-sdk/go/seatdef" ) diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main.go index 06dc3040..d17b15db 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main.go @@ -13,10 +13,10 @@ import ( "mesh-delivery-checker/internal/check" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/buscalls" "git.novox.be/novox/mesh-sdk/go/seatdef" diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main_test.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main_test.go index a765459f..1661701a 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main_test.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker-tools/main_test.go @@ -13,9 +13,9 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "mesh-delivery-checker/internal/check" ) @@ -241,7 +241,7 @@ func TestTheTryToolsAskAndReadATry(t *testing.T) { // ADR 0501 §5, the agreed i t.Error("the verb tried a repository nothing checks") } // The seat's definition of the verb try gives the members the verb serves (ADR 0637 §6), as the tool takes them, and says so. - def, err := os.ReadFile("../../../../contracts/seats/mesh-delivery-checker/seat.json") + def, err := os.ReadFile("../../../mesh-delivery-contracts/seats/mesh-delivery-checker/seat.json") if err != nil { t.Fatal(err) } diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/bus.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/bus.go index d5323844..4342f010 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/bus.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/bus.go @@ -7,7 +7,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/engines.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/engines.go index 4127a564..884b9955 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/engines.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/engines.go @@ -19,11 +19,11 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" nec "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" ne "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge.go index 95510f85..e00b1958 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge.go @@ -8,7 +8,7 @@ import ( "github.com/nats-io/nats.go" - gitseat "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + gitseat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "mesh-delivery-checker/internal/check" ) diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge_test.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge_test.go index 34382893..1803122e 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge_test.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/forge_test.go @@ -14,10 +14,10 @@ import ( "mesh-delivery-checker/internal/check" ) -// seatAnswer is an answer of the seat git's verb file as its fixtures give it (contracts/seats/git/fixtures/verbs.json). +// seatAnswer is an answer of the seat git's verb file as its fixtures give it (modules/mesh-delivery-contracts/seats/git/fixtures/verbs.json). func seatAnswer(t *testing.T, name string) json.RawMessage { t.Helper() - raw, err := os.ReadFile(filepath.Join("..", "..", "..", "..", "contracts", "seats", "git", "fixtures", "verbs.json")) + raw, err := os.ReadFile(filepath.Join("..", "..", "..", "mesh-delivery-contracts", "seats", "git", "fixtures", "verbs.json")) if err != nil { t.Fatal(err) } diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go index 102d4024..e9e38ad2 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go @@ -35,16 +35,16 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" ne "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - gitseat "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + gitseat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/announce" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge.go index 755b3cef..e7470824 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge.go @@ -18,15 +18,15 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" nodeengine "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // judgeDeps are the parts the judge of a check is made of. diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge_test.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge_test.go index 840c1c5a..6eadf082 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge_test.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/judge_test.go @@ -12,9 +12,9 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/keys" "mesh-delivery-checker/internal/check" diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/main.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/main.go index 4cfe5513..9cdbc8ad 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/main.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/main.go @@ -27,11 +27,11 @@ import ( "mesh-delivery-checker/internal/check" "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/announce" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/seatdef" diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/packages.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/packages.go index 62b01d53..a1925e82 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/packages.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/packages.go @@ -4,8 +4,8 @@ import ( "strings" "sync" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // publishedPackages is the indexer's state `packages` as the checker follows it (novox/hq ADR 0593 §2): by mesh Go diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk.go index b5b639e1..4cbc5466 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk.go @@ -7,7 +7,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-checker/internal/check" ) diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk_test.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk_test.go index b2b738ec..611824a6 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk_test.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/trunk_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-checker/internal/check" ) diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/try_candidates.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/try_candidates.go index d2feeece..02120bb6 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/try_candidates.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/try_candidates.go @@ -7,8 +7,8 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-checker/internal/check" ) diff --git a/modules/mesh-delivery-checker/go.mod b/modules/mesh-delivery-checker/go.mod index 73fb6820..f4deb152 100644 --- a/modules/mesh-delivery-checker/go.mod +++ b/modules/mesh-delivery-checker/go.mod @@ -8,14 +8,14 @@ require ( git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/git v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats-server/v2 v2.11.17 @@ -41,7 +41,7 @@ require ( replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun => ../mesh-delivery-builder/buildrun -require git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 require ( git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg v0.0.0-00010101000000-000000000000 @@ -49,15 +49,15 @@ require ( replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg => ./checkermsg -replace git.novox.be/novox/mesh-delivery/sdk => ../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../mesh-delivery-sdk require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/gopackageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/npmpackageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/ociartifactregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-checker/internal/check/adr548_test.go b/modules/mesh-delivery-checker/internal/check/adr548_test.go index 2d236d4b..10f18b30 100644 --- a/modules/mesh-delivery-checker/internal/check/adr548_test.go +++ b/modules/mesh-delivery-checker/internal/check/adr548_test.go @@ -6,9 +6,9 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // One check per delivery (novox/hq ADR 0548): the checker's part. A merge turn holds new checks off its repository (§3); diff --git a/modules/mesh-delivery-checker/internal/check/askagain.go b/modules/mesh-delivery-checker/internal/check/askagain.go index 4a9ec8c5..ace22f6b 100644 --- a/modules/mesh-delivery-checker/internal/check/askagain.go +++ b/modules/mesh-delivery-checker/internal/check/askagain.go @@ -7,11 +7,11 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // **A check is asked again by hand** (the lost check of 2026-10-28; tools-are-how-a-module-is-spoken-to: every recovery diff --git a/modules/mesh-delivery-checker/internal/check/beside.go b/modules/mesh-delivery-checker/internal/check/beside.go index 215711b4..097d588b 100644 --- a/modules/mesh-delivery-checker/internal/check/beside.go +++ b/modules/mesh-delivery-checker/internal/check/beside.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // BesideRef is a sibling repository a repository's tests read, placed beside the fetched tree as a plain directory (ADR diff --git a/modules/mesh-delivery-checker/internal/check/binaries_test.go b/modules/mesh-delivery-checker/internal/check/binaries_test.go index 9e9376c5..dd5b1675 100644 --- a/modules/mesh-delivery-checker/internal/check/binaries_test.go +++ b/modules/mesh-delivery-checker/internal/check/binaries_test.go @@ -4,8 +4,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) func TestAChangeWhoseFetchReportsProgramsFailsNamingEachFile(t *testing.T) { // 1577 diff --git a/modules/mesh-delivery-checker/internal/check/bounded.go b/modules/mesh-delivery-checker/internal/check/bounded.go index de61fc25..f444671d 100644 --- a/modules/mesh-delivery-checker/internal/check/bounded.go +++ b/modules/mesh-delivery-checker/internal/check/bounded.go @@ -6,7 +6,7 @@ import ( "sync" "sync/atomic" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // ReadWorkers is how many values a read tool asks the bus for at once. Each value is a round trip from the tool through the diff --git a/modules/mesh-delivery-checker/internal/check/build_change.go b/modules/mesh-delivery-checker/internal/check/build_change.go index bdd3dd46..45985c49 100644 --- a/modules/mesh-delivery-checker/internal/check/build_change.go +++ b/modules/mesh-delivery-checker/internal/check/build_change.go @@ -9,7 +9,7 @@ import ( "git.novox.be/novox/mesh-sdk/go/catalogue" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // What the check builds of a candidate before it composes (novox/hq ADR 0603 §10). The builder builds every fingerprint the diff --git a/modules/mesh-delivery-checker/internal/check/builds.go b/modules/mesh-delivery-checker/internal/check/builds.go index ef5bd073..2493c1da 100644 --- a/modules/mesh-delivery-checker/internal/check/builds.go +++ b/modules/mesh-delivery-checker/internal/check/builds.go @@ -9,9 +9,9 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // The states of a build the status line says (ADR 0484 clause 7). diff --git a/modules/mesh-delivery-checker/internal/check/buildseats.go b/modules/mesh-delivery-checker/internal/check/buildseats.go index dfa8f7f8..25b6e944 100644 --- a/modules/mesh-delivery-checker/internal/check/buildseats.go +++ b/modules/mesh-delivery-checker/internal/check/buildseats.go @@ -1,7 +1,7 @@ package check import ( - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "mesh-delivery-checker/rules" ) diff --git a/modules/mesh-delivery-checker/internal/check/case.go b/modules/mesh-delivery-checker/internal/check/case.go index f33c96c9..1be72fdb 100644 --- a/modules/mesh-delivery-checker/internal/check/case.go +++ b/modules/mesh-delivery-checker/internal/check/case.go @@ -10,11 +10,11 @@ import ( "sync" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // Pull is one pull request the checker judges: its head, the trunk head of its repository it is merged onto and the diff --git a/modules/mesh-delivery-checker/internal/check/checker.go b/modules/mesh-delivery-checker/internal/check/checker.go index 98f4530d..ee6bbf26 100644 --- a/modules/mesh-delivery-checker/internal/check/checker.go +++ b/modules/mesh-delivery-checker/internal/check/checker.go @@ -12,13 +12,13 @@ import ( "sync" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-checker/internal/check/checker_test.go b/modules/mesh-delivery-checker/internal/check/checker_test.go index b5efb00e..0d48110d 100644 --- a/modules/mesh-delivery-checker/internal/check/checker_test.go +++ b/modules/mesh-delivery-checker/internal/check/checker_test.go @@ -10,13 +10,13 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-checker/internal/check/composition_test.go b/modules/mesh-delivery-checker/internal/check/composition_test.go index 46437e5c..56f4f5ad 100644 --- a/modules/mesh-delivery-checker/internal/check/composition_test.go +++ b/modules/mesh-delivery-checker/internal/check/composition_test.go @@ -13,11 +13,11 @@ import ( nec "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" ne "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" buildsrec "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-checker/internal/check/couldnotrun.go b/modules/mesh-delivery-checker/internal/check/couldnotrun.go index 1884aa55..d2fbaf84 100644 --- a/modules/mesh-delivery-checker/internal/check/couldnotrun.go +++ b/modules/mesh-delivery-checker/internal/check/couldnotrun.go @@ -8,8 +8,8 @@ import ( "sort" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // A check that failed because a part of the mesh was not heard says `could not run`, naming the part, and releases its diff --git a/modules/mesh-delivery-checker/internal/check/declared.go b/modules/mesh-delivery-checker/internal/check/declared.go index 274a0ac2..95bf4c55 100644 --- a/modules/mesh-delivery-checker/internal/check/declared.go +++ b/modules/mesh-delivery-checker/internal/check/declared.go @@ -6,7 +6,7 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-checker/internal/check/digestform_test.go b/modules/mesh-delivery-checker/internal/check/digestform_test.go index 0e1a3f2e..1648c337 100644 --- a/modules/mesh-delivery-checker/internal/check/digestform_test.go +++ b/modules/mesh-delivery-checker/internal/check/digestform_test.go @@ -5,8 +5,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // 1930/AC3: given a check ask whose stored end keeps the digest's packages as a list of {package, digest} (issue 1930), diff --git a/modules/mesh-delivery-checker/internal/check/engines.go b/modules/mesh-delivery-checker/internal/check/engines.go index 5ffdd6c5..fa33dfee 100644 --- a/modules/mesh-delivery-checker/internal/check/engines.go +++ b/modules/mesh-delivery-checker/internal/check/engines.go @@ -13,10 +13,10 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" nec "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" ne "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" ) // **A check's composition is the checker's, made from what each node's engine answers** (novox/hq ADR 0593 §7, §9). diff --git a/modules/mesh-delivery-checker/internal/check/engines_test.go b/modules/mesh-delivery-checker/internal/check/engines_test.go index 31ea8066..d04b3d2f 100644 --- a/modules/mesh-delivery-checker/internal/check/engines_test.go +++ b/modules/mesh-delivery-checker/internal/check/engines_test.go @@ -13,13 +13,13 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" nec "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" ne "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/composer" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // fakeEngines answers compose-candidate by node from memory; a node it holds no answer for never answers. diff --git a/modules/mesh-delivery-checker/internal/check/every_failure_test.go b/modules/mesh-delivery-checker/internal/check/every_failure_test.go index f9666ea2..6016ff00 100644 --- a/modules/mesh-delivery-checker/internal/check/every_failure_test.go +++ b/modules/mesh-delivery-checker/internal/check/every_failure_test.go @@ -7,9 +7,9 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // failingResult is a level's test result in which the named tests failed, each in its own package. diff --git a/modules/mesh-delivery-checker/internal/check/examiner_test.go b/modules/mesh-delivery-checker/internal/check/examiner_test.go index 32f9b140..02f7ddc1 100644 --- a/modules/mesh-delivery-checker/internal/check/examiner_test.go +++ b/modules/mesh-delivery-checker/internal/check/examiner_test.go @@ -24,13 +24,13 @@ import ( gobuild "git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep" "git.novox.be/novox/mesh-contracts/go/seats/meshconfig" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-checker/internal/check/failure_words_test.go b/modules/mesh-delivery-checker/internal/check/failure_words_test.go index 0ec67c82..37e2b87c 100644 --- a/modules/mesh-delivery-checker/internal/check/failure_words_test.go +++ b/modules/mesh-delivery-checker/internal/check/failure_words_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" ) // The failure the build module reported for group r4g on 2026-10-23: the test logged a line, then failed with a multi-line diff --git a/modules/mesh-delivery-checker/internal/check/gate_test.go b/modules/mesh-delivery-checker/internal/check/gate_test.go index 744f5510..63680278 100644 --- a/modules/mesh-delivery-checker/internal/check/gate_test.go +++ b/modules/mesh-delivery-checker/internal/check/gate_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" ) // What the gate reads of the checker (R4e, lead's interface with dev-r4e-gate): the verdict's heads are the gate's hash over diff --git a/modules/mesh-delivery-checker/internal/check/graph_edges.go b/modules/mesh-delivery-checker/internal/check/graph_edges.go index bb51c3b6..052d9c7d 100644 --- a/modules/mesh-delivery-checker/internal/check/graph_edges.go +++ b/modules/mesh-delivery-checker/internal/check/graph_edges.go @@ -8,12 +8,12 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "git.novox.be/novox/mesh-sdk/go/catalogue" "mesh-delivery-checker/rules" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // The module graph of a change (novox/hq ADR 0603 §2, ADR 0614 §6): the running checker gathers its ordering edges, the diff --git a/modules/mesh-delivery-checker/internal/check/judge.go b/modules/mesh-delivery-checker/internal/check/judge.go index 05172788..7248789f 100644 --- a/modules/mesh-delivery-checker/internal/check/judge.go +++ b/modules/mesh-delivery-checker/internal/check/judge.go @@ -10,12 +10,12 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // RunnerWorkspace is the runner the Go build module's digest and test steps are asked with when the merge changes the build diff --git a/modules/mesh-delivery-checker/internal/check/judged_test.go b/modules/mesh-delivery-checker/internal/check/judged_test.go index d35a0321..080e20c2 100644 --- a/modules/mesh-delivery-checker/internal/check/judged_test.go +++ b/modules/mesh-delivery-checker/internal/check/judged_test.go @@ -5,8 +5,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The judged_by answer of mesh-build-go's digest and test steps (ADR 0535 §5; the milestone file's interface for issue diff --git a/modules/mesh-delivery-checker/internal/check/kept.go b/modules/mesh-delivery-checker/internal/check/kept.go index 5b581634..e00b5b2f 100644 --- a/modules/mesh-delivery-checker/internal/check/kept.go +++ b/modules/mesh-delivery-checker/internal/check/kept.go @@ -7,8 +7,8 @@ import ( "sort" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // Kept is the checker's bucket of kept verdicts (ADR 0444, ADR 0484 clause 13): a passing verdict per package and level, diff --git a/modules/mesh-delivery-checker/internal/check/kept_test.go b/modules/mesh-delivery-checker/internal/check/kept_test.go index 64ba37c7..f6a7abd5 100644 --- a/modules/mesh-delivery-checker/internal/check/kept_test.go +++ b/modules/mesh-delivery-checker/internal/check/kept_test.go @@ -6,9 +6,9 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) var at0 = time.Date(2026, 10, 21, 19, 0, 0, 0, time.UTC) diff --git a/modules/mesh-delivery-checker/internal/check/line.go b/modules/mesh-delivery-checker/internal/check/line.go index 56ed9bbb..0dca6e35 100644 --- a/modules/mesh-delivery-checker/internal/check/line.go +++ b/modules/mesh-delivery-checker/internal/check/line.go @@ -7,9 +7,9 @@ import ( "strings" "unicode/utf8" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // MaxLine is the most characters a status's line has: the forge shows a status's description in a short space, and the full diff --git a/modules/mesh-delivery-checker/internal/check/line_test.go b/modules/mesh-delivery-checker/internal/check/line_test.go index 3d8043cd..2b80bb72 100644 --- a/modules/mesh-delivery-checker/internal/check/line_test.go +++ b/modules/mesh-delivery-checker/internal/check/line_test.go @@ -6,10 +6,10 @@ import ( "testing" "unicode/utf8" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) func lineCase(t testing.TB, pulls ...meshcatalog.CandidatesByGroupValuePullsItem) (*Case, Pull) { diff --git a/modules/mesh-delivery-checker/internal/check/lostask.go b/modules/mesh-delivery-checker/internal/check/lostask.go index 9fbd0f15..5dae25be 100644 --- a/modules/mesh-delivery-checker/internal/check/lostask.go +++ b/modules/mesh-delivery-checker/internal/check/lostask.go @@ -3,10 +3,10 @@ package check import ( "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - sdkrun "git.novox.be/novox/mesh-delivery/sdk/buildrun" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + sdkrun "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrun" ) // **An ask the build seat gave up on ends its step** (novox/hq issue 734): mesh-sdk buildrun.LostAskWaiter hands the diff --git a/modules/mesh-delivery-checker/internal/check/lostask_test.go b/modules/mesh-delivery-checker/internal/check/lostask_test.go index 43e49384..0e97b81a 100644 --- a/modules/mesh-delivery-checker/internal/check/lostask_test.go +++ b/modules/mesh-delivery-checker/internal/check/lostask_test.go @@ -11,11 +11,11 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - sdkrun "git.novox.be/novox/mesh-delivery/sdk/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + sdkrun "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrun" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // losingAsks is the build seat over a bus that gives up the first `lose` asks put (DEAD_LETTERS keeps them, as on diff --git a/modules/mesh-delivery-checker/internal/check/manifests_judge.go b/modules/mesh-delivery-checker/internal/check/manifests_judge.go index b8855c41..81337882 100644 --- a/modules/mesh-delivery-checker/internal/check/manifests_judge.go +++ b/modules/mesh-delivery-checker/internal/check/manifests_judge.go @@ -10,13 +10,13 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "git.novox.be/novox/mesh-sdk/go/catalogue" - "git.novox.be/novox/mesh-delivery/sdk/packagename" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/packagename" ) // A change's manifests are judged by the indexer's judge (novox/hq ADR 0578 §2): the checker asks the Go build seat to diff --git a/modules/mesh-delivery-checker/internal/check/names.go b/modules/mesh-delivery-checker/internal/check/names.go index 44809d1b..73027652 100644 --- a/modules/mesh-delivery-checker/internal/check/names.go +++ b/modules/mesh-delivery-checker/internal/check/names.go @@ -3,8 +3,8 @@ package check import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // The holders and buckets the checker names. No contract names a holder (novox/hq ADR 0625 §4, ADR 0634 §1), so these are its diff --git a/modules/mesh-delivery-checker/internal/check/owed.go b/modules/mesh-delivery-checker/internal/check/owed.go index 6849e26f..4de3ad97 100644 --- a/modules/mesh-delivery-checker/internal/check/owed.go +++ b/modules/mesh-delivery-checker/internal/check/owed.go @@ -3,9 +3,9 @@ package check import ( "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // The checker's owed state holds the one act it owes, the status mesh/check on a pull request at a head: the gate's owed act diff --git a/modules/mesh-delivery-checker/internal/check/pins.go b/modules/mesh-delivery-checker/internal/check/pins.go index da1df31e..277bedc5 100644 --- a/modules/mesh-delivery-checker/internal/check/pins.go +++ b/modules/mesh-delivery-checker/internal/check/pins.go @@ -5,8 +5,8 @@ import ( "errors" "maps" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/grouppackages" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/grouppackages" ) // **A check builds against the group's own package heads, not against what a member names** (novox/hq ADR 0573 §2, §4; diff --git a/modules/mesh-delivery-checker/internal/check/pins_test.go b/modules/mesh-delivery-checker/internal/check/pins_test.go index eedb4e7e..e7cc68d2 100644 --- a/modules/mesh-delivery-checker/internal/check/pins_test.go +++ b/modules/mesh-delivery-checker/internal/check/pins_test.go @@ -7,10 +7,10 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/grouppackages" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/grouppackages" "git.novox.be/novox/mesh-sdk/go/catalogue" ) @@ -238,7 +238,7 @@ func TestACatalogueChangeHasTheCatalogueBesideItAtItsTrunk(t *testing.T) { // derived, not named in a rule (issue 1921); a version a build wrote, or a package outside the forge, is not. b.ex.Forge = headFiles{nodeEngineRepo + " go.mod " + hostRuns: "module github.com/novox/mesh-host\n\ngo 1.26\n\nrequire (\n" + "\tgit.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient v0.0.0-00010101000000-000000000000\n" + - "\tgit.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 // indirect\n" + + "\tgit.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 // indirect\n" + "\tgit.novox.be/novox/mesh-tools/go v0.1.2\n\tgithub.com/nats-io/nats.go v1.40.0\n)\n\n" + "require git.novox.be/novox/mesh-networking/modules/mesh-wireguard/go v0.0.0-00010101000000-000000000000\n"} out := b.judge(t, caseOf(t, pullOf(catalogueRepository, 12, head1))) diff --git a/modules/mesh-delivery-checker/internal/check/preview.go b/modules/mesh-delivery-checker/internal/check/preview.go index c8897276..8cb11808 100644 --- a/modules/mesh-delivery-checker/internal/check/preview.go +++ b/modules/mesh-delivery-checker/internal/check/preview.go @@ -7,8 +7,8 @@ import ( "regexp" "slices" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) var digest64 = regexp.MustCompile(`^[0-9a-f]{64}$`) diff --git a/modules/mesh-delivery-checker/internal/check/programs.go b/modules/mesh-delivery-checker/internal/check/programs.go index e0ad2d5e..5ef36dc7 100644 --- a/modules/mesh-delivery-checker/internal/check/programs.go +++ b/modules/mesh-delivery-checker/internal/check/programs.go @@ -10,9 +10,9 @@ import ( "sync" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "mesh-delivery-checker/rules" diff --git a/modules/mesh-delivery-checker/internal/check/rank_test.go b/modules/mesh-delivery-checker/internal/check/rank_test.go index 14705018..4f3961cc 100644 --- a/modules/mesh-delivery-checker/internal/check/rank_test.go +++ b/modules/mesh-delivery-checker/internal/check/rank_test.go @@ -6,10 +6,10 @@ import ( "sync" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // The checker's ranked start of checks (ADR 0536 §4, issue 1897): a freed place goes to a head never judged (or asked again diff --git a/modules/mesh-delivery-checker/internal/check/read.go b/modules/mesh-delivery-checker/internal/check/read.go index 1056369d..3840af64 100644 --- a/modules/mesh-delivery-checker/internal/check/read.go +++ b/modules/mesh-delivery-checker/internal/check/read.go @@ -11,13 +11,13 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The read tools (novox/hq ADR 0484 clauses 8 and 13, issue 1686): what the checker stored, as stored, with the line of the diff --git a/modules/mesh-delivery-checker/internal/check/read_test.go b/modules/mesh-delivery-checker/internal/check/read_test.go index 80c1c1e1..1ba52ccd 100644 --- a/modules/mesh-delivery-checker/internal/check/read_test.go +++ b/modules/mesh-delivery-checker/internal/check/read_test.go @@ -11,12 +11,12 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" buildsrec "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) type fakeState map[string][]byte diff --git a/modules/mesh-delivery-checker/internal/check/results.go b/modules/mesh-delivery-checker/internal/check/results.go index 82a11225..d3accb7c 100644 --- a/modules/mesh-delivery-checker/internal/check/results.go +++ b/modules/mesh-delivery-checker/internal/check/results.go @@ -3,7 +3,7 @@ package check import ( "mesh-delivery-checker/rules" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The shapes of what the build modules' steps answer, as their code writes them (mesh-catalog modules/mesh-build-go diff --git a/modules/mesh-delivery-checker/internal/check/series.go b/modules/mesh-delivery-checker/internal/check/series.go index 1d61bb60..1a6d91db 100644 --- a/modules/mesh-delivery-checker/internal/check/series.go +++ b/modules/mesh-delivery-checker/internal/check/series.go @@ -6,7 +6,7 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-checker/internal/check/trunkview.go b/modules/mesh-delivery-checker/internal/check/trunkview.go index 75a1638d..d4f4f13d 100644 --- a/modules/mesh-delivery-checker/internal/check/trunkview.go +++ b/modules/mesh-delivery-checker/internal/check/trunkview.go @@ -4,7 +4,7 @@ import ( "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // TrunkVerb is the key of the seat verb the trunk heads are asked by (design 47 G §197). diff --git a/modules/mesh-delivery-checker/internal/check/try.go b/modules/mesh-delivery-checker/internal/check/try.go index 8070e1eb..bb07ebae 100644 --- a/modules/mesh-delivery-checker/internal/check/try.go +++ b/modules/mesh-delivery-checker/internal/check/try.go @@ -14,13 +14,13 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-checker/internal/check/try_test.go b/modules/mesh-delivery-checker/internal/check/try_test.go index a134e869..f537225b 100644 --- a/modules/mesh-delivery-checker/internal/check/try_test.go +++ b/modules/mesh-delivery-checker/internal/check/try_test.go @@ -12,11 +12,11 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // memTries is the tries state as the tools see it, over a memKV. diff --git a/modules/mesh-delivery-checker/internal/check/verdictevent.go b/modules/mesh-delivery-checker/internal/check/verdictevent.go index fa784452..1fcfcc16 100644 --- a/modules/mesh-delivery-checker/internal/check/verdictevent.go +++ b/modules/mesh-delivery-checker/internal/check/verdictevent.go @@ -3,8 +3,8 @@ package check import ( "context" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // EventVerdict is the checker's event that says a pull request's check ended, with the generated files its steps found out diff --git a/modules/mesh-delivery-checker/rules/facts.go b/modules/mesh-delivery-checker/rules/facts.go index caee5d12..b913e864 100644 --- a/modules/mesh-delivery-checker/rules/facts.go +++ b/modules/mesh-delivery-checker/rules/facts.go @@ -13,9 +13,9 @@ import ( "path" "sort" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // FactsVersion is the version of Facts this program reads. A checking program built from a later change reads the facts diff --git a/modules/mesh-delivery-checker/rules/judged.go b/modules/mesh-delivery-checker/rules/judged.go index 7fad5525..e981fc24 100644 --- a/modules/mesh-delivery-checker/rules/judged.go +++ b/modules/mesh-delivery-checker/rules/judged.go @@ -9,11 +9,11 @@ import ( "sort" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" ) // The facts the manifest validator, the fetch's programs and the composer answered, and the rules that judge them diff --git a/modules/mesh-delivery-checker/rules/names.go b/modules/mesh-delivery-checker/rules/names.go index fabcbc3f..5915cdd8 100644 --- a/modules/mesh-delivery-checker/rules/names.go +++ b/modules/mesh-delivery-checker/rules/names.go @@ -1,6 +1,6 @@ package rules -import checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" +import checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" // FailedFirst names what failed: a test (its package and name) or a machine, with the words of the failure. It is the shape // of the verdict's `failed` and of each entry of its `failures` (the seat's two types of it have the same fields), so the diff --git a/modules/mesh-delivery-checker/rules/results.go b/modules/mesh-delivery-checker/rules/results.go index bfc9eff0..a0a3af40 100644 --- a/modules/mesh-delivery-checker/rules/results.go +++ b/modules/mesh-delivery-checker/rules/results.go @@ -1,6 +1,6 @@ package rules -import "git.novox.be/novox/mesh-delivery/sdk/buildstep" +import "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" // The shapes of a test step's answer, as the build modules' code writes them (mesh-catalog modules/mesh-build-go // cmd/mesh-build-go levels.go TestResult; modules/mesh-build-node cmd/mesh-build-node check.go TestResult). Only the diff --git a/modules/mesh-delivery-checker/rules/seats.go b/modules/mesh-delivery-checker/rules/seats.go index 1c51289a..1e3a37c8 100644 --- a/modules/mesh-delivery-checker/rules/seats.go +++ b/modules/mesh-delivery-checker/rules/seats.go @@ -14,7 +14,7 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/sdk/seatdefs" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatdefs" ) // The seat list a check judges and composes against (novox/hq ADR 0636 §1, §4, ADR 0644 §1; the lead's rulings Q2 on diff --git a/modules/mesh-delivery-checker/rules/words.go b/modules/mesh-delivery-checker/rules/words.go index 8e84c982..57c232d0 100644 --- a/modules/mesh-delivery-checker/rules/words.go +++ b/modules/mesh-delivery-checker/rules/words.go @@ -4,9 +4,9 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The words rules: how a failed test, a failed package and a list of failures are worded in a verdict (issue 1901, issue diff --git a/contracts/go/clients/containerimageregistryclient/client.go b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/client.go similarity index 94% rename from contracts/go/clients/containerimageregistryclient/client.go rename to modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/client.go index 3616faf7..249d10ce 100644 --- a/contracts/go/clients/containerimageregistryclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/client.go @@ -12,8 +12,8 @@ import ( "encoding/json" "fmt" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // Call asks one verb of the seat, `seat:.`, with a body, and answers its JSON. diff --git a/contracts/go/clients/containerimageregistryclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/client_test.go similarity index 91% rename from contracts/go/clients/containerimageregistryclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/client_test.go index 7b77d5f5..77dcdc57 100644 --- a/contracts/go/clients/containerimageregistryclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/client_test.go @@ -10,8 +10,8 @@ import ( "io" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // The client publishes over its own seat's verbs alone (ADR 0627 §1): publish names every part, and only the part the diff --git a/contracts/go/clients/ociartifactregistryclient/go.mod b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/go.mod similarity index 53% rename from contracts/go/clients/ociartifactregistryclient/go.mod rename to modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/go.mod index 41d70d47..53b1054f 100644 --- a/contracts/go/clients/ociartifactregistryclient/go.mod +++ b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/go.mod @@ -1,10 +1,10 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/ociartifactregistryclient +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) require ( diff --git a/contracts/go/clients/containerimageregistryclient/go.sum b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/go.sum similarity index 100% rename from contracts/go/clients/containerimageregistryclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/go.sum diff --git a/contracts/go/clients/containerimageregistryclient/reference/reference.go b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/reference/reference.go similarity index 100% rename from contracts/go/clients/containerimageregistryclient/reference/reference.go rename to modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/reference/reference.go diff --git a/contracts/go/clients/containerimageregistryclient/reference/reference_test.go b/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/reference/reference_test.go similarity index 100% rename from contracts/go/clients/containerimageregistryclient/reference/reference_test.go rename to modules/mesh-delivery-contracts/go/clients/containerimageregistryclient/reference/reference_test.go diff --git a/contracts/go/clients/gopackageregistryclient/client.go b/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/client.go similarity index 94% rename from contracts/go/clients/gopackageregistryclient/client.go rename to modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/client.go index 39cdb75f..4bbda8c8 100644 --- a/contracts/go/clients/gopackageregistryclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/client.go @@ -12,8 +12,8 @@ import ( "encoding/json" "fmt" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // Call asks one verb of the seat, `seat:.`, with a body, and answers its JSON. diff --git a/contracts/go/clients/gopackageregistryclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/client_test.go similarity index 92% rename from contracts/go/clients/gopackageregistryclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/client_test.go index 3405e705..e5ca942f 100644 --- a/contracts/go/clients/gopackageregistryclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/client_test.go @@ -10,8 +10,8 @@ import ( "io" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // The client publishes over its own seat's verbs alone (ADR 0627 §1): publish names every part, and only the part the diff --git a/contracts/go/clients/gopackageregistryclient/go.mod b/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/go.mod similarity index 53% rename from contracts/go/clients/gopackageregistryclient/go.mod rename to modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/go.mod index 0d0d1bb9..2914dd30 100644 --- a/contracts/go/clients/gopackageregistryclient/go.mod +++ b/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/go.mod @@ -1,10 +1,10 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/gopackageregistryclient +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) require ( diff --git a/contracts/go/clients/gopackageregistryclient/go.sum b/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/go.sum similarity index 100% rename from contracts/go/clients/gopackageregistryclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/gopackageregistryclient/go.sum diff --git a/contracts/go/clients/meshbuildsclient/client.go b/modules/mesh-delivery-contracts/go/clients/meshbuildsclient/client.go similarity index 96% rename from contracts/go/clients/meshbuildsclient/client.go rename to modules/mesh-delivery-contracts/go/clients/meshbuildsclient/client.go index e1f7c778..aa6ddf74 100644 --- a/contracts/go/clients/meshbuildsclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/meshbuildsclient/client.go @@ -7,7 +7,7 @@ import ( "encoding/json" "fmt" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" ) // Address is the seat verb asked, as a manifest's `invokes` names it. diff --git a/contracts/go/clients/meshbuildsclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/meshbuildsclient/client_test.go similarity index 96% rename from contracts/go/clients/meshbuildsclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/meshbuildsclient/client_test.go index 86e4b10c..6aeb9a24 100644 --- a/contracts/go/clients/meshbuildsclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshbuildsclient/client_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" ) func answers(raw string, err error) Call { diff --git a/modules/mesh-delivery-contracts/go/clients/meshbuildsclient/go.mod b/modules/mesh-delivery-contracts/go/clients/meshbuildsclient/go.mod new file mode 100644 index 00000000..4c053eb4 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/clients/meshbuildsclient/go.mod @@ -0,0 +1,5 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshbuildsclient + +go 1.26.0 + +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds v0.0.0-00010101000000-000000000000 diff --git a/contracts/go/clients/meshcatalogclient/branches.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/branches.go similarity index 98% rename from contracts/go/clients/meshcatalogclient/branches.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/branches.go index 7c10d232..d9a149be 100644 --- a/contracts/go/clients/meshcatalogclient/branches.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/branches.go @@ -9,8 +9,8 @@ import ( "sync" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/sourcebranches" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/sourcebranches" "git.novox.be/novox/mesh-sdk/go/buscalls" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/contracts/go/clients/meshcatalogclient/branches_test.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/branches_test.go similarity index 97% rename from contracts/go/clients/meshcatalogclient/branches_test.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/branches_test.go index c2324293..34c5937b 100644 --- a/contracts/go/clients/meshcatalogclient/branches_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/branches_test.go @@ -10,8 +10,8 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/sourcebranches" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/sourcebranches" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/contracts/go/clients/meshcatalogclient/candidate.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/candidate.go similarity index 96% rename from contracts/go/clients/meshcatalogclient/candidate.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/candidate.go index 41d60d5a..e609af0b 100644 --- a/contracts/go/clients/meshcatalogclient/candidate.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/candidate.go @@ -8,7 +8,7 @@ import ( "sort" "strings" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshcatalogclient/catalog.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog.go similarity index 99% rename from contracts/go/clients/meshcatalogclient/catalog.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog.go index a3c9afe5..c06d6453 100644 --- a/contracts/go/clients/meshcatalogclient/catalog.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog.go @@ -10,7 +10,7 @@ import ( "sync" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/buscalls" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/contracts/go/clients/meshcatalogclient/catalog_test.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog_test.go similarity index 99% rename from contracts/go/clients/meshcatalogclient/catalog_test.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog_test.go index a1c7404b..b56f9be0 100644 --- a/contracts/go/clients/meshcatalogclient/catalog_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshcatalogclient/catalog_view_test.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog_view_test.go similarity index 98% rename from contracts/go/clients/meshcatalogclient/catalog_view_test.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog_view_test.go index f62ee9d3..6c74285e 100644 --- a/contracts/go/clients/meshcatalogclient/catalog_view_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/catalog_view_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/contracts/go/clients/meshcatalogclient/entry.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/entry.go similarity index 98% rename from contracts/go/clients/meshcatalogclient/entry.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/entry.go index efcc5bf8..19e6ff16 100644 --- a/contracts/go/clients/meshcatalogclient/entry.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/entry.go @@ -6,7 +6,7 @@ import ( "strings" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/contracts/go/clients/meshcatalogclient/entry_test.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/entry_test.go similarity index 97% rename from contracts/go/clients/meshcatalogclient/entry_test.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/entry_test.go index 0d282f3c..3a92d0a5 100644 --- a/contracts/go/clients/meshcatalogclient/entry_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/entry_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/contracts/go/clients/meshcatalogclient/fingerprint.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/fingerprint.go similarity index 92% rename from contracts/go/clients/meshcatalogclient/fingerprint.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/fingerprint.go index af64bd7b..677e737d 100644 --- a/contracts/go/clients/meshcatalogclient/fingerprint.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/fingerprint.go @@ -5,7 +5,7 @@ package meshcatalogclient import ( - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" ) // SourcePrefix2 opens every source fingerprint of the form. diff --git a/contracts/go/clients/meshcatalogclient/go.mod b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/go.mod similarity index 53% rename from contracts/go/clients/meshcatalogclient/go.mod rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/go.mod index d53c1dfc..1a5d2464 100644 --- a/contracts/go/clients/meshcatalogclient/go.mod +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/go.mod @@ -1,10 +1,10 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 ) diff --git a/contracts/go/clients/meshcatalogclient/go.sum b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/go.sum similarity index 100% rename from contracts/go/clients/meshcatalogclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/go.sum diff --git a/contracts/go/clients/meshcatalogclient/imports_test.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/imports_test.go similarity index 100% rename from contracts/go/clients/meshcatalogclient/imports_test.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/imports_test.go diff --git a/contracts/go/clients/meshcatalogclient/manifest.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/manifest.go similarity index 96% rename from contracts/go/clients/meshcatalogclient/manifest.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/manifest.go index 38c46616..460d1074 100644 --- a/contracts/go/clients/meshcatalogclient/manifest.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/manifest.go @@ -7,7 +7,7 @@ import ( "fmt" "unicode/utf8" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshcatalogclient/module.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/module.go similarity index 97% rename from contracts/go/clients/meshcatalogclient/module.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/module.go index 277e482f..87c4d7c8 100644 --- a/contracts/go/clients/meshcatalogclient/module.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/module.go @@ -6,8 +6,8 @@ import ( "path" "strings" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshcatalogclient/registrations.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/registrations.go similarity index 97% rename from contracts/go/clients/meshcatalogclient/registrations.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/registrations.go index 47a262c2..644808d9 100644 --- a/contracts/go/clients/meshcatalogclient/registrations.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/registrations.go @@ -4,11 +4,11 @@ import ( "context" "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/sdk/sourcebranches" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/sourcebranches" "slices" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/buscalls" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/contracts/go/clients/meshcatalogclient/registrations_test.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/registrations_test.go similarity index 97% rename from contracts/go/clients/meshcatalogclient/registrations_test.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/registrations_test.go index 66ff2546..2aca0466 100644 --- a/contracts/go/clients/meshcatalogclient/registrations_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/registrations_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // fakeRegistrations answers the verb registrations from the versions it keeps, and counts each ask. diff --git a/contracts/go/clients/meshcatalogclient/verdict.go b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/verdict.go similarity index 98% rename from contracts/go/clients/meshcatalogclient/verdict.go rename to modules/mesh-delivery-contracts/go/clients/meshcatalogclient/verdict.go index 0e398221..2f4bcdfb 100644 --- a/contracts/go/clients/meshcatalogclient/verdict.go +++ b/modules/mesh-delivery-contracts/go/clients/meshcatalogclient/verdict.go @@ -6,7 +6,7 @@ import ( "slices" "strings" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshdeliverycheckerclient/client.go b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/client.go similarity index 99% rename from contracts/go/clients/meshdeliverycheckerclient/client.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/client.go index 7e2acbf3..c9ccff63 100644 --- a/contracts/go/clients/meshdeliverycheckerclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/client.go @@ -9,7 +9,7 @@ import ( pathpkg "path" "strings" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshdeliverycheckerclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/client_test.go similarity index 99% rename from contracts/go/clients/meshdeliverycheckerclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/client_test.go index 38c651c0..657889bc 100644 --- a/contracts/go/clients/meshdeliverycheckerclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/client_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) type verdict = checker.VerdictsByGroupHeadsValue diff --git a/contracts/go/clients/meshdeliverycheckerclient/codec.go b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/codec.go similarity index 98% rename from contracts/go/clients/meshdeliverycheckerclient/codec.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/codec.go index c684e73d..59162b97 100644 --- a/contracts/go/clients/meshdeliverycheckerclient/codec.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/codec.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/go.mod b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/go.mod new file mode 100644 index 00000000..e8930ad4 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/go.mod @@ -0,0 +1,8 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient + +go 1.26.0 + +require ( + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 +) diff --git a/contracts/go/clients/meshdeliverycheckerclient/input.go b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/input.go similarity index 95% rename from contracts/go/clients/meshdeliverycheckerclient/input.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/input.go index 1594df80..106c908b 100644 --- a/contracts/go/clients/meshdeliverycheckerclient/input.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient/input.go @@ -7,7 +7,7 @@ import ( "encoding/json" "fmt" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" ) // InputVerb is the seat's verb input as a manifest's `invokes` names it and a run ask's input names it: asked of the diff --git a/contracts/go/clients/meshdeliveryclient/client.go b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/client.go similarity index 99% rename from contracts/go/clients/meshdeliveryclient/client.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/client.go index 590b5345..48a8236f 100644 --- a/contracts/go/clients/meshdeliveryclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/client.go @@ -14,7 +14,7 @@ import ( "strconv" "strings" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshdeliveryclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/client_test.go similarity index 97% rename from contracts/go/clients/meshdeliveryclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/client_test.go index 9fcfc582..a8f0e9e1 100644 --- a/contracts/go/clients/meshdeliveryclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/client_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" ) // The keys, ids and acts equal what the gate and the teller have always written (the expected strings are the trunk's own diff --git a/contracts/go/clients/meshdeliveryclient/gate.go b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/gate.go similarity index 99% rename from contracts/go/clients/meshdeliveryclient/gate.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/gate.go index fa56a1c1..076ffc66 100644 --- a/contracts/go/clients/meshdeliveryclient/gate.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/gate.go @@ -9,7 +9,7 @@ import ( "strings" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshdeliveryclient/gate_test.go b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/gate_test.go similarity index 99% rename from contracts/go/clients/meshdeliveryclient/gate_test.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/gate_test.go index afcee870..0e751573 100644 --- a/contracts/go/clients/meshdeliveryclient/gate_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/gate_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/go.mod b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/go.mod new file mode 100644 index 00000000..01d46bdf --- /dev/null +++ b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/go.mod @@ -0,0 +1,8 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient + +go 1.26.0 + +require ( + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 +) diff --git a/contracts/go/clients/meshdeliveryclient/go.sum b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/go.sum similarity index 100% rename from contracts/go/clients/meshdeliveryclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/go.sum diff --git a/contracts/go/clients/meshdeliveryclient/switched.go b/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/switched.go similarity index 100% rename from contracts/go/clients/meshdeliveryclient/switched.go rename to modules/mesh-delivery-contracts/go/clients/meshdeliveryclient/switched.go diff --git a/contracts/go/clients/meshpipelinerunnerclient/client.go b/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/client.go similarity index 97% rename from contracts/go/clients/meshpipelinerunnerclient/client.go rename to modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/client.go index fd0c3f4c..6737b00b 100644 --- a/contracts/go/clients/meshpipelinerunnerclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/client.go @@ -9,7 +9,7 @@ import ( "slices" "strings" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshpipelinerunnerclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/client_test.go similarity index 95% rename from contracts/go/clients/meshpipelinerunnerclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/client_test.go index ee619155..dfab1a4d 100644 --- a/contracts/go/clients/meshpipelinerunnerclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/client_test.go @@ -3,7 +3,7 @@ package meshpipelinerunnerclient import ( "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) // A-D7: the subject carries the module, the branch and the commit or group, each escaped as a key's name is, and is diff --git a/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/go.mod b/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/go.mod new file mode 100644 index 00000000..a9b1b2b7 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/go.mod @@ -0,0 +1,8 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient + +go 1.26.0 + +require ( + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 +) diff --git a/contracts/go/clients/meshpipelinerunnerclient/go.sum b/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/go.sum similarity index 100% rename from contracts/go/clients/meshpipelinerunnerclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient/go.sum diff --git a/contracts/go/clients/meshwantsclient/assignment.go b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/assignment.go similarity index 98% rename from contracts/go/clients/meshwantsclient/assignment.go rename to modules/mesh-delivery-contracts/go/clients/meshwantsclient/assignment.go index 19a716b1..1dc8e403 100644 --- a/contracts/go/clients/meshwantsclient/assignment.go +++ b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/assignment.go @@ -8,7 +8,7 @@ import ( "sync" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/buscalls" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/contracts/go/clients/meshwantsclient/assignment_test.go b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/assignment_test.go similarity index 97% rename from contracts/go/clients/meshwantsclient/assignment_test.go rename to modules/mesh-delivery-contracts/go/clients/meshwantsclient/assignment_test.go index 9d511a02..af734bc5 100644 --- a/contracts/go/clients/meshwantsclient/assignment_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/assignment_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) // fakeWants answers the verb revision with its newest trunk revision, and counts each ask. diff --git a/contracts/go/clients/meshwantsclient/go.mod b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/go.mod similarity index 62% rename from contracts/go/clients/meshwantsclient/go.mod rename to modules/mesh-delivery-contracts/go/clients/meshwantsclient/go.mod index 88f343dc..1dc95e2c 100644 --- a/contracts/go/clients/meshwantsclient/go.mod +++ b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/go.mod @@ -1,9 +1,9 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 ) diff --git a/contracts/go/clients/meshwantsclient/go.sum b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/go.sum similarity index 100% rename from contracts/go/clients/meshwantsclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/meshwantsclient/go.sum diff --git a/contracts/go/clients/meshwantsclient/placed.go b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/placed.go similarity index 97% rename from contracts/go/clients/meshwantsclient/placed.go rename to modules/mesh-delivery-contracts/go/clients/meshwantsclient/placed.go index 5ebbf357..6708af96 100644 --- a/contracts/go/clients/meshwantsclient/placed.go +++ b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/placed.go @@ -6,7 +6,7 @@ import ( "sync" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) // Placed is where the assignment half (the seat mesh-wants' assignment graph revisions; design 47 *The revision view*) diff --git a/contracts/go/clients/meshwantsclient/wants.go b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/wants.go similarity index 99% rename from contracts/go/clients/meshwantsclient/wants.go rename to modules/mesh-delivery-contracts/go/clients/meshwantsclient/wants.go index 1b79073e..6a4cd96f 100644 --- a/contracts/go/clients/meshwantsclient/wants.go +++ b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/wants.go @@ -11,7 +11,7 @@ import ( "regexp" "strings" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/meshwantsclient/wants_test.go b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/wants_test.go similarity index 99% rename from contracts/go/clients/meshwantsclient/wants_test.go rename to modules/mesh-delivery-contracts/go/clients/meshwantsclient/wants_test.go index a621583d..cb6ec2c7 100644 --- a/contracts/go/clients/meshwantsclient/wants_test.go +++ b/modules/mesh-delivery-contracts/go/clients/meshwantsclient/wants_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/contracts/go/clients/npmpackageregistryclient/client.go b/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/client.go similarity index 94% rename from contracts/go/clients/npmpackageregistryclient/client.go rename to modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/client.go index 82625d6e..c35810ae 100644 --- a/contracts/go/clients/npmpackageregistryclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/client.go @@ -12,8 +12,8 @@ import ( "encoding/json" "fmt" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // Call asks one verb of the seat, `seat:.`, with a body, and answers its JSON. diff --git a/contracts/go/clients/npmpackageregistryclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/client_test.go similarity index 92% rename from contracts/go/clients/npmpackageregistryclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/client_test.go index 916ba073..9f5e627c 100644 --- a/contracts/go/clients/npmpackageregistryclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/client_test.go @@ -10,8 +10,8 @@ import ( "io" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // The client publishes over its own seat's verbs alone (ADR 0627 §1): publish names every part, and only the part the diff --git a/contracts/go/clients/npmpackageregistryclient/go.mod b/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/go.mod similarity index 53% rename from contracts/go/clients/npmpackageregistryclient/go.mod rename to modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/go.mod index 98e83727..7eb2d1ee 100644 --- a/contracts/go/clients/npmpackageregistryclient/go.mod +++ b/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/go.mod @@ -1,10 +1,10 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/npmpackageregistryclient +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) require ( diff --git a/contracts/go/clients/npmpackageregistryclient/go.sum b/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/go.sum similarity index 100% rename from contracts/go/clients/npmpackageregistryclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient/go.sum diff --git a/contracts/go/clients/ociartifactregistryclient/client.go b/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/client.go similarity index 94% rename from contracts/go/clients/ociartifactregistryclient/client.go rename to modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/client.go index 2892757d..68e1c6a8 100644 --- a/contracts/go/clients/ociartifactregistryclient/client.go +++ b/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/client.go @@ -12,8 +12,8 @@ import ( "encoding/json" "fmt" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // Call asks one verb of the seat, `seat:.`, with a body, and answers its JSON. diff --git a/contracts/go/clients/ociartifactregistryclient/client_test.go b/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/client_test.go similarity index 92% rename from contracts/go/clients/ociartifactregistryclient/client_test.go rename to modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/client_test.go index 6c340fd1..79ea86d4 100644 --- a/contracts/go/clients/ociartifactregistryclient/client_test.go +++ b/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/client_test.go @@ -10,8 +10,8 @@ import ( "io" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry" - "git.novox.be/novox/mesh-delivery/sdk/parts" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/parts" ) // The client publishes over its own seat's verbs alone (ADR 0627 §1): publish names every part, and only the part the diff --git a/contracts/go/clients/containerimageregistryclient/go.mod b/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/go.mod similarity index 53% rename from contracts/go/clients/containerimageregistryclient/go.mod rename to modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/go.mod index 17316125..8c3ad757 100644 --- a/contracts/go/clients/containerimageregistryclient/go.mod +++ b/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/go.mod @@ -1,10 +1,10 @@ -module git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) require ( diff --git a/contracts/go/clients/ociartifactregistryclient/go.sum b/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/go.sum similarity index 100% rename from contracts/go/clients/ociartifactregistryclient/go.sum rename to modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient/go.sum diff --git a/contracts/go/seats/containerimageregistry/contract.go b/modules/mesh-delivery-contracts/go/seats/containerimageregistry/contract.go similarity index 100% rename from contracts/go/seats/containerimageregistry/contract.go rename to modules/mesh-delivery-contracts/go/seats/containerimageregistry/contract.go diff --git a/contracts/go/seats/containerimageregistry/contract_test.go b/modules/mesh-delivery-contracts/go/seats/containerimageregistry/contract_test.go similarity index 100% rename from contracts/go/seats/containerimageregistry/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/containerimageregistry/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/containerimageregistry/go.mod b/modules/mesh-delivery-contracts/go/seats/containerimageregistry/go.mod new file mode 100644 index 00000000..4f84a803 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/containerimageregistry/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry + +go 1.26.0 diff --git a/contracts/go/seats/git/contract.go b/modules/mesh-delivery-contracts/go/seats/git/contract.go similarity index 100% rename from contracts/go/seats/git/contract.go rename to modules/mesh-delivery-contracts/go/seats/git/contract.go diff --git a/contracts/go/seats/git/contract_test.go b/modules/mesh-delivery-contracts/go/seats/git/contract_test.go similarity index 100% rename from contracts/go/seats/git/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/git/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/git/go.mod b/modules/mesh-delivery-contracts/go/seats/git/go.mod new file mode 100644 index 00000000..41e96f4a --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/git/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git + +go 1.26.0 diff --git a/contracts/go/seats/gopackageregistry/contract.go b/modules/mesh-delivery-contracts/go/seats/gopackageregistry/contract.go similarity index 100% rename from contracts/go/seats/gopackageregistry/contract.go rename to modules/mesh-delivery-contracts/go/seats/gopackageregistry/contract.go diff --git a/contracts/go/seats/gopackageregistry/contract_test.go b/modules/mesh-delivery-contracts/go/seats/gopackageregistry/contract_test.go similarity index 100% rename from contracts/go/seats/gopackageregistry/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/gopackageregistry/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/gopackageregistry/go.mod b/modules/mesh-delivery-contracts/go/seats/gopackageregistry/go.mod new file mode 100644 index 00000000..a397a011 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/gopackageregistry/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry + +go 1.26.0 diff --git a/contracts/go/seats/meshartifactsweep/contract.go b/modules/mesh-delivery-contracts/go/seats/meshartifactsweep/contract.go similarity index 100% rename from contracts/go/seats/meshartifactsweep/contract.go rename to modules/mesh-delivery-contracts/go/seats/meshartifactsweep/contract.go diff --git a/contracts/go/seats/meshartifactsweep/contract_test.go b/modules/mesh-delivery-contracts/go/seats/meshartifactsweep/contract_test.go similarity index 100% rename from contracts/go/seats/meshartifactsweep/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/meshartifactsweep/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/meshartifactsweep/go.mod b/modules/mesh-delivery-contracts/go/seats/meshartifactsweep/go.mod new file mode 100644 index 00000000..9c2cd6e6 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/meshartifactsweep/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshartifactsweep + +go 1.26.0 diff --git a/contracts/go/seats/meshbuilds/contract.go b/modules/mesh-delivery-contracts/go/seats/meshbuilds/contract.go similarity index 100% rename from contracts/go/seats/meshbuilds/contract.go rename to modules/mesh-delivery-contracts/go/seats/meshbuilds/contract.go diff --git a/contracts/go/seats/meshbuilds/contract_test.go b/modules/mesh-delivery-contracts/go/seats/meshbuilds/contract_test.go similarity index 100% rename from contracts/go/seats/meshbuilds/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/meshbuilds/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/meshbuilds/go.mod b/modules/mesh-delivery-contracts/go/seats/meshbuilds/go.mod new file mode 100644 index 00000000..aa6f4aa2 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/meshbuilds/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds + +go 1.26.0 diff --git a/contracts/go/seats/meshcatalog/contract.go b/modules/mesh-delivery-contracts/go/seats/meshcatalog/contract.go similarity index 100% rename from contracts/go/seats/meshcatalog/contract.go rename to modules/mesh-delivery-contracts/go/seats/meshcatalog/contract.go diff --git a/contracts/go/seats/meshcatalog/contract_test.go b/modules/mesh-delivery-contracts/go/seats/meshcatalog/contract_test.go similarity index 100% rename from contracts/go/seats/meshcatalog/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/meshcatalog/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/meshcatalog/go.mod b/modules/mesh-delivery-contracts/go/seats/meshcatalog/go.mod new file mode 100644 index 00000000..d4fbc821 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/meshcatalog/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog + +go 1.26.0 diff --git a/contracts/go/seats/meshdelivery/contract.go b/modules/mesh-delivery-contracts/go/seats/meshdelivery/contract.go similarity index 100% rename from contracts/go/seats/meshdelivery/contract.go rename to modules/mesh-delivery-contracts/go/seats/meshdelivery/contract.go diff --git a/contracts/go/seats/meshdelivery/contract_test.go b/modules/mesh-delivery-contracts/go/seats/meshdelivery/contract_test.go similarity index 100% rename from contracts/go/seats/meshdelivery/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/meshdelivery/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/meshdelivery/go.mod b/modules/mesh-delivery-contracts/go/seats/meshdelivery/go.mod new file mode 100644 index 00000000..4e1e0e7c --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/meshdelivery/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery + +go 1.26.0 diff --git a/contracts/go/seats/meshdeliverychecker/contract.go b/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/contract.go similarity index 100% rename from contracts/go/seats/meshdeliverychecker/contract.go rename to modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/contract.go diff --git a/contracts/go/seats/meshdeliverychecker/contract_test.go b/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/contract_test.go similarity index 100% rename from contracts/go/seats/meshdeliverychecker/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/go.mod b/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/go.mod new file mode 100644 index 00000000..50d16d24 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker + +go 1.26.0 diff --git a/contracts/go/seats/meshpipelinerunner/contract.go b/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/contract.go similarity index 100% rename from contracts/go/seats/meshpipelinerunner/contract.go rename to modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/contract.go diff --git a/contracts/go/seats/meshpipelinerunner/contract_test.go b/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/contract_test.go similarity index 100% rename from contracts/go/seats/meshpipelinerunner/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/go.mod b/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/go.mod new file mode 100644 index 00000000..332bfe8d --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner + +go 1.26.0 diff --git a/contracts/go/seats/meshwants/contract.go b/modules/mesh-delivery-contracts/go/seats/meshwants/contract.go similarity index 100% rename from contracts/go/seats/meshwants/contract.go rename to modules/mesh-delivery-contracts/go/seats/meshwants/contract.go diff --git a/contracts/go/seats/meshwants/contract_test.go b/modules/mesh-delivery-contracts/go/seats/meshwants/contract_test.go similarity index 100% rename from contracts/go/seats/meshwants/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/meshwants/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/meshwants/go.mod b/modules/mesh-delivery-contracts/go/seats/meshwants/go.mod new file mode 100644 index 00000000..18d6eb0f --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/meshwants/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants + +go 1.26.0 diff --git a/contracts/go/seats/nodebuildgo/contract.go b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract.go similarity index 100% rename from contracts/go/seats/nodebuildgo/contract.go rename to modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract.go diff --git a/contracts/go/seats/nodebuildgo/contract_test.go b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract_test.go similarity index 100% rename from contracts/go/seats/nodebuildgo/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildgo/go.mod b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/go.mod new file mode 100644 index 00000000..566451aa --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo + +go 1.26.0 diff --git a/contracts/go/seats/nodebuildimage/contract.go b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract.go similarity index 100% rename from contracts/go/seats/nodebuildimage/contract.go rename to modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract.go diff --git a/contracts/go/seats/nodebuildimage/contract_test.go b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract_test.go similarity index 100% rename from contracts/go/seats/nodebuildimage/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildimage/go.mod b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/go.mod new file mode 100644 index 00000000..3f58e3a1 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildimage + +go 1.26.0 diff --git a/contracts/go/seats/nodebuildnode/contract.go b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract.go similarity index 100% rename from contracts/go/seats/nodebuildnode/contract.go rename to modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract.go diff --git a/contracts/go/seats/nodebuildnode/contract_test.go b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract_test.go similarity index 100% rename from contracts/go/seats/nodebuildnode/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildnode/go.mod b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/go.mod new file mode 100644 index 00000000..ba46f1ae --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode + +go 1.26.0 diff --git a/contracts/go/seats/npmpackageregistry/contract.go b/modules/mesh-delivery-contracts/go/seats/npmpackageregistry/contract.go similarity index 100% rename from contracts/go/seats/npmpackageregistry/contract.go rename to modules/mesh-delivery-contracts/go/seats/npmpackageregistry/contract.go diff --git a/contracts/go/seats/npmpackageregistry/contract_test.go b/modules/mesh-delivery-contracts/go/seats/npmpackageregistry/contract_test.go similarity index 100% rename from contracts/go/seats/npmpackageregistry/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/npmpackageregistry/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/npmpackageregistry/go.mod b/modules/mesh-delivery-contracts/go/seats/npmpackageregistry/go.mod new file mode 100644 index 00000000..d2f31733 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/npmpackageregistry/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry + +go 1.26.0 diff --git a/contracts/go/seats/ociartifactregistry/contract.go b/modules/mesh-delivery-contracts/go/seats/ociartifactregistry/contract.go similarity index 100% rename from contracts/go/seats/ociartifactregistry/contract.go rename to modules/mesh-delivery-contracts/go/seats/ociartifactregistry/contract.go diff --git a/contracts/go/seats/ociartifactregistry/contract_test.go b/modules/mesh-delivery-contracts/go/seats/ociartifactregistry/contract_test.go similarity index 100% rename from contracts/go/seats/ociartifactregistry/contract_test.go rename to modules/mesh-delivery-contracts/go/seats/ociartifactregistry/contract_test.go diff --git a/modules/mesh-delivery-contracts/go/seats/ociartifactregistry/go.mod b/modules/mesh-delivery-contracts/go/seats/ociartifactregistry/go.mod new file mode 100644 index 00000000..02168816 --- /dev/null +++ b/modules/mesh-delivery-contracts/go/seats/ociartifactregistry/go.mod @@ -0,0 +1,3 @@ +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry + +go 1.26.0 diff --git a/contracts/module.json b/modules/mesh-delivery-contracts/module.json similarity index 100% rename from contracts/module.json rename to modules/mesh-delivery-contracts/module.json diff --git a/contracts/parts/build-step.json b/modules/mesh-delivery-contracts/parts/build-step.json similarity index 100% rename from contracts/parts/build-step.json rename to modules/mesh-delivery-contracts/parts/build-step.json diff --git a/contracts/parts/registry.json b/modules/mesh-delivery-contracts/parts/registry.json similarity index 100% rename from contracts/parts/registry.json rename to modules/mesh-delivery-contracts/parts/registry.json diff --git a/contracts/seats/container-image-registry/fixtures/events.json b/modules/mesh-delivery-contracts/seats/container-image-registry/fixtures/events.json similarity index 100% rename from contracts/seats/container-image-registry/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/container-image-registry/fixtures/events.json diff --git a/contracts/seats/container-image-registry/fixtures/states.json b/modules/mesh-delivery-contracts/seats/container-image-registry/fixtures/states.json similarity index 100% rename from contracts/seats/container-image-registry/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/container-image-registry/fixtures/states.json diff --git a/contracts/seats/container-image-registry/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/container-image-registry/fixtures/verbs.json similarity index 100% rename from contracts/seats/container-image-registry/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/container-image-registry/fixtures/verbs.json diff --git a/contracts/seats/container-image-registry/seat.json b/modules/mesh-delivery-contracts/seats/container-image-registry/seat.json similarity index 100% rename from contracts/seats/container-image-registry/seat.json rename to modules/mesh-delivery-contracts/seats/container-image-registry/seat.json diff --git a/contracts/seats/git/fixtures/events.json b/modules/mesh-delivery-contracts/seats/git/fixtures/events.json similarity index 100% rename from contracts/seats/git/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/git/fixtures/events.json diff --git a/contracts/seats/git/fixtures/states.json b/modules/mesh-delivery-contracts/seats/git/fixtures/states.json similarity index 100% rename from contracts/seats/git/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/git/fixtures/states.json diff --git a/contracts/seats/git/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/git/fixtures/verbs.json similarity index 100% rename from contracts/seats/git/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/git/fixtures/verbs.json diff --git a/contracts/seats/git/seat.json b/modules/mesh-delivery-contracts/seats/git/seat.json similarity index 100% rename from contracts/seats/git/seat.json rename to modules/mesh-delivery-contracts/seats/git/seat.json diff --git a/contracts/seats/go-package-registry/fixtures/events.json b/modules/mesh-delivery-contracts/seats/go-package-registry/fixtures/events.json similarity index 100% rename from contracts/seats/go-package-registry/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/go-package-registry/fixtures/events.json diff --git a/contracts/seats/go-package-registry/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/go-package-registry/fixtures/verbs.json similarity index 100% rename from contracts/seats/go-package-registry/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/go-package-registry/fixtures/verbs.json diff --git a/contracts/seats/go-package-registry/seat.json b/modules/mesh-delivery-contracts/seats/go-package-registry/seat.json similarity index 100% rename from contracts/seats/go-package-registry/seat.json rename to modules/mesh-delivery-contracts/seats/go-package-registry/seat.json diff --git a/contracts/seats/mesh-artifact-store/seat.json b/modules/mesh-delivery-contracts/seats/mesh-artifact-store/seat.json similarity index 100% rename from contracts/seats/mesh-artifact-store/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-artifact-store/seat.json diff --git a/contracts/seats/mesh-artifact-sweep/fixtures/events.json b/modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/fixtures/events.json similarity index 100% rename from contracts/seats/mesh-artifact-sweep/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/fixtures/events.json diff --git a/contracts/seats/mesh-artifact-sweep/fixtures/states.json b/modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/fixtures/states.json similarity index 100% rename from contracts/seats/mesh-artifact-sweep/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/fixtures/states.json diff --git a/contracts/seats/mesh-artifact-sweep/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/fixtures/verbs.json similarity index 100% rename from contracts/seats/mesh-artifact-sweep/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/fixtures/verbs.json diff --git a/contracts/seats/mesh-artifact-sweep/seat.json b/modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/seat.json similarity index 100% rename from contracts/seats/mesh-artifact-sweep/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-artifact-sweep/seat.json diff --git a/contracts/seats/mesh-builds/fixtures/events.json b/modules/mesh-delivery-contracts/seats/mesh-builds/fixtures/events.json similarity index 100% rename from contracts/seats/mesh-builds/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/mesh-builds/fixtures/events.json diff --git a/contracts/seats/mesh-builds/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/mesh-builds/fixtures/verbs.json similarity index 100% rename from contracts/seats/mesh-builds/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/mesh-builds/fixtures/verbs.json diff --git a/contracts/seats/mesh-builds/seat.json b/modules/mesh-delivery-contracts/seats/mesh-builds/seat.json similarity index 100% rename from contracts/seats/mesh-builds/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-builds/seat.json diff --git a/contracts/seats/mesh-catalog/fixtures/events.json b/modules/mesh-delivery-contracts/seats/mesh-catalog/fixtures/events.json similarity index 100% rename from contracts/seats/mesh-catalog/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/mesh-catalog/fixtures/events.json diff --git a/contracts/seats/mesh-catalog/fixtures/states.json b/modules/mesh-delivery-contracts/seats/mesh-catalog/fixtures/states.json similarity index 100% rename from contracts/seats/mesh-catalog/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/mesh-catalog/fixtures/states.json diff --git a/contracts/seats/mesh-catalog/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/mesh-catalog/fixtures/verbs.json similarity index 100% rename from contracts/seats/mesh-catalog/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/mesh-catalog/fixtures/verbs.json diff --git a/contracts/seats/mesh-catalog/seat.json b/modules/mesh-delivery-contracts/seats/mesh-catalog/seat.json similarity index 100% rename from contracts/seats/mesh-catalog/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-catalog/seat.json diff --git a/contracts/seats/mesh-delivery-checker/fixtures/events.json b/modules/mesh-delivery-contracts/seats/mesh-delivery-checker/fixtures/events.json similarity index 100% rename from contracts/seats/mesh-delivery-checker/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery-checker/fixtures/events.json diff --git a/contracts/seats/mesh-delivery-checker/fixtures/states.json b/modules/mesh-delivery-contracts/seats/mesh-delivery-checker/fixtures/states.json similarity index 100% rename from contracts/seats/mesh-delivery-checker/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery-checker/fixtures/states.json diff --git a/contracts/seats/mesh-delivery-checker/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/mesh-delivery-checker/fixtures/verbs.json similarity index 100% rename from contracts/seats/mesh-delivery-checker/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery-checker/fixtures/verbs.json diff --git a/contracts/seats/mesh-delivery-checker/seat.json b/modules/mesh-delivery-contracts/seats/mesh-delivery-checker/seat.json similarity index 100% rename from contracts/seats/mesh-delivery-checker/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery-checker/seat.json diff --git a/contracts/seats/mesh-delivery/fixtures/events.json b/modules/mesh-delivery-contracts/seats/mesh-delivery/fixtures/events.json similarity index 100% rename from contracts/seats/mesh-delivery/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery/fixtures/events.json diff --git a/contracts/seats/mesh-delivery/fixtures/states.json b/modules/mesh-delivery-contracts/seats/mesh-delivery/fixtures/states.json similarity index 100% rename from contracts/seats/mesh-delivery/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery/fixtures/states.json diff --git a/contracts/seats/mesh-delivery/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/mesh-delivery/fixtures/verbs.json similarity index 100% rename from contracts/seats/mesh-delivery/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery/fixtures/verbs.json diff --git a/contracts/seats/mesh-delivery/seat.json b/modules/mesh-delivery-contracts/seats/mesh-delivery/seat.json similarity index 100% rename from contracts/seats/mesh-delivery/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-delivery/seat.json diff --git a/contracts/seats/mesh-pipeline-runner/fixtures/events.json b/modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/fixtures/events.json similarity index 100% rename from contracts/seats/mesh-pipeline-runner/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/fixtures/events.json diff --git a/contracts/seats/mesh-pipeline-runner/fixtures/states.json b/modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/fixtures/states.json similarity index 100% rename from contracts/seats/mesh-pipeline-runner/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/fixtures/states.json diff --git a/contracts/seats/mesh-pipeline-runner/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/fixtures/verbs.json similarity index 100% rename from contracts/seats/mesh-pipeline-runner/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/fixtures/verbs.json diff --git a/contracts/seats/mesh-pipeline-runner/seat.json b/modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/seat.json similarity index 100% rename from contracts/seats/mesh-pipeline-runner/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-pipeline-runner/seat.json diff --git a/contracts/seats/mesh-wants/fixtures/events.json b/modules/mesh-delivery-contracts/seats/mesh-wants/fixtures/events.json similarity index 100% rename from contracts/seats/mesh-wants/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/mesh-wants/fixtures/events.json diff --git a/contracts/seats/mesh-wants/fixtures/states.json b/modules/mesh-delivery-contracts/seats/mesh-wants/fixtures/states.json similarity index 100% rename from contracts/seats/mesh-wants/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/mesh-wants/fixtures/states.json diff --git a/contracts/seats/mesh-wants/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/mesh-wants/fixtures/verbs.json similarity index 100% rename from contracts/seats/mesh-wants/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/mesh-wants/fixtures/verbs.json diff --git a/contracts/seats/mesh-wants/seat.json b/modules/mesh-delivery-contracts/seats/mesh-wants/seat.json similarity index 100% rename from contracts/seats/mesh-wants/seat.json rename to modules/mesh-delivery-contracts/seats/mesh-wants/seat.json diff --git a/contracts/seats/node-build-go/fixtures/events.json b/modules/mesh-delivery-contracts/seats/node-build-go/fixtures/events.json similarity index 100% rename from contracts/seats/node-build-go/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/node-build-go/fixtures/events.json diff --git a/contracts/seats/node-build-go/fixtures/states.json b/modules/mesh-delivery-contracts/seats/node-build-go/fixtures/states.json similarity index 100% rename from contracts/seats/node-build-go/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/node-build-go/fixtures/states.json diff --git a/contracts/seats/node-build-go/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/node-build-go/fixtures/verbs.json similarity index 100% rename from contracts/seats/node-build-go/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/node-build-go/fixtures/verbs.json diff --git a/contracts/seats/node-build-go/seat.json b/modules/mesh-delivery-contracts/seats/node-build-go/seat.json similarity index 100% rename from contracts/seats/node-build-go/seat.json rename to modules/mesh-delivery-contracts/seats/node-build-go/seat.json diff --git a/contracts/seats/node-build-image/fixtures/events.json b/modules/mesh-delivery-contracts/seats/node-build-image/fixtures/events.json similarity index 100% rename from contracts/seats/node-build-image/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/node-build-image/fixtures/events.json diff --git a/contracts/seats/node-build-image/fixtures/states.json b/modules/mesh-delivery-contracts/seats/node-build-image/fixtures/states.json similarity index 100% rename from contracts/seats/node-build-image/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/node-build-image/fixtures/states.json diff --git a/contracts/seats/node-build-image/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/node-build-image/fixtures/verbs.json similarity index 100% rename from contracts/seats/node-build-image/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/node-build-image/fixtures/verbs.json diff --git a/contracts/seats/node-build-image/seat.json b/modules/mesh-delivery-contracts/seats/node-build-image/seat.json similarity index 100% rename from contracts/seats/node-build-image/seat.json rename to modules/mesh-delivery-contracts/seats/node-build-image/seat.json diff --git a/contracts/seats/node-build-node/fixtures/events.json b/modules/mesh-delivery-contracts/seats/node-build-node/fixtures/events.json similarity index 100% rename from contracts/seats/node-build-node/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/node-build-node/fixtures/events.json diff --git a/contracts/seats/node-build-node/fixtures/states.json b/modules/mesh-delivery-contracts/seats/node-build-node/fixtures/states.json similarity index 100% rename from contracts/seats/node-build-node/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/node-build-node/fixtures/states.json diff --git a/contracts/seats/node-build-node/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/node-build-node/fixtures/verbs.json similarity index 100% rename from contracts/seats/node-build-node/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/node-build-node/fixtures/verbs.json diff --git a/contracts/seats/node-build-node/seat.json b/modules/mesh-delivery-contracts/seats/node-build-node/seat.json similarity index 100% rename from contracts/seats/node-build-node/seat.json rename to modules/mesh-delivery-contracts/seats/node-build-node/seat.json diff --git a/contracts/seats/npm-package-registry/fixtures/events.json b/modules/mesh-delivery-contracts/seats/npm-package-registry/fixtures/events.json similarity index 100% rename from contracts/seats/npm-package-registry/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/npm-package-registry/fixtures/events.json diff --git a/contracts/seats/npm-package-registry/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/npm-package-registry/fixtures/verbs.json similarity index 100% rename from contracts/seats/npm-package-registry/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/npm-package-registry/fixtures/verbs.json diff --git a/contracts/seats/npm-package-registry/seat.json b/modules/mesh-delivery-contracts/seats/npm-package-registry/seat.json similarity index 100% rename from contracts/seats/npm-package-registry/seat.json rename to modules/mesh-delivery-contracts/seats/npm-package-registry/seat.json diff --git a/contracts/seats/oci-artifact-registry/fixtures/events.json b/modules/mesh-delivery-contracts/seats/oci-artifact-registry/fixtures/events.json similarity index 100% rename from contracts/seats/oci-artifact-registry/fixtures/events.json rename to modules/mesh-delivery-contracts/seats/oci-artifact-registry/fixtures/events.json diff --git a/contracts/seats/oci-artifact-registry/fixtures/states.json b/modules/mesh-delivery-contracts/seats/oci-artifact-registry/fixtures/states.json similarity index 100% rename from contracts/seats/oci-artifact-registry/fixtures/states.json rename to modules/mesh-delivery-contracts/seats/oci-artifact-registry/fixtures/states.json diff --git a/contracts/seats/oci-artifact-registry/fixtures/verbs.json b/modules/mesh-delivery-contracts/seats/oci-artifact-registry/fixtures/verbs.json similarity index 100% rename from contracts/seats/oci-artifact-registry/fixtures/verbs.json rename to modules/mesh-delivery-contracts/seats/oci-artifact-registry/fixtures/verbs.json diff --git a/contracts/seats/oci-artifact-registry/seat.json b/modules/mesh-delivery-contracts/seats/oci-artifact-registry/seat.json similarity index 100% rename from contracts/seats/oci-artifact-registry/seat.json rename to modules/mesh-delivery-contracts/seats/oci-artifact-registry/seat.json diff --git a/contracts/ts/seats/containerimageregistry/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/containerimageregistry/index.d.ts similarity index 100% rename from contracts/ts/seats/containerimageregistry/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/containerimageregistry/index.d.ts diff --git a/contracts/ts/seats/containerimageregistry/index.js b/modules/mesh-delivery-contracts/ts/seats/containerimageregistry/index.js similarity index 100% rename from contracts/ts/seats/containerimageregistry/index.js rename to modules/mesh-delivery-contracts/ts/seats/containerimageregistry/index.js diff --git a/contracts/ts/seats/containerimageregistry/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/containerimageregistry/package-lock.json similarity index 100% rename from contracts/ts/seats/containerimageregistry/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/containerimageregistry/package-lock.json diff --git a/contracts/ts/seats/containerimageregistry/package.json b/modules/mesh-delivery-contracts/ts/seats/containerimageregistry/package.json similarity index 100% rename from contracts/ts/seats/containerimageregistry/package.json rename to modules/mesh-delivery-contracts/ts/seats/containerimageregistry/package.json diff --git a/contracts/ts/seats/containerimageregistry/parts/registry.d.ts b/modules/mesh-delivery-contracts/ts/seats/containerimageregistry/parts/registry.d.ts similarity index 100% rename from contracts/ts/seats/containerimageregistry/parts/registry.d.ts rename to modules/mesh-delivery-contracts/ts/seats/containerimageregistry/parts/registry.d.ts diff --git a/contracts/ts/seats/containerimageregistry/parts/registry.js b/modules/mesh-delivery-contracts/ts/seats/containerimageregistry/parts/registry.js similarity index 100% rename from contracts/ts/seats/containerimageregistry/parts/registry.js rename to modules/mesh-delivery-contracts/ts/seats/containerimageregistry/parts/registry.js diff --git a/contracts/ts/seats/git/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/git/index.d.ts similarity index 100% rename from contracts/ts/seats/git/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/git/index.d.ts diff --git a/contracts/ts/seats/git/index.js b/modules/mesh-delivery-contracts/ts/seats/git/index.js similarity index 100% rename from contracts/ts/seats/git/index.js rename to modules/mesh-delivery-contracts/ts/seats/git/index.js diff --git a/contracts/ts/seats/git/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/git/package-lock.json similarity index 100% rename from contracts/ts/seats/git/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/git/package-lock.json diff --git a/contracts/ts/seats/git/package.json b/modules/mesh-delivery-contracts/ts/seats/git/package.json similarity index 100% rename from contracts/ts/seats/git/package.json rename to modules/mesh-delivery-contracts/ts/seats/git/package.json diff --git a/contracts/ts/seats/gopackageregistry/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/gopackageregistry/index.d.ts similarity index 100% rename from contracts/ts/seats/gopackageregistry/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/gopackageregistry/index.d.ts diff --git a/contracts/ts/seats/gopackageregistry/index.js b/modules/mesh-delivery-contracts/ts/seats/gopackageregistry/index.js similarity index 100% rename from contracts/ts/seats/gopackageregistry/index.js rename to modules/mesh-delivery-contracts/ts/seats/gopackageregistry/index.js diff --git a/contracts/ts/seats/gopackageregistry/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/gopackageregistry/package-lock.json similarity index 100% rename from contracts/ts/seats/gopackageregistry/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/gopackageregistry/package-lock.json diff --git a/contracts/ts/seats/gopackageregistry/package.json b/modules/mesh-delivery-contracts/ts/seats/gopackageregistry/package.json similarity index 100% rename from contracts/ts/seats/gopackageregistry/package.json rename to modules/mesh-delivery-contracts/ts/seats/gopackageregistry/package.json diff --git a/contracts/ts/seats/gopackageregistry/parts/registry.d.ts b/modules/mesh-delivery-contracts/ts/seats/gopackageregistry/parts/registry.d.ts similarity index 100% rename from contracts/ts/seats/gopackageregistry/parts/registry.d.ts rename to modules/mesh-delivery-contracts/ts/seats/gopackageregistry/parts/registry.d.ts diff --git a/contracts/ts/seats/gopackageregistry/parts/registry.js b/modules/mesh-delivery-contracts/ts/seats/gopackageregistry/parts/registry.js similarity index 100% rename from contracts/ts/seats/gopackageregistry/parts/registry.js rename to modules/mesh-delivery-contracts/ts/seats/gopackageregistry/parts/registry.js diff --git a/contracts/ts/seats/meshartifactsweep/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/index.d.ts similarity index 100% rename from contracts/ts/seats/meshartifactsweep/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/index.d.ts diff --git a/contracts/ts/seats/meshartifactsweep/index.js b/modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/index.js similarity index 100% rename from contracts/ts/seats/meshartifactsweep/index.js rename to modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/index.js diff --git a/contracts/ts/seats/meshartifactsweep/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/package-lock.json similarity index 100% rename from contracts/ts/seats/meshartifactsweep/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/package-lock.json diff --git a/contracts/ts/seats/meshartifactsweep/package.json b/modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/package.json similarity index 100% rename from contracts/ts/seats/meshartifactsweep/package.json rename to modules/mesh-delivery-contracts/ts/seats/meshartifactsweep/package.json diff --git a/contracts/ts/seats/meshbuilds/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/meshbuilds/index.d.ts similarity index 100% rename from contracts/ts/seats/meshbuilds/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/meshbuilds/index.d.ts diff --git a/contracts/ts/seats/meshbuilds/index.js b/modules/mesh-delivery-contracts/ts/seats/meshbuilds/index.js similarity index 100% rename from contracts/ts/seats/meshbuilds/index.js rename to modules/mesh-delivery-contracts/ts/seats/meshbuilds/index.js diff --git a/contracts/ts/seats/meshbuilds/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/meshbuilds/package-lock.json similarity index 100% rename from contracts/ts/seats/meshbuilds/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/meshbuilds/package-lock.json diff --git a/contracts/ts/seats/meshbuilds/package.json b/modules/mesh-delivery-contracts/ts/seats/meshbuilds/package.json similarity index 100% rename from contracts/ts/seats/meshbuilds/package.json rename to modules/mesh-delivery-contracts/ts/seats/meshbuilds/package.json diff --git a/contracts/ts/seats/meshcatalog/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/meshcatalog/index.d.ts similarity index 100% rename from contracts/ts/seats/meshcatalog/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/meshcatalog/index.d.ts diff --git a/contracts/ts/seats/meshcatalog/index.js b/modules/mesh-delivery-contracts/ts/seats/meshcatalog/index.js similarity index 100% rename from contracts/ts/seats/meshcatalog/index.js rename to modules/mesh-delivery-contracts/ts/seats/meshcatalog/index.js diff --git a/contracts/ts/seats/meshcatalog/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/meshcatalog/package-lock.json similarity index 100% rename from contracts/ts/seats/meshcatalog/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/meshcatalog/package-lock.json diff --git a/contracts/ts/seats/meshcatalog/package.json b/modules/mesh-delivery-contracts/ts/seats/meshcatalog/package.json similarity index 100% rename from contracts/ts/seats/meshcatalog/package.json rename to modules/mesh-delivery-contracts/ts/seats/meshcatalog/package.json diff --git a/contracts/ts/seats/meshdelivery/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/meshdelivery/index.d.ts similarity index 100% rename from contracts/ts/seats/meshdelivery/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/meshdelivery/index.d.ts diff --git a/contracts/ts/seats/meshdelivery/index.js b/modules/mesh-delivery-contracts/ts/seats/meshdelivery/index.js similarity index 100% rename from contracts/ts/seats/meshdelivery/index.js rename to modules/mesh-delivery-contracts/ts/seats/meshdelivery/index.js diff --git a/contracts/ts/seats/meshdelivery/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/meshdelivery/package-lock.json similarity index 100% rename from contracts/ts/seats/meshdelivery/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/meshdelivery/package-lock.json diff --git a/contracts/ts/seats/meshdelivery/package.json b/modules/mesh-delivery-contracts/ts/seats/meshdelivery/package.json similarity index 100% rename from contracts/ts/seats/meshdelivery/package.json rename to modules/mesh-delivery-contracts/ts/seats/meshdelivery/package.json diff --git a/contracts/ts/seats/meshdeliverychecker/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/index.d.ts similarity index 100% rename from contracts/ts/seats/meshdeliverychecker/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/index.d.ts diff --git a/contracts/ts/seats/meshdeliverychecker/index.js b/modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/index.js similarity index 100% rename from contracts/ts/seats/meshdeliverychecker/index.js rename to modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/index.js diff --git a/contracts/ts/seats/meshdeliverychecker/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/package-lock.json similarity index 100% rename from contracts/ts/seats/meshdeliverychecker/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/package-lock.json diff --git a/contracts/ts/seats/meshdeliverychecker/package.json b/modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/package.json similarity index 100% rename from contracts/ts/seats/meshdeliverychecker/package.json rename to modules/mesh-delivery-contracts/ts/seats/meshdeliverychecker/package.json diff --git a/contracts/ts/seats/meshpipelinerunner/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/index.d.ts similarity index 100% rename from contracts/ts/seats/meshpipelinerunner/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/index.d.ts diff --git a/contracts/ts/seats/meshpipelinerunner/index.js b/modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/index.js similarity index 100% rename from contracts/ts/seats/meshpipelinerunner/index.js rename to modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/index.js diff --git a/contracts/ts/seats/meshpipelinerunner/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/package-lock.json similarity index 100% rename from contracts/ts/seats/meshpipelinerunner/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/package-lock.json diff --git a/contracts/ts/seats/meshpipelinerunner/package.json b/modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/package.json similarity index 100% rename from contracts/ts/seats/meshpipelinerunner/package.json rename to modules/mesh-delivery-contracts/ts/seats/meshpipelinerunner/package.json diff --git a/contracts/ts/seats/meshwants/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/meshwants/index.d.ts similarity index 100% rename from contracts/ts/seats/meshwants/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/meshwants/index.d.ts diff --git a/contracts/ts/seats/meshwants/index.js b/modules/mesh-delivery-contracts/ts/seats/meshwants/index.js similarity index 100% rename from contracts/ts/seats/meshwants/index.js rename to modules/mesh-delivery-contracts/ts/seats/meshwants/index.js diff --git a/contracts/ts/seats/meshwants/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/meshwants/package-lock.json similarity index 100% rename from contracts/ts/seats/meshwants/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/meshwants/package-lock.json diff --git a/contracts/ts/seats/meshwants/package.json b/modules/mesh-delivery-contracts/ts/seats/meshwants/package.json similarity index 100% rename from contracts/ts/seats/meshwants/package.json rename to modules/mesh-delivery-contracts/ts/seats/meshwants/package.json diff --git a/contracts/ts/seats/nodebuildgo/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.d.ts similarity index 100% rename from contracts/ts/seats/nodebuildgo/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.d.ts diff --git a/contracts/ts/seats/nodebuildgo/index.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.js similarity index 100% rename from contracts/ts/seats/nodebuildgo/index.js rename to modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.js diff --git a/contracts/ts/seats/nodebuildgo/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/package-lock.json similarity index 100% rename from contracts/ts/seats/nodebuildgo/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/nodebuildgo/package-lock.json diff --git a/contracts/ts/seats/nodebuildgo/package.json b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/package.json similarity index 100% rename from contracts/ts/seats/nodebuildgo/package.json rename to modules/mesh-delivery-contracts/ts/seats/nodebuildgo/package.json diff --git a/contracts/ts/seats/nodebuildgo/parts/build-step.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/parts/build-step.d.ts similarity index 100% rename from contracts/ts/seats/nodebuildgo/parts/build-step.d.ts rename to modules/mesh-delivery-contracts/ts/seats/nodebuildgo/parts/build-step.d.ts diff --git a/contracts/ts/seats/nodebuildgo/parts/build-step.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/parts/build-step.js similarity index 100% rename from contracts/ts/seats/nodebuildgo/parts/build-step.js rename to modules/mesh-delivery-contracts/ts/seats/nodebuildgo/parts/build-step.js diff --git a/contracts/ts/seats/nodebuildimage/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.d.ts similarity index 100% rename from contracts/ts/seats/nodebuildimage/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.d.ts diff --git a/contracts/ts/seats/nodebuildimage/index.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.js similarity index 100% rename from contracts/ts/seats/nodebuildimage/index.js rename to modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.js diff --git a/contracts/ts/seats/nodebuildimage/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/package-lock.json similarity index 100% rename from contracts/ts/seats/nodebuildimage/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/nodebuildimage/package-lock.json diff --git a/contracts/ts/seats/nodebuildimage/package.json b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/package.json similarity index 100% rename from contracts/ts/seats/nodebuildimage/package.json rename to modules/mesh-delivery-contracts/ts/seats/nodebuildimage/package.json diff --git a/contracts/ts/seats/nodebuildimage/parts/build-step.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/parts/build-step.d.ts similarity index 100% rename from contracts/ts/seats/nodebuildimage/parts/build-step.d.ts rename to modules/mesh-delivery-contracts/ts/seats/nodebuildimage/parts/build-step.d.ts diff --git a/contracts/ts/seats/nodebuildimage/parts/build-step.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/parts/build-step.js similarity index 100% rename from contracts/ts/seats/nodebuildimage/parts/build-step.js rename to modules/mesh-delivery-contracts/ts/seats/nodebuildimage/parts/build-step.js diff --git a/contracts/ts/seats/nodebuildnode/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.d.ts similarity index 100% rename from contracts/ts/seats/nodebuildnode/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.d.ts diff --git a/contracts/ts/seats/nodebuildnode/index.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.js similarity index 100% rename from contracts/ts/seats/nodebuildnode/index.js rename to modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.js diff --git a/contracts/ts/seats/nodebuildnode/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/package-lock.json similarity index 100% rename from contracts/ts/seats/nodebuildnode/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/nodebuildnode/package-lock.json diff --git a/contracts/ts/seats/nodebuildnode/package.json b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/package.json similarity index 100% rename from contracts/ts/seats/nodebuildnode/package.json rename to modules/mesh-delivery-contracts/ts/seats/nodebuildnode/package.json diff --git a/contracts/ts/seats/nodebuildnode/parts/build-step.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/parts/build-step.d.ts similarity index 100% rename from contracts/ts/seats/nodebuildnode/parts/build-step.d.ts rename to modules/mesh-delivery-contracts/ts/seats/nodebuildnode/parts/build-step.d.ts diff --git a/contracts/ts/seats/nodebuildnode/parts/build-step.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/parts/build-step.js similarity index 100% rename from contracts/ts/seats/nodebuildnode/parts/build-step.js rename to modules/mesh-delivery-contracts/ts/seats/nodebuildnode/parts/build-step.js diff --git a/contracts/ts/seats/npmpackageregistry/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/index.d.ts similarity index 100% rename from contracts/ts/seats/npmpackageregistry/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/index.d.ts diff --git a/contracts/ts/seats/npmpackageregistry/index.js b/modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/index.js similarity index 100% rename from contracts/ts/seats/npmpackageregistry/index.js rename to modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/index.js diff --git a/contracts/ts/seats/npmpackageregistry/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/package-lock.json similarity index 100% rename from contracts/ts/seats/npmpackageregistry/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/package-lock.json diff --git a/contracts/ts/seats/npmpackageregistry/package.json b/modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/package.json similarity index 100% rename from contracts/ts/seats/npmpackageregistry/package.json rename to modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/package.json diff --git a/contracts/ts/seats/npmpackageregistry/parts/registry.d.ts b/modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/parts/registry.d.ts similarity index 100% rename from contracts/ts/seats/npmpackageregistry/parts/registry.d.ts rename to modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/parts/registry.d.ts diff --git a/contracts/ts/seats/npmpackageregistry/parts/registry.js b/modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/parts/registry.js similarity index 100% rename from contracts/ts/seats/npmpackageregistry/parts/registry.js rename to modules/mesh-delivery-contracts/ts/seats/npmpackageregistry/parts/registry.js diff --git a/contracts/ts/seats/ociartifactregistry/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/index.d.ts similarity index 100% rename from contracts/ts/seats/ociartifactregistry/index.d.ts rename to modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/index.d.ts diff --git a/contracts/ts/seats/ociartifactregistry/index.js b/modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/index.js similarity index 100% rename from contracts/ts/seats/ociartifactregistry/index.js rename to modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/index.js diff --git a/contracts/ts/seats/ociartifactregistry/package-lock.json b/modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/package-lock.json similarity index 100% rename from contracts/ts/seats/ociartifactregistry/package-lock.json rename to modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/package-lock.json diff --git a/contracts/ts/seats/ociartifactregistry/package.json b/modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/package.json similarity index 100% rename from contracts/ts/seats/ociartifactregistry/package.json rename to modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/package.json diff --git a/contracts/ts/seats/ociartifactregistry/parts/registry.d.ts b/modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/parts/registry.d.ts similarity index 100% rename from contracts/ts/seats/ociartifactregistry/parts/registry.d.ts rename to modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/parts/registry.d.ts diff --git a/contracts/ts/seats/ociartifactregistry/parts/registry.js b/modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/parts/registry.js similarity index 100% rename from contracts/ts/seats/ociartifactregistry/parts/registry.js rename to modules/mesh-delivery-contracts/ts/seats/ociartifactregistry/parts/registry.js diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main.go index 4bc1619d..6a381e25 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main.go @@ -15,7 +15,7 @@ import ( "time" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main_test.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main_test.go index d065eac3..c39fecb5 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main_test.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge-tools/main_test.go @@ -9,9 +9,9 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "mesh-delivery-forge-bridge/internal/bridge" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/gate_test.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/gate_test.go index 942df8cd..8ab15e0c 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/gate_test.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/gate_test.go @@ -10,9 +10,9 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "mesh-delivery-forge-bridge/internal/gitfixture" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groupask.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groupask.go index 6ccd2b76..ef54a70f 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groupask.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groupask.go @@ -8,7 +8,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "mesh-delivery-forge-bridge/internal/groups" ) diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups.go index 1a4d65c9..aade6a14 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups.go @@ -6,7 +6,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" groupkeys "mesh-delivery-forge-bridge/internal/groups" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups_test.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups_test.go index 3c24b39e..34b8b28f 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups_test.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/groups_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" groupkeys "mesh-delivery-forge-bridge/internal/groups" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/integration_test.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/integration_test.go index f0365727..bfb7b416 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/integration_test.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/integration_test.go @@ -21,9 +21,9 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main.go index f91af302..6a9c63ea 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main.go @@ -21,9 +21,9 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "mesh-delivery-forge-bridge/internal/bridge" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main_test.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main_test.go index 865a7c88..da888759 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main_test.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/main_test.go @@ -13,7 +13,7 @@ import ( "testing" "time" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "git.novox.be/novox/mesh-sdk/go/process" "github.com/nats-io/nats.go" @@ -55,7 +55,7 @@ func (p *fakePub) Publish(_ context.Context, subject string, payload []byte, _ . return &jetstream.PubAck{}, nil } -// body is the seat git's pull.updated (contracts/seats/git), the head head_sha laid over it when given. +// body is the seat git's pull.updated (modules/mesh-delivery-contracts/seats/git), the head head_sha laid over it when given. func body(m map[string]any) []byte { e := map[string]any{"repository": "novox/mesh-delivery", "number": 12, "branch": "feat/x", "head": head, "base": "main", "change": map[string]any{"paths": []string{"modules/a/x.go"}, "module-dirs": []string{"modules/a"}}} diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/open.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/open.go index 93f4d07b..9441a818 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/open.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/open.go @@ -10,7 +10,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "mesh-delivery-forge-bridge/internal/bridge" diff --git a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/owed.go b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/owed.go index 7066e2bc..9384e1c4 100644 --- a/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/owed.go +++ b/modules/mesh-delivery-forge-bridge/cmd/mesh-delivery-forge-bridge/owed.go @@ -13,10 +13,10 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-forge-bridge/forgemsg/forge.go b/modules/mesh-delivery-forge-bridge/forgemsg/forge.go index 03568714..ccba891b 100644 --- a/modules/mesh-delivery-forge-bridge/forgemsg/forge.go +++ b/modules/mesh-delivery-forge-bridge/forgemsg/forge.go @@ -11,8 +11,8 @@ import ( "regexp" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go b/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go index 18c75b4c..41fde65b 100644 --- a/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go +++ b/modules/mesh-delivery-forge-bridge/forgemsg/forge_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-forge-bridge/forgemsg/go.mod b/modules/mesh-delivery-forge-bridge/forgemsg/go.mod index 87820559..ddbc1c3e 100644 --- a/modules/mesh-delivery-forge-bridge/forgemsg/go.mod +++ b/modules/mesh-delivery-forge-bridge/forgemsg/go.mod @@ -5,8 +5,8 @@ go 1.26.0 require git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 require ( - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect diff --git a/modules/mesh-delivery-forge-bridge/go.mod b/modules/mesh-delivery-forge-bridge/go.mod index e7af2fcd..e8f3740d 100644 --- a/modules/mesh-delivery-forge-bridge/go.mod +++ b/modules/mesh-delivery-forge-bridge/go.mod @@ -4,11 +4,11 @@ go 1.26.0 require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/git v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats-server/v2 v2.11.17 github.com/nats-io/nats.go v1.54.0 diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go b/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go index 1a7a7439..d27bb022 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/bridge.go @@ -15,7 +15,7 @@ import ( "strings" "sync" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/bridge_test.go b/modules/mesh-delivery-forge-bridge/internal/bridge/bridge_test.go index 2ab29a65..5b6b2efb 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/bridge_test.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/bridge_test.go @@ -15,7 +15,7 @@ import ( const head = "0123456789abcdef0123456789abcdef01234567" -// updated is the body of the seat git's pull.updated (contracts/seats/git): the pull request, its base's head and its +// updated is the body of the seat git's pull.updated (modules/mesh-delivery-contracts/seats/git): the pull request, its base's head and its // change. extra names the parts a test changes by their short names (owner, repo, number, head for the branch, // head_sha for the commit, base, module_dirs, module_dirs_said), a nil value leaving the part out (seatPull). func updated(extra map[string]any) []byte { diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/call.go b/modules/mesh-delivery-forge-bridge/internal/bridge/call.go index fee308e4..012fdea5 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/call.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/call.go @@ -7,7 +7,7 @@ import ( "fmt" "strings" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" ) // Caller calls a seat's verb by its manifest key (`seat:.`) with a JSON body and returns its answer: the diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/forgemade.go b/modules/mesh-delivery-forge-bridge/internal/bridge/forgemade.go index 022b74fb..487fa233 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/forgemade.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/forgemade.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" ) // ForgePull is a pull request as the forge itself says it: what the bridge needs of a merge made on the forge, not diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/owed.go b/modules/mesh-delivery-forge-bridge/internal/bridge/owed.go index 4fd274da..425865ae 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/owed.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/owed.go @@ -5,9 +5,9 @@ import ( "errors" "fmt" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - checker "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + checker "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" ) diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/owed_test.go b/modules/mesh-delivery-forge-bridge/internal/bridge/owed_test.go index bdc235e6..394ab724 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/owed_test.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/owed_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "mesh-delivery-forge-bridge/internal/gitfixture" diff --git a/modules/mesh-delivery-forge-bridge/internal/bridge/tags.go b/modules/mesh-delivery-forge-bridge/internal/bridge/tags.go index df9d4380..67e4be34 100644 --- a/modules/mesh-delivery-forge-bridge/internal/bridge/tags.go +++ b/modules/mesh-delivery-forge-bridge/internal/bridge/tags.go @@ -6,7 +6,7 @@ import ( "sort" "strings" - git "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + git "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" ) // TagsTool is the forge bridge's tool bridge_tags (novox/hq design 51 *The floor*): a package's git tags, which the diff --git a/modules/mesh-delivery-forge-bridge/internal/gitfixture/gitfixture.go b/modules/mesh-delivery-forge-bridge/internal/gitfixture/gitfixture.go index 29641622..e6a5a938 100644 --- a/modules/mesh-delivery-forge-bridge/internal/gitfixture/gitfixture.go +++ b/modules/mesh-delivery-forge-bridge/internal/gitfixture/gitfixture.go @@ -1,4 +1,4 @@ -// Package gitfixture reads the seat git's own fixtures (contracts/seats/git/fixtures/verbs.json), so the bridge's unit +// Package gitfixture reads the seat git's own fixtures (modules/mesh-delivery-contracts/seats/git/fixtures/verbs.json), so the bridge's unit // fakes answer what the seat's holder answers and nothing the contract does not say (design 47 *The seat `git`*). package gitfixture @@ -22,7 +22,7 @@ func All(t testing.TB, name, of string) []json.RawMessage { func Seat(t testing.TB, seat, file, name, of string) []json.RawMessage { t.Helper() _, here, _, _ := runtime.Caller(0) - raw, err := os.ReadFile(filepath.Join(filepath.Dir(here), "../../../../contracts/seats", seat, "fixtures", file+".json")) + raw, err := os.ReadFile(filepath.Join(filepath.Dir(here), "../../../mesh-delivery-contracts/seats", seat, "fixtures", file+".json")) if err != nil { t.Fatal(err) } diff --git a/modules/mesh-delivery-forge-bridge/internal/groups/groups.go b/modules/mesh-delivery-forge-bridge/internal/groups/groups.go index 5cfde96d..ca759043 100644 --- a/modules/mesh-delivery-forge-bridge/internal/groups/groups.go +++ b/modules/mesh-delivery-forge-bridge/internal/groups/groups.go @@ -16,9 +16,9 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/catalog.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/catalog.go index 511ca138..52b5aea2 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/catalog.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/catalog.go @@ -3,12 +3,12 @@ package main import ( "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/views" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "mesh-delivery-indexer/internal/index" ) diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/views.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/views.go index 9a36fcf2..e86d9f46 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/views.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer-tools/views.go @@ -6,8 +6,8 @@ import ( "time" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/buildmodules.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/buildmodules.go index 26c70d7c..f26ab1d2 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/buildmodules.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/buildmodules.go @@ -7,7 +7,7 @@ import ( "sync" "sync/atomic" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/seatdef" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/integration_test.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/integration_test.go index b63124c0..21b60028 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/integration_test.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/integration_test.go @@ -20,8 +20,8 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "github.com/nats-io/nats-server/v2/server" "github.com/nats-io/nats.go" @@ -30,21 +30,21 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/buscompose" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/seatdef" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/views" @@ -696,7 +696,7 @@ func startIndexerRun(t *testing.T, put func(context.Context, buildLog), before . } // The build seats and their holders as the mesh has them (design 47:482-485 and 1583: a language's build module is the -// module claiming the seat whose `acts` is step build on that language): the seat definitions as contracts/seats// +// module claiming the seat whose `acts` is step build on that language): the seat definitions as modules/mesh-delivery-contracts/seats// // seat.json has them (acts included) and the manifests as the catalog's modules/mesh-build-go and mesh-build-node claim them. var buildSeatFixtures = []struct{ seat, language, module, stream string }{ {"node-build-go", "go", "mesh-build-go", "toolchains-go"}, diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go index 33917197..70451ace 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main.go @@ -22,10 +22,10 @@ import ( "syscall" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main_test.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main_test.go index 9eade6df..eea5e715 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main_test.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/main_test.go @@ -14,7 +14,7 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named.go index c1218c42..c99ab795 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named.go @@ -11,10 +11,10 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "mesh-delivery-indexer/internal/fingerprint" "mesh-delivery-indexer/internal/index" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_events.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_events.go index b0442561..e2ec583f 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_events.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_events.go @@ -6,7 +6,7 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-indexer/internal/index" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_test.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_test.go index ec59b489..980e96bd 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_test.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/named_test.go @@ -4,7 +4,7 @@ import ( "context" "encoding/json" "errors" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "mesh-delivery-indexer/internal/index" "slices" "strings" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/objects.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/objects.go index 7b250e47..345d7996 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/objects.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/objects.go @@ -12,7 +12,7 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/packages_integration_test.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/packages_integration_test.go index 9061d7c6..95af6046 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/packages_integration_test.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/packages_integration_test.go @@ -6,26 +6,26 @@ import ( "context" "encoding/json" "errors" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "os" "strings" "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/buscompose" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/seatdef" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "mesh-delivery-indexer/internal/fingerprint" "mesh-delivery-indexer/internal/index" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/registry.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/registry.go index a57c2dbb..b8040c5c 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/registry.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/registry.go @@ -9,8 +9,8 @@ import ( mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - gitseat "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + gitseat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/operatorask" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/seatdefs.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/seatdefs.go index 44ca3c0e..2fa8f9e6 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/seatdefs.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/seatdefs.go @@ -8,7 +8,7 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-indexer/internal/index" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/series.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/series.go index 4502a816..ff1b77f2 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/series.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/series.go @@ -6,8 +6,8 @@ import ( "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry" "mesh-delivery-indexer/internal/index" ) diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/source.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/source.go index f7a37cac..b7c6e267 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/source.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/source.go @@ -9,7 +9,7 @@ import ( "strings" "sync" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/keys" "github.com/nats-io/nats.go/jetstream" ) diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/steps.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/steps.go index 4bd55f18..1dea5455 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/steps.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/steps.go @@ -5,7 +5,7 @@ import ( "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "mesh-delivery-indexer/internal/index" ) diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/toolchains_test.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/toolchains_test.go index ea81a11c..f7da01a3 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/toolchains_test.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/toolchains_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "github.com/nats-io/nats.go/jetstream" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/verdicts.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/verdicts.go index 25a07db1..0ee37ae0 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/verdicts.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/verdicts.go @@ -6,7 +6,7 @@ import ( "fmt" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" "git.novox.be/novox/mesh-sdk/go/process" "github.com/nats-io/nats.go" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/versions.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/versions.go index 1f0cdcd5..3e750328 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/versions.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/versions.go @@ -12,10 +12,10 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-indexer/internal/index" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/views.go b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/views.go index 3bba0087..eb692696 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/views.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-delivery-indexer/views.go @@ -5,7 +5,7 @@ import ( "context" "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "strings" "sync/atomic" "time" @@ -18,7 +18,7 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient/heard" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/views" "mesh-delivery-indexer/internal/index" diff --git a/modules/mesh-delivery-indexer/cmd/mesh-judge/main.go b/modules/mesh-delivery-indexer/cmd/mesh-judge/main.go index 0ca1dd94..0fb0713a 100644 --- a/modules/mesh-delivery-indexer/cmd/mesh-judge/main.go +++ b/modules/mesh-delivery-indexer/cmd/mesh-judge/main.go @@ -13,7 +13,7 @@ import ( "io" "os" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "mesh-delivery-indexer/judge" ) diff --git a/modules/mesh-delivery-indexer/go.mod b/modules/mesh-delivery-indexer/go.mod index 0770c340..b0a7e3c9 100644 --- a/modules/mesh-delivery-indexer/go.mod +++ b/modules/mesh-delivery-indexer/go.mod @@ -7,17 +7,17 @@ require ( git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/git v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/gopackageregistry v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/npmpackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats-server/v2 v2.11.17 @@ -44,12 +44,12 @@ require ( git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) require git.novox.be/novox/mesh-contracts/go/seats/meshbroker v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/sdk => ../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../mesh-delivery-sdk replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein => ./takein @@ -74,8 +74,8 @@ require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-networking/modules/mesh-connectivity-contracts/go/seats/theprivatenetwork v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint.go b/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint.go index 69ea9f49..b5309795 100644 --- a/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint.go +++ b/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint.go @@ -15,10 +15,10 @@ import ( "sort" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // NoPackageVersion opens the reason a module has no fingerprint while a mesh package it uses has no published version diff --git a/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint_test.go b/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint_test.go index a0ba0a22..f143ee14 100644 --- a/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint_test.go +++ b/modules/mesh-delivery-indexer/internal/fingerprint/fingerprint_test.go @@ -4,9 +4,9 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) const sdk = "git.novox.be/novox/mesh-sdk/go" diff --git a/modules/mesh-delivery-indexer/internal/index/accepted.go b/modules/mesh-delivery-indexer/internal/index/accepted.go index 0180466b..c7fcdba5 100644 --- a/modules/mesh-delivery-indexer/internal/index/accepted.go +++ b/modules/mesh-delivery-indexer/internal/index/accepted.go @@ -9,8 +9,8 @@ import ( "time" mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" "mesh-delivery-indexer/judge" diff --git a/modules/mesh-delivery-indexer/internal/index/accepted_problems_test.go b/modules/mesh-delivery-indexer/internal/index/accepted_problems_test.go index c27764d7..0336b34a 100644 --- a/modules/mesh-delivery-indexer/internal/index/accepted_problems_test.go +++ b/modules/mesh-delivery-indexer/internal/index/accepted_problems_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // Design 47 G §668, §692: manifest-accepted's problems are the validator's strings, the same the verdict writes as diff --git a/modules/mesh-delivery-indexer/internal/index/artifacts.go b/modules/mesh-delivery-indexer/internal/index/artifacts.go index 70490183..e12e23e1 100644 --- a/modules/mesh-delivery-indexer/internal/index/artifacts.go +++ b/modules/mesh-delivery-indexer/internal/index/artifacts.go @@ -6,8 +6,8 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/packagename" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/packagename" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-indexer/internal/index/branch_builds.go b/modules/mesh-delivery-indexer/internal/index/branch_builds.go index e72cb362..d30a7320 100644 --- a/modules/mesh-delivery-indexer/internal/index/branch_builds.go +++ b/modules/mesh-delivery-indexer/internal/index/branch_builds.go @@ -10,8 +10,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/branch_builds_test.go b/modules/mesh-delivery-indexer/internal/index/branch_builds_test.go index 7741d14e..ef4bd473 100644 --- a/modules/mesh-delivery-indexer/internal/index/branch_builds_test.go +++ b/modules/mesh-delivery-indexer/internal/index/branch_builds_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // Design 47 G §374, A-83, A-85: a build of a watched branch other than the first releases no version; its edge entries are kept diff --git a/modules/mesh-delivery-indexer/internal/index/branch_take_in.go b/modules/mesh-delivery-indexer/internal/index/branch_take_in.go index 82258df1..0f274de0 100644 --- a/modules/mesh-delivery-indexer/internal/index/branch_take_in.go +++ b/modules/mesh-delivery-indexer/internal/index/branch_take_in.go @@ -5,7 +5,7 @@ import ( "errors" "maps" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/process" ) diff --git a/modules/mesh-delivery-indexer/internal/index/branch_take_in_test.go b/modules/mesh-delivery-indexer/internal/index/branch_take_in_test.go index 9c9ba9b8..253245a2 100644 --- a/modules/mesh-delivery-indexer/internal/index/branch_take_in_test.go +++ b/modules/mesh-delivery-indexer/internal/index/branch_take_in_test.go @@ -8,8 +8,8 @@ import ( "slices" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" ) // Design 47 G §13, §14, §291, A-93: a watched branch other than the first is taken in as a pure computation from the merged diff --git a/modules/mesh-delivery-indexer/internal/index/builds.go b/modules/mesh-delivery-indexer/internal/index/builds.go index 36676d0c..95acab90 100644 --- a/modules/mesh-delivery-indexer/internal/index/builds.go +++ b/modules/mesh-delivery-indexer/internal/index/builds.go @@ -9,8 +9,8 @@ import ( "time" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildrecord" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrecord" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // Builds holds the builder's log (mesh-delivery-builder.build-log, novox/hq ADR 0571 clause 1) for what the indexer reads diff --git a/modules/mesh-delivery-indexer/internal/index/bus_state.go b/modules/mesh-delivery-indexer/internal/index/bus_state.go index a5476f2b..c921e53b 100644 --- a/modules/mesh-delivery-indexer/internal/index/bus_state.go +++ b/modules/mesh-delivery-indexer/internal/index/bus_state.go @@ -4,7 +4,7 @@ import ( "fmt" "slices" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-indexer/internal/index/candidate_manifests_test.go b/modules/mesh-delivery-indexer/internal/index/candidate_manifests_test.go index 3241672b..613b979d 100644 --- a/modules/mesh-delivery-indexer/internal/index/candidate_manifests_test.go +++ b/modules/mesh-delivery-indexer/internal/index/candidate_manifests_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/candidate_values.go b/modules/mesh-delivery-indexer/internal/index/candidate_values.go index e4ec0401..e4512045 100644 --- a/modules/mesh-delivery-indexer/internal/index/candidate_values.go +++ b/modules/mesh-delivery-indexer/internal/index/candidate_values.go @@ -7,14 +7,14 @@ import ( "reflect" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/sdk/catalogkey" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/catalogkey" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // The values of the state candidates (novox/hq ADR 0437 §5, ADR 0453 clauses 6 and 16): the contract's types, written by diff --git a/modules/mesh-delivery-indexer/internal/index/candidates.go b/modules/mesh-delivery-indexer/internal/index/candidates.go index ef191266..cce9eba5 100644 --- a/modules/mesh-delivery-indexer/internal/index/candidates.go +++ b/modules/mesh-delivery-indexer/internal/index/candidates.go @@ -13,13 +13,13 @@ import ( "sync/atomic" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" "git.novox.be/novox/mesh-sdk/go/keys" diff --git a/modules/mesh-delivery-indexer/internal/index/catalog.go b/modules/mesh-delivery-indexer/internal/index/catalog.go index 15cf4a51..bca1a826 100644 --- a/modules/mesh-delivery-indexer/internal/index/catalog.go +++ b/modules/mesh-delivery-indexer/internal/index/catalog.go @@ -11,8 +11,8 @@ import ( "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/views" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // The seat mesh-catalog's verbs, answered from the indexer's own states (novox/hq ADR 0604 §1, §2): modules, module, diff --git a/modules/mesh-delivery-indexer/internal/index/catalog_branches_test.go b/modules/mesh-delivery-indexer/internal/index/catalog_branches_test.go index f74724fd..d7e625f9 100644 --- a/modules/mesh-delivery-indexer/internal/index/catalog_branches_test.go +++ b/modules/mesh-delivery-indexer/internal/index/catalog_branches_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // Design 47 G A-85, §291: the indexer keeps a catalog revision per watched branch, trunk. for the first and diff --git a/modules/mesh-delivery-indexer/internal/index/catalog_graph.go b/modules/mesh-delivery-indexer/internal/index/catalog_graph.go index 9a47267a..82fe97ef 100644 --- a/modules/mesh-delivery-indexer/internal/index/catalog_graph.go +++ b/modules/mesh-delivery-indexer/internal/index/catalog_graph.go @@ -10,8 +10,8 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/catalog_graph_test.go b/modules/mesh-delivery-indexer/internal/index/catalog_graph_test.go index cc84ab53..d1066aee 100644 --- a/modules/mesh-delivery-indexer/internal/index/catalog_graph_test.go +++ b/modules/mesh-delivery-indexer/internal/index/catalog_graph_test.go @@ -5,9 +5,9 @@ import ( "reflect" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-indexer/internal/index/catalog_revisions.go b/modules/mesh-delivery-indexer/internal/index/catalog_revisions.go index c5e321ce..cc0508d4 100644 --- a/modules/mesh-delivery-indexer/internal/index/catalog_revisions.go +++ b/modules/mesh-delivery-indexer/internal/index/catalog_revisions.go @@ -10,9 +10,9 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-indexer/internal/index/catalog_test.go b/modules/mesh-delivery-indexer/internal/index/catalog_test.go index d14c3353..cbe98ec9 100644 --- a/modules/mesh-delivery-indexer/internal/index/catalog_test.go +++ b/modules/mesh-delivery-indexer/internal/index/catalog_test.go @@ -10,9 +10,9 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // capturedKeys are the field names of the first object at path (a list's first element when the value is a list) in the diff --git a/modules/mesh-delivery-indexer/internal/index/config_readers.go b/modules/mesh-delivery-indexer/internal/index/config_readers.go index 9e96556a..9a096388 100644 --- a/modules/mesh-delivery-indexer/internal/index/config_readers.go +++ b/modules/mesh-delivery-indexer/internal/index/config_readers.go @@ -4,7 +4,7 @@ import ( "encoding/json" "slices" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // ConfigReadersTool is the indexer's tool that says who reads a module's config keys (design 32 *A value no longer diff --git a/modules/mesh-delivery-indexer/internal/index/control_records.go b/modules/mesh-delivery-indexer/internal/index/control_records.go index 43bdd299..c13e960b 100644 --- a/modules/mesh-delivery-indexer/internal/index/control_records.go +++ b/modules/mesh-delivery-indexer/internal/index/control_records.go @@ -10,8 +10,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-indexer/internal/index/control_records_test.go b/modules/mesh-delivery-indexer/internal/index/control_records_test.go index 5cb909fa..5a039ff5 100644 --- a/modules/mesh-delivery-indexer/internal/index/control_records_test.go +++ b/modules/mesh-delivery-indexer/internal/index/control_records_test.go @@ -10,12 +10,12 @@ import ( "time" mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/seatdef" diff --git a/modules/mesh-delivery-indexer/internal/index/domain.go b/modules/mesh-delivery-indexer/internal/index/domain.go index 6d91f79b..99d7f0d1 100644 --- a/modules/mesh-delivery-indexer/internal/index/domain.go +++ b/modules/mesh-delivery-indexer/internal/index/domain.go @@ -7,7 +7,7 @@ package index import ( "encoding/json" - "git.novox.be/novox/mesh-delivery/sdk/seatdefs" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatdefs" "git.novox.be/novox/mesh-sdk/go/seatdef" ) diff --git a/modules/mesh-delivery-indexer/internal/index/entry_verb.go b/modules/mesh-delivery-indexer/internal/index/entry_verb.go index 3ef54387..5d01dd64 100644 --- a/modules/mesh-delivery-indexer/internal/index/entry_verb.go +++ b/modules/mesh-delivery-indexer/internal/index/entry_verb.go @@ -7,7 +7,7 @@ import ( "fmt" "slices" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-indexer/internal/index/entry_verb_test.go b/modules/mesh-delivery-indexer/internal/index/entry_verb_test.go index 3b576575..eadddd19 100644 --- a/modules/mesh-delivery-indexer/internal/index/entry_verb_test.go +++ b/modules/mesh-delivery-indexer/internal/index/entry_verb_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // Design 47 G §675: the entry kept for a build-input fingerprint is found by it, through the key entry-index holds for the diff --git a/modules/mesh-delivery-indexer/internal/index/events.go b/modules/mesh-delivery-indexer/internal/index/events.go index 9a27e1ea..225cf090 100644 --- a/modules/mesh-delivery-indexer/internal/index/events.go +++ b/modules/mesh-delivery-indexer/internal/index/events.go @@ -4,7 +4,7 @@ import ( "encoding/json" "strconv" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/fingerprints.go b/modules/mesh-delivery-indexer/internal/index/fingerprints.go index a70ddf57..a275cffa 100644 --- a/modules/mesh-delivery-indexer/internal/index/fingerprints.go +++ b/modules/mesh-delivery-indexer/internal/index/fingerprints.go @@ -10,7 +10,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-indexer/internal/index/form.go b/modules/mesh-delivery-indexer/internal/index/form.go index 150bdb51..2546ccdc 100644 --- a/modules/mesh-delivery-indexer/internal/index/form.go +++ b/modules/mesh-delivery-indexer/internal/index/form.go @@ -4,9 +4,9 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "mesh-delivery-indexer/internal/fingerprint" ) diff --git a/modules/mesh-delivery-indexer/internal/index/graph.go b/modules/mesh-delivery-indexer/internal/index/graph.go index f3b2f867..e8b307d5 100644 --- a/modules/mesh-delivery-indexer/internal/index/graph.go +++ b/modules/mesh-delivery-indexer/internal/index/graph.go @@ -7,12 +7,12 @@ import ( "maps" "slices" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/process" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // The module graph (novox/hq ADR 0603 §2): at every recompute the indexer writes, in its state graph diff --git a/modules/mesh-delivery-indexer/internal/index/imports.go b/modules/mesh-delivery-indexer/internal/index/imports.go index acd6e152..f59e9324 100644 --- a/modules/mesh-delivery-indexer/internal/index/imports.go +++ b/modules/mesh-delivery-indexer/internal/index/imports.go @@ -7,10 +7,10 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "mesh-delivery-indexer/internal/fingerprint" ) diff --git a/modules/mesh-delivery-indexer/internal/index/imports_test.go b/modules/mesh-delivery-indexer/internal/index/imports_test.go index 36a35559..118986d8 100644 --- a/modules/mesh-delivery-indexer/internal/index/imports_test.go +++ b/modules/mesh-delivery-indexer/internal/index/imports_test.go @@ -7,10 +7,10 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-sdk/go/process" ) diff --git a/modules/mesh-delivery-indexer/internal/index/index_test.go b/modules/mesh-delivery-indexer/internal/index/index_test.go index 92fbeebb..ccc22680 100644 --- a/modules/mesh-delivery-indexer/internal/index/index_test.go +++ b/modules/mesh-delivery-indexer/internal/index/index_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/inputs.go b/modules/mesh-delivery-indexer/internal/index/inputs.go index 317a77ad..563cbd36 100644 --- a/modules/mesh-delivery-indexer/internal/index/inputs.go +++ b/modules/mesh-delivery-indexer/internal/index/inputs.go @@ -7,10 +7,10 @@ import ( "sort" "strings" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" "mesh-delivery-indexer/internal/fingerprint" diff --git a/modules/mesh-delivery-indexer/internal/index/inputs_test.go b/modules/mesh-delivery-indexer/internal/index/inputs_test.go index 77adda62..cfd34caa 100644 --- a/modules/mesh-delivery-indexer/internal/index/inputs_test.go +++ b/modules/mesh-delivery-indexer/internal/index/inputs_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "mesh-delivery-indexer/internal/fingerprint" ) diff --git a/modules/mesh-delivery-indexer/internal/index/manifests.go b/modules/mesh-delivery-indexer/internal/index/manifests.go index 1e13ae35..f6d5d4ad 100644 --- a/modules/mesh-delivery-indexer/internal/index/manifests.go +++ b/modules/mesh-delivery-indexer/internal/index/manifests.go @@ -5,8 +5,8 @@ import ( "errors" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/manifests_test.go b/modules/mesh-delivery-indexer/internal/index/manifests_test.go index 09143762..4e64d16f 100644 --- a/modules/mesh-delivery-indexer/internal/index/manifests_test.go +++ b/modules/mesh-delivery-indexer/internal/index/manifests_test.go @@ -5,7 +5,7 @@ import ( "os" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/modules.go b/modules/mesh-delivery-indexer/internal/index/modules.go index 6e282924..6aacb8ab 100644 --- a/modules/mesh-delivery-indexer/internal/index/modules.go +++ b/modules/mesh-delivery-indexer/internal/index/modules.go @@ -7,10 +7,10 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" diff --git a/modules/mesh-delivery-indexer/internal/index/modules_test.go b/modules/mesh-delivery-indexer/internal/index/modules_test.go index 30b398f4..37da44eb 100644 --- a/modules/mesh-delivery-indexer/internal/index/modules_test.go +++ b/modules/mesh-delivery-indexer/internal/index/modules_test.go @@ -12,11 +12,11 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-indexer/internal/index/moves.go b/modules/mesh-delivery-indexer/internal/index/moves.go index 1bd78520..841ebf15 100644 --- a/modules/mesh-delivery-indexer/internal/index/moves.go +++ b/modules/mesh-delivery-indexer/internal/index/moves.go @@ -8,7 +8,7 @@ import ( "strings" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/named.go b/modules/mesh-delivery-indexer/internal/index/named.go index af942343..74a1d429 100644 --- a/modules/mesh-delivery-indexer/internal/index/named.go +++ b/modules/mesh-delivery-indexer/internal/index/named.go @@ -11,7 +11,7 @@ import ( "time" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/named_test.go b/modules/mesh-delivery-indexer/internal/index/named_test.go index 72623093..a0313027 100644 --- a/modules/mesh-delivery-indexer/internal/index/named_test.go +++ b/modules/mesh-delivery-indexer/internal/index/named_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "mesh-delivery-indexer/internal/fingerprint" ) diff --git a/modules/mesh-delivery-indexer/internal/index/newform_test.go b/modules/mesh-delivery-indexer/internal/index/newform_test.go index d788f43d..1e169d64 100644 --- a/modules/mesh-delivery-indexer/internal/index/newform_test.go +++ b/modules/mesh-delivery-indexer/internal/index/newform_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" ) func TestAGoModuleAtAMergeHasItsManifestItsInputsAndNoFingerprintOfTheNewForm(t *testing.T) { // 1444/AC1 diff --git a/modules/mesh-delivery-indexer/internal/index/order.go b/modules/mesh-delivery-indexer/internal/index/order.go index 1ceaa773..00344d4a 100644 --- a/modules/mesh-delivery-indexer/internal/index/order.go +++ b/modules/mesh-delivery-indexer/internal/index/order.go @@ -10,7 +10,7 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/process" ) diff --git a/modules/mesh-delivery-indexer/internal/index/own.go b/modules/mesh-delivery-indexer/internal/index/own.go index 3e137453..2e903596 100644 --- a/modules/mesh-delivery-indexer/internal/index/own.go +++ b/modules/mesh-delivery-indexer/internal/index/own.go @@ -7,10 +7,10 @@ import ( "path" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // From R4e the indexer lists a repository's modules from what it holds itself (novox/hq ADR 0501 clause 6, issue 1851): diff --git a/modules/mesh-delivery-indexer/internal/index/package_users.go b/modules/mesh-delivery-indexer/internal/index/package_users.go index 2b965547..3e41a135 100644 --- a/modules/mesh-delivery-indexer/internal/index/package_users.go +++ b/modules/mesh-delivery-indexer/internal/index/package_users.go @@ -6,9 +6,9 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-indexer/internal/index/packages.go b/modules/mesh-delivery-indexer/internal/index/packages.go index 5013979f..e25f07e4 100644 --- a/modules/mesh-delivery-indexer/internal/index/packages.go +++ b/modules/mesh-delivery-indexer/internal/index/packages.go @@ -13,9 +13,9 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "mesh-delivery-indexer/internal/fingerprint" ) diff --git a/modules/mesh-delivery-indexer/internal/index/packages_values.go b/modules/mesh-delivery-indexer/internal/index/packages_values.go index 31932492..9f64525e 100644 --- a/modules/mesh-delivery-indexer/internal/index/packages_values.go +++ b/modules/mesh-delivery-indexer/internal/index/packages_values.go @@ -7,9 +7,9 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/paths_backfill_test.go b/modules/mesh-delivery-indexer/internal/index/paths_backfill_test.go index 4eeae90f..4d9e85db 100644 --- a/modules/mesh-delivery-indexer/internal/index/paths_backfill_test.go +++ b/modules/mesh-delivery-indexer/internal/index/paths_backfill_test.go @@ -4,9 +4,9 @@ import ( "context" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/buildrecord" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrecord" ) // Issue 1614: a modules key written before the indexer learned paths (mesh-tools and node-tools live) gets its directory diff --git a/modules/mesh-delivery-indexer/internal/index/pending.go b/modules/mesh-delivery-indexer/internal/index/pending.go index a14af783..db632c15 100644 --- a/modules/mesh-delivery-indexer/internal/index/pending.go +++ b/modules/mesh-delivery-indexer/internal/index/pending.go @@ -10,20 +10,20 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/busretry" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-indexer/judge" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // The take-in step (novox/hq ADR 0633): a source revision is taken in only by the indexer it names. A merged message is diff --git a/modules/mesh-delivery-indexer/internal/index/pending_test.go b/modules/mesh-delivery-indexer/internal/index/pending_test.go index af407cd6..b7261c76 100644 --- a/modules/mesh-delivery-indexer/internal/index/pending_test.go +++ b/modules/mesh-delivery-indexer/internal/index/pending_test.go @@ -13,11 +13,11 @@ import ( mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/buscompose" "git.novox.be/novox/mesh-sdk/go/busretry" diff --git a/modules/mesh-delivery-indexer/internal/index/pending_tools.go b/modules/mesh-delivery-indexer/internal/index/pending_tools.go index 4ab76300..5557a43a 100644 --- a/modules/mesh-delivery-indexer/internal/index/pending_tools.go +++ b/modules/mesh-delivery-indexer/internal/index/pending_tools.go @@ -4,11 +4,11 @@ import ( "context" "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" stdio "git.novox.be/novox/mesh-sdk/go" diff --git a/modules/mesh-delivery-indexer/internal/index/previews.go b/modules/mesh-delivery-indexer/internal/index/previews.go index 99ec49c5..14d0fd53 100644 --- a/modules/mesh-delivery-indexer/internal/index/previews.go +++ b/modules/mesh-delivery-indexer/internal/index/previews.go @@ -8,12 +8,12 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/grouppackages" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/grouppackages" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "mesh-delivery-indexer/internal/fingerprint" ) diff --git a/modules/mesh-delivery-indexer/internal/index/previews_test.go b/modules/mesh-delivery-indexer/internal/index/previews_test.go index efd893b2..03766078 100644 --- a/modules/mesh-delivery-indexer/internal/index/previews_test.go +++ b/modules/mesh-delivery-indexer/internal/index/previews_test.go @@ -13,12 +13,12 @@ import ( "testing" "time" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-checker/checkermsg" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "mesh-delivery-indexer/internal/fingerprint" diff --git a/modules/mesh-delivery-indexer/internal/index/previews_values.go b/modules/mesh-delivery-indexer/internal/index/previews_values.go index c4d8b5c3..c6fa71ec 100644 --- a/modules/mesh-delivery-indexer/internal/index/previews_values.go +++ b/modules/mesh-delivery-indexer/internal/index/previews_values.go @@ -6,8 +6,8 @@ import ( "reflect" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliverycheckerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliverycheckerclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/registered.go b/modules/mesh-delivery-indexer/internal/index/registered.go index ce5fc2aa..a2903d16 100644 --- a/modules/mesh-delivery-indexer/internal/index/registered.go +++ b/modules/mesh-delivery-indexer/internal/index/registered.go @@ -8,9 +8,9 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/registered_test.go b/modules/mesh-delivery-indexer/internal/index/registered_test.go index ad4eb251..d872c3ba 100644 --- a/modules/mesh-delivery-indexer/internal/index/registered_test.go +++ b/modules/mesh-delivery-indexer/internal/index/registered_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/registrations.go b/modules/mesh-delivery-indexer/internal/index/registrations.go index 1591de9e..776e116e 100644 --- a/modules/mesh-delivery-indexer/internal/index/registrations.go +++ b/modules/mesh-delivery-indexer/internal/index/registrations.go @@ -14,8 +14,8 @@ import ( mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - gitseat "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + gitseat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/registrations_test.go b/modules/mesh-delivery-indexer/internal/index/registrations_test.go index 40e931f0..253f88aa 100644 --- a/modules/mesh-delivery-indexer/internal/index/registrations_test.go +++ b/modules/mesh-delivery-indexer/internal/index/registrations_test.go @@ -11,8 +11,8 @@ import ( mma "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - gitseat "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + gitseat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // regRig is a Registry on memory states with a fake router: asks it was given, the cancelled ones, the history and the events. diff --git a/modules/mesh-delivery-indexer/internal/index/registrations_tools.go b/modules/mesh-delivery-indexer/internal/index/registrations_tools.go index 290b6847..8ff28321 100644 --- a/modules/mesh-delivery-indexer/internal/index/registrations_tools.go +++ b/modules/mesh-delivery-indexer/internal/index/registrations_tools.go @@ -7,7 +7,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-indexer/internal/index/remove_test.go b/modules/mesh-delivery-indexer/internal/index/remove_test.go index e5864ca2..2efc5314 100644 --- a/modules/mesh-delivery-indexer/internal/index/remove_test.go +++ b/modules/mesh-delivery-indexer/internal/index/remove_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) func twoModules(t *testing.T) (*Indexer, *memStore) { diff --git a/modules/mesh-delivery-indexer/internal/index/requirements.go b/modules/mesh-delivery-indexer/internal/index/requirements.go index 0f7a622e..51f70b71 100644 --- a/modules/mesh-delivery-indexer/internal/index/requirements.go +++ b/modules/mesh-delivery-indexer/internal/index/requirements.go @@ -9,7 +9,7 @@ import ( "strconv" "strings" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/revision_tools.go b/modules/mesh-delivery-indexer/internal/index/revision_tools.go index d746eed0..a5a235cf 100644 --- a/modules/mesh-delivery-indexer/internal/index/revision_tools.go +++ b/modules/mesh-delivery-indexer/internal/index/revision_tools.go @@ -11,7 +11,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-indexer/internal/index/revision_verb.go b/modules/mesh-delivery-indexer/internal/index/revision_verb.go index d2ecc045..d279affc 100644 --- a/modules/mesh-delivery-indexer/internal/index/revision_verb.go +++ b/modules/mesh-delivery-indexer/internal/index/revision_verb.go @@ -7,7 +7,7 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/modules/mesh-delivery-indexer/internal/index/run_inputs.go b/modules/mesh-delivery-indexer/internal/index/run_inputs.go index ccb5070b..236fa226 100644 --- a/modules/mesh-delivery-indexer/internal/index/run_inputs.go +++ b/modules/mesh-delivery-indexer/internal/index/run_inputs.go @@ -12,8 +12,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/seatdefs.go b/modules/mesh-delivery-indexer/internal/index/seatdefs.go index 8d3906c9..8d911f71 100644 --- a/modules/mesh-delivery-indexer/internal/index/seatdefs.go +++ b/modules/mesh-delivery-indexer/internal/index/seatdefs.go @@ -29,11 +29,11 @@ import ( mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/seatdefs" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatdefs" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/seatdef" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/modules/mesh-delivery-indexer/internal/index/seatsof.go b/modules/mesh-delivery-indexer/internal/index/seatsof.go index 1b64e474..56c64c40 100644 --- a/modules/mesh-delivery-indexer/internal/index/seatsof.go +++ b/modules/mesh-delivery-indexer/internal/index/seatsof.go @@ -13,7 +13,7 @@ import ( "maps" "slices" - "git.novox.be/novox/mesh-delivery/sdk/seatdefs" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatdefs" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/seatdef" ) diff --git a/modules/mesh-delivery-indexer/internal/index/seed.go b/modules/mesh-delivery-indexer/internal/index/seed.go index 1ef74b8c..0c61b385 100644 --- a/modules/mesh-delivery-indexer/internal/index/seed.go +++ b/modules/mesh-delivery-indexer/internal/index/seed.go @@ -9,7 +9,7 @@ import ( "strings" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // SeedModule is one module the trunk revision holds, as the seed reads it (design 47 G §8): its origin and the path of its diff --git a/modules/mesh-delivery-indexer/internal/index/seed_steps.go b/modules/mesh-delivery-indexer/internal/index/seed_steps.go index a4bd5faf..c945beb8 100644 --- a/modules/mesh-delivery-indexer/internal/index/seed_steps.go +++ b/modules/mesh-delivery-indexer/internal/index/seed_steps.go @@ -9,8 +9,8 @@ import ( "time" mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/seatdef" ) diff --git a/modules/mesh-delivery-indexer/internal/index/seed_steps_test.go b/modules/mesh-delivery-indexer/internal/index/seed_steps_test.go index a903f7ff..a970271e 100644 --- a/modules/mesh-delivery-indexer/internal/index/seed_steps_test.go +++ b/modules/mesh-delivery-indexer/internal/index/seed_steps_test.go @@ -8,8 +8,8 @@ import ( "time" mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/seatdef" ) diff --git a/modules/mesh-delivery-indexer/internal/index/series.go b/modules/mesh-delivery-indexer/internal/index/series.go index a5afb85a..bc54b86c 100644 --- a/modules/mesh-delivery-indexer/internal/index/series.go +++ b/modules/mesh-delivery-indexer/internal/index/series.go @@ -9,14 +9,14 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" - "git.novox.be/novox/mesh-delivery/sdk/packagename" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/packagename" ) // The packages state per series (DLV-I5; milestone § 2 item 1; design 51 *The versions*, ADR 0606 §1, ADR 0609 §1): beside diff --git a/modules/mesh-delivery-indexer/internal/index/source.go b/modules/mesh-delivery-indexer/internal/index/source.go index 702990d1..739ff2e0 100644 --- a/modules/mesh-delivery-indexer/internal/index/source.go +++ b/modules/mesh-delivery-indexer/internal/index/source.go @@ -11,9 +11,9 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/process" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // The gate's source revision of a watched branch (design 47 G §15, §115), read through the seat mesh-delivery's verb source diff --git a/modules/mesh-delivery-indexer/internal/index/source_test.go b/modules/mesh-delivery-indexer/internal/index/source_test.go index 9fc5b906..96fc8758 100644 --- a/modules/mesh-delivery-indexer/internal/index/source_test.go +++ b/modules/mesh-delivery-indexer/internal/index/source_test.go @@ -5,7 +5,7 @@ import ( "reflect" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" ) const otherMerge = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" diff --git a/modules/mesh-delivery-indexer/internal/index/takein.go b/modules/mesh-delivery-indexer/internal/index/takein.go index a9c02c1a..f007fddb 100644 --- a/modules/mesh-delivery-indexer/internal/index/takein.go +++ b/modules/mesh-delivery-indexer/internal/index/takein.go @@ -8,8 +8,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // The indexer's doing tool (novox/hq issue 1945; the instruction "tools are how a module is spoken to"): indexer_take_in diff --git a/modules/mesh-delivery-indexer/internal/index/taken.go b/modules/mesh-delivery-indexer/internal/index/taken.go index 8b07f0ed..433dc4d1 100644 --- a/modules/mesh-delivery-indexer/internal/index/taken.go +++ b/modules/mesh-delivery-indexer/internal/index/taken.go @@ -11,7 +11,7 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/process" ) diff --git a/modules/mesh-delivery-indexer/internal/index/toolchains.go b/modules/mesh-delivery-indexer/internal/index/toolchains.go index b3e9940a..68b4df02 100644 --- a/modules/mesh-delivery-indexer/internal/index/toolchains.go +++ b/modules/mesh-delivery-indexer/internal/index/toolchains.go @@ -8,11 +8,11 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/catalogue" "mesh-delivery-indexer/judge" diff --git a/modules/mesh-delivery-indexer/internal/index/toolchains_test.go b/modules/mesh-delivery-indexer/internal/index/toolchains_test.go index aab661ed..960d7023 100644 --- a/modules/mesh-delivery-indexer/internal/index/toolchains_test.go +++ b/modules/mesh-delivery-indexer/internal/index/toolchains_test.go @@ -14,20 +14,20 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" - sdkstep "git.novox.be/novox/mesh-delivery/sdk/buildstep" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/seatdef" "git.novox.be/novox/mesh-sdk/go/views" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "mesh-delivery-indexer/internal/fingerprint" ) diff --git a/modules/mesh-delivery-indexer/internal/index/toolchains_values.go b/modules/mesh-delivery-indexer/internal/index/toolchains_values.go index 4875e50c..863d0553 100644 --- a/modules/mesh-delivery-indexer/internal/index/toolchains_values.go +++ b/modules/mesh-delivery-indexer/internal/index/toolchains_values.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/trycandidates.go b/modules/mesh-delivery-indexer/internal/index/trycandidates.go index db949fc4..9c00c6d0 100644 --- a/modules/mesh-delivery-indexer/internal/index/trycandidates.go +++ b/modules/mesh-delivery-indexer/internal/index/trycandidates.go @@ -19,10 +19,10 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdeliverychecker" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdeliverychecker" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/verdicts.go b/modules/mesh-delivery-indexer/internal/index/verdicts.go index 987ee838..9886a233 100644 --- a/modules/mesh-delivery-indexer/internal/index/verdicts.go +++ b/modules/mesh-delivery-indexer/internal/index/verdicts.go @@ -10,8 +10,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-indexer/internal/index/verdicts_test.go b/modules/mesh-delivery-indexer/internal/index/verdicts_test.go index b19ec0fd..920a3acf 100644 --- a/modules/mesh-delivery-indexer/internal/index/verdicts_test.go +++ b/modules/mesh-delivery-indexer/internal/index/verdicts_test.go @@ -9,8 +9,8 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-forge-bridge/forgemsg" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-indexer/internal/index/versions.go b/modules/mesh-delivery-indexer/internal/index/versions.go index e0596ceb..d662be41 100644 --- a/modules/mesh-delivery-indexer/internal/index/versions.go +++ b/modules/mesh-delivery-indexer/internal/index/versions.go @@ -10,8 +10,8 @@ import ( "strconv" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/versions_edges.go b/modules/mesh-delivery-indexer/internal/index/versions_edges.go index 7691a6e6..a4380010 100644 --- a/modules/mesh-delivery-indexer/internal/index/versions_edges.go +++ b/modules/mesh-delivery-indexer/internal/index/versions_edges.go @@ -10,9 +10,9 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/versions_fill.go b/modules/mesh-delivery-indexer/internal/index/versions_fill.go index 49d29256..9f520236 100644 --- a/modules/mesh-delivery-indexer/internal/index/versions_fill.go +++ b/modules/mesh-delivery-indexer/internal/index/versions_fill.go @@ -12,7 +12,7 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" mcc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/versions_fill_edges.go b/modules/mesh-delivery-indexer/internal/index/versions_fill_edges.go index a47075f6..7a2268e9 100644 --- a/modules/mesh-delivery-indexer/internal/index/versions_fill_edges.go +++ b/modules/mesh-delivery-indexer/internal/index/versions_fill_edges.go @@ -10,8 +10,8 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/internal/index/versions_test.go b/modules/mesh-delivery-indexer/internal/index/versions_test.go index 8920edf1..9acc013b 100644 --- a/modules/mesh-delivery-indexer/internal/index/versions_test.go +++ b/modules/mesh-delivery-indexer/internal/index/versions_test.go @@ -12,10 +12,10 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" ) // Design 47 G §349: a version is released once every artifact the module's entry names is published at it, said once as diff --git a/modules/mesh-delivery-indexer/internal/index/views.go b/modules/mesh-delivery-indexer/internal/index/views.go index 9aacd256..cc1a7ddc 100644 --- a/modules/mesh-delivery-indexer/internal/index/views.go +++ b/modules/mesh-delivery-indexer/internal/index/views.go @@ -1,7 +1,7 @@ package index import ( - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-indexer/internal/index/wanted_names_test.go b/modules/mesh-delivery-indexer/internal/index/wanted_names_test.go index aa103b5c..3946769a 100644 --- a/modules/mesh-delivery-indexer/internal/index/wanted_names_test.go +++ b/modules/mesh-delivery-indexer/internal/index/wanted_names_test.go @@ -9,8 +9,8 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-indexer/judge/busstate_test.go b/modules/mesh-delivery-indexer/judge/busstate_test.go index b924043b..8fa1d166 100644 --- a/modules/mesh-delivery-indexer/judge/busstate_test.go +++ b/modules/mesh-delivery-indexer/judge/busstate_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-indexer/judge/judge.go b/modules/mesh-delivery-indexer/judge/judge.go index 5ca9ce1f..00c5b15a 100644 --- a/modules/mesh-delivery-indexer/judge/judge.go +++ b/modules/mesh-delivery-indexer/judge/judge.go @@ -27,7 +27,7 @@ import ( "git.novox.be/novox/mesh-sdk/go/seatdef" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-delivery-indexer/judge/judge_test.go b/modules/mesh-delivery-indexer/judge/judge_test.go index 44df30da..b87cf831 100644 --- a/modules/mesh-delivery-indexer/judge/judge_test.go +++ b/modules/mesh-delivery-indexer/judge/judge_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/sdk/composer" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/composer" "git.novox.be/novox/mesh-networking/modules/mesh-wireguard/go/overlay" ) diff --git a/modules/mesh-delivery-indexer/judge/packagenames.go b/modules/mesh-delivery-indexer/judge/packagenames.go index 2803fb21..4510921d 100644 --- a/modules/mesh-delivery-indexer/judge/packagenames.go +++ b/modules/mesh-delivery-indexer/judge/packagenames.go @@ -5,7 +5,7 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // PackageNameProblems refuses a revision in which two modules' entries carry the same package name in one ecosystem, naming diff --git a/modules/mesh-delivery-indexer/judge/packagenames_test.go b/modules/mesh-delivery-indexer/judge/packagenames_test.go index bea3e51d..67e1ef7d 100644 --- a/modules/mesh-delivery-indexer/judge/packagenames_test.go +++ b/modules/mesh-delivery-indexer/judge/packagenames_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // Design 47 G §491: two modules whose entries carry one Go module path are both refused, naming both; one name in two diff --git a/modules/mesh-delivery-indexer/manifest_test.go b/modules/mesh-delivery-indexer/manifest_test.go index 8abc4779..56b7eeda 100644 --- a/modules/mesh-delivery-indexer/manifest_test.go +++ b/modules/mesh-delivery-indexer/manifest_test.go @@ -3,7 +3,7 @@ package manifest import ( "bytes" "encoding/json" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/git" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/git" "io/fs" "os" "path/filepath" diff --git a/modules/mesh-delivery-indexer/takein/go.mod b/modules/mesh-delivery-indexer/takein/go.mod index 1114d9f6..5bca42db 100644 --- a/modules/mesh-delivery-indexer/takein/go.mod +++ b/modules/mesh-delivery-indexer/takein/go.mod @@ -3,11 +3,11 @@ module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 ) -replace git.novox.be/novox/mesh-delivery/sdk => ../../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../../mesh-delivery-sdk -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect diff --git a/modules/mesh-delivery-indexer/takein/takein.go b/modules/mesh-delivery-indexer/takein/takein.go index 59141f58..cc3570d5 100644 --- a/modules/mesh-delivery-indexer/takein/takein.go +++ b/modules/mesh-delivery-indexer/takein/takein.go @@ -11,7 +11,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/takein/takein_test.go b/modules/mesh-delivery-indexer/takein/takein_test.go index 8aef1dbd..8d971c64 100644 --- a/modules/mesh-delivery-indexer/takein/takein_test.go +++ b/modules/mesh-delivery-indexer/takein/takein_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-indexer/takein/taken.go b/modules/mesh-delivery-indexer/takein/taken.go index e7cd3ea8..13a9f693 100644 --- a/modules/mesh-delivery-indexer/takein/taken.go +++ b/modules/mesh-delivery-indexer/takein/taken.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "git.novox.be/novox/mesh-delivery/sdk/kept" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/kept" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline-tools/main.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline-tools/main.go index dcc14e41..64776e43 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline-tools/main.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline-tools/main.go @@ -12,7 +12,7 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" "git.novox.be/novox/mesh-sdk/go/views" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" stdio "git.novox.be/novox/mesh-sdk/go" "mesh-delivery-pipeline/internal/pipeline" diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/main.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/main.go index 23a357aa..2190fdfb 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/main.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/main.go @@ -16,7 +16,7 @@ import ( "github.com/nats-io/nats.go" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-pipeline/internal/pipeline" diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/run_integration_test.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/run_integration_test.go index a143be7d..5637d20c 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/run_integration_test.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/run_integration_test.go @@ -15,9 +15,9 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/testbus" ) diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/start.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/start.go index 6942aba5..5c933297 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/start.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/start.go @@ -8,8 +8,8 @@ import ( "github.com/nats-io/nats.go/jetstream" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/buscalls" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/steps.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/steps.go index 8e6c7ae4..5e4aa9e7 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/steps.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/steps.go @@ -9,9 +9,9 @@ import ( "github.com/nats-io/nats.go/jetstream" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/process" diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs.go index b082fef0..6ddf5016 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs.go @@ -9,7 +9,7 @@ import ( "github.com/nats-io/nats.go/jetstream" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-pipeline/internal/pipeline" diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs_test.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs_test.go index 5f85c5f2..9b5fb4d6 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs_test.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/verbs_test.go @@ -4,7 +4,7 @@ import ( "encoding/json" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) // A write verb is answered only for a caller the bus proved, and its input is the verb's own (design 47 G §394, A-107). diff --git a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/views.go b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/views.go index 3228a10c..363c34db 100644 --- a/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/views.go +++ b/modules/mesh-delivery-pipeline/cmd/mesh-delivery-pipeline/views.go @@ -6,8 +6,8 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/modules/mesh-delivery-pipeline/go.mod b/modules/mesh-delivery-pipeline/go.mod index 50178e66..5b811d62 100644 --- a/modules/mesh-delivery-pipeline/go.mod +++ b/modules/mesh-delivery-pipeline/go.mod @@ -3,7 +3,7 @@ module mesh-delivery-pipeline go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats.go v1.54.0 ) @@ -11,15 +11,15 @@ require ( require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshpipelinerunnerclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildimage v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildnode v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildimage v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 github.com/klauspost/compress v1.20.1 // indirect github.com/nats-io/nkeys v0.4.16 // indirect github.com/nats-io/nuid v1.0.1 // indirect diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/approval.go b/modules/mesh-delivery-pipeline/internal/pipeline/approval.go index e0367e8b..2756fa75 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/approval.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/approval.go @@ -10,7 +10,7 @@ import ( "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/bounds.go b/modules/mesh-delivery-pipeline/internal/pipeline/bounds.go index 94d3757f..c4a107b2 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/bounds.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/bounds.go @@ -6,10 +6,10 @@ import ( "strings" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" - nodebuildimage "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildimage" - nodebuildnode "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildnode" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" + nodebuildimage "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildimage" + nodebuildnode "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode" ) // AskBound is how long an ask on a build seat's work queue may wait for its holder to take it (design 47 G §535, §647): five diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/place.go b/modules/mesh-delivery-pipeline/internal/pipeline/place.go index 6530c35e..05eee910 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/place.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/place.go @@ -8,13 +8,13 @@ import ( "strings" "time" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - wants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" - nodebuildimage "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildimage" - nodebuildnode "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildnode" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + wants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" + nodebuildimage "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildimage" + nodebuildnode "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode" ) // StepAsker puts one step's ask on a build seat's work queue, at the subject accept names (the seat's accepted kind `step` diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/place_test.go b/modules/mesh-delivery-pipeline/internal/pipeline/place_test.go index 6ae3bc11..f5fb7fd4 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/place_test.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/place_test.go @@ -6,11 +6,11 @@ import ( "testing" "time" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - wants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + wants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" ) func stepSeatOf(t *testing.T, name string) StepSeat { diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/read.go b/modules/mesh-delivery-pipeline/internal/pipeline/read.go index 0fd36d66..ced5a604 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/read.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/read.go @@ -9,7 +9,7 @@ import ( "strings" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) // Kept is one of the runner's old state sections as it reads them: every key, and one key's value (nil when absent). diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/read_test.go b/modules/mesh-delivery-pipeline/internal/pipeline/read_test.go index af516211..601e639c 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/read_test.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/read_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) type memKept map[string]json.RawMessage diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/registrations.go b/modules/mesh-delivery-pipeline/internal/pipeline/registrations.go index fbe903d5..27bdbe82 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/registrations.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/registrations.go @@ -6,8 +6,8 @@ import ( "sort" "sync" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) // Status is a step's status for one artifact of a module, read from the module's registration and never from a diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/registrations_test.go b/modules/mesh-delivery-pipeline/internal/pipeline/registrations_test.go index 7ff4f096..03eae010 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/registrations_test.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/registrations_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // The policy, the build seat by language and the views per watched branch (design 47 G §21, §23, §323, §195). diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/start.go b/modules/mesh-delivery-pipeline/internal/pipeline/start.go index b31097da..9e5737aa 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/start.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/start.go @@ -7,11 +7,11 @@ import ( "strconv" "time" - runnerclient "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshpipelinerunnerclient" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + runnerclient "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshpipelinerunnerclient" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/start_test.go b/modules/mesh-delivery-pipeline/internal/pipeline/start_test.go index 32843100..7fcfec71 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/start_test.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/start_test.go @@ -6,9 +6,9 @@ import ( "strings" "testing" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) type created map[string][]byte diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/steps.go b/modules/mesh-delivery-pipeline/internal/pipeline/steps.go index 21063641..fd2c3fa3 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/steps.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/steps.go @@ -8,12 +8,12 @@ import ( "time" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - wants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" - nodebuildimage "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildimage" - nodebuildnode "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildnode" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + wants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" + nodebuildimage "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildimage" + nodebuildnode "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/steps_test.go b/modules/mesh-delivery-pipeline/internal/pipeline/steps_test.go index fec31c8c..7f8e832e 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/steps_test.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/steps_test.go @@ -8,9 +8,9 @@ import ( "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - wants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + wants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/toolchain.go b/modules/mesh-delivery-pipeline/internal/pipeline/toolchain.go index dc4607fe..cb467b34 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/toolchain.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/toolchain.go @@ -4,8 +4,8 @@ import ( "encoding/json" "strings" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" ) // ToolchainOf reads a toolchain-agreed as the toolchain a step ask names: its language and version (design 47 G §416, A-104). diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/verbs.go b/modules/mesh-delivery-pipeline/internal/pipeline/verbs.go index e664c149..65a924a6 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/verbs.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/verbs.go @@ -6,10 +6,10 @@ import ( "strings" "time" - builds "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshbuilds" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - wants "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + builds "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshbuilds" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + wants "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-pipeline/internal/pipeline/verbs_test.go b/modules/mesh-delivery-pipeline/internal/pipeline/verbs_test.go index 77f7ea31..602f33c2 100644 --- a/modules/mesh-delivery-pipeline/internal/pipeline/verbs_test.go +++ b/modules/mesh-delivery-pipeline/internal/pipeline/verbs_test.go @@ -6,9 +6,9 @@ import ( "testing" "time" - catalog "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - nodebuildgo "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + catalog "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-pipeline/manifest_test.go b/modules/mesh-delivery-pipeline/manifest_test.go index 8467fb0d..a1ffc26d 100644 --- a/modules/mesh-delivery-pipeline/manifest_test.go +++ b/modules/mesh-delivery-pipeline/manifest_test.go @@ -6,7 +6,7 @@ import ( "slices" "testing" - seat "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + seat "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" "git.novox.be/novox/mesh-sdk/go/catalogue" ) @@ -94,7 +94,7 @@ func TestManifest(t *testing.T) { // §610, A-75: no verb of the runner's definition names its callers, so the class's default holds for each. func TestNoVerbNamesItsCallers(t *testing.T) { - raw, err := os.ReadFile("../../contracts/seats/mesh-pipeline-runner/seat.json") + raw, err := os.ReadFile("../mesh-delivery-contracts/seats/mesh-pipeline-runner/seat.json") if err != nil { t.Fatal(err) } diff --git a/sdk/buildrecord/buildrecord.go b/modules/mesh-delivery-sdk/buildrecord/buildrecord.go similarity index 100% rename from sdk/buildrecord/buildrecord.go rename to modules/mesh-delivery-sdk/buildrecord/buildrecord.go diff --git a/sdk/buildrecord/buildrecord_test.go b/modules/mesh-delivery-sdk/buildrecord/buildrecord_test.go similarity index 100% rename from sdk/buildrecord/buildrecord_test.go rename to modules/mesh-delivery-sdk/buildrecord/buildrecord_test.go diff --git a/sdk/buildrecord/testdata/build-record-build-agent.json b/modules/mesh-delivery-sdk/buildrecord/testdata/build-record-build-agent.json similarity index 100% rename from sdk/buildrecord/testdata/build-record-build-agent.json rename to modules/mesh-delivery-sdk/buildrecord/testdata/build-record-build-agent.json diff --git a/sdk/buildrun/keys_test.go b/modules/mesh-delivery-sdk/buildrun/keys_test.go similarity index 93% rename from sdk/buildrun/keys_test.go rename to modules/mesh-delivery-sdk/buildrun/keys_test.go index 8ce937d1..a4a75e2f 100644 --- a/sdk/buildrun/keys_test.go +++ b/modules/mesh-delivery-sdk/buildrun/keys_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // keys is a steps state in memory: every value put, in order, per key, and a signal for each end. diff --git a/sdk/buildrun/stale.go b/modules/mesh-delivery-sdk/buildrun/stale.go similarity index 99% rename from sdk/buildrun/stale.go rename to modules/mesh-delivery-sdk/buildrun/stale.go index 08160833..c97a79c3 100644 --- a/sdk/buildrun/stale.go +++ b/modules/mesh-delivery-sdk/buildrun/stale.go @@ -5,7 +5,7 @@ import ( "encoding/json" "errors" "fmt" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "os" "strconv" "strings" diff --git a/sdk/buildrun/stale_test.go b/modules/mesh-delivery-sdk/buildrun/stale_test.go similarity index 99% rename from sdk/buildrun/stale_test.go rename to modules/mesh-delivery-sdk/buildrun/stale_test.go index 9ceea9af..5b777adf 100644 --- a/sdk/buildrun/stale_test.go +++ b/modules/mesh-delivery-sdk/buildrun/stale_test.go @@ -3,7 +3,7 @@ package buildrun import ( "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "strings" "testing" "time" diff --git a/sdk/buildstep/ask.go b/modules/mesh-delivery-sdk/buildstep/ask.go similarity index 100% rename from sdk/buildstep/ask.go rename to modules/mesh-delivery-sdk/buildstep/ask.go diff --git a/sdk/buildstep/ask_test.go b/modules/mesh-delivery-sdk/buildstep/ask_test.go similarity index 99% rename from sdk/buildstep/ask_test.go rename to modules/mesh-delivery-sdk/buildstep/ask_test.go index 88558bee..f63c248b 100644 --- a/sdk/buildstep/ask_test.go +++ b/modules/mesh-delivery-sdk/buildstep/ask_test.go @@ -495,7 +495,7 @@ func TestTheThreeSeatsFixturesFitTheNeutralForms(t *testing.T) { } seen := 0 for _, seat := range []string{"node-build-go", "node-build-image", "node-build-node"} { - raw, err := os.ReadFile(filepath.Join("..", "..", "contracts", "seats", seat, "fixtures", "states.json")) + raw, err := os.ReadFile(filepath.Join("..", "..", "mesh-delivery-contracts", "seats", seat, "fixtures", "states.json")) if err != nil { t.Fatal(err) } @@ -536,7 +536,7 @@ func TestTheThreeSeatsFixturesFitTheNeutralForms(t *testing.T) { // 086 A-D31: each seat's step-ended fixtures are the neutral StepEnded, said on their node's subject. ended := 0 for _, seat := range []string{"node-build-go", "node-build-image", "node-build-node"} { - raw, err := os.ReadFile(filepath.Join("..", "..", "contracts", "seats", seat, "fixtures", "events.json")) + raw, err := os.ReadFile(filepath.Join("..", "..", "mesh-delivery-contracts", "seats", seat, "fixtures", "events.json")) if err != nil { t.Fatal(err) } diff --git a/sdk/buildstep/busfree_test.go b/modules/mesh-delivery-sdk/buildstep/busfree_test.go similarity index 100% rename from sdk/buildstep/busfree_test.go rename to modules/mesh-delivery-sdk/buildstep/busfree_test.go diff --git a/sdk/buildstep/capacity.go b/modules/mesh-delivery-sdk/buildstep/capacity.go similarity index 100% rename from sdk/buildstep/capacity.go rename to modules/mesh-delivery-sdk/buildstep/capacity.go diff --git a/sdk/buildstep/doc.go b/modules/mesh-delivery-sdk/buildstep/doc.go similarity index 100% rename from sdk/buildstep/doc.go rename to modules/mesh-delivery-sdk/buildstep/doc.go diff --git a/sdk/buildstep/failure.go b/modules/mesh-delivery-sdk/buildstep/failure.go similarity index 100% rename from sdk/buildstep/failure.go rename to modules/mesh-delivery-sdk/buildstep/failure.go diff --git a/sdk/buildstep/helpers.go b/modules/mesh-delivery-sdk/buildstep/helpers.go similarity index 100% rename from sdk/buildstep/helpers.go rename to modules/mesh-delivery-sdk/buildstep/helpers.go diff --git a/sdk/buildstep/keptartifact.go b/modules/mesh-delivery-sdk/buildstep/keptartifact.go similarity index 100% rename from sdk/buildstep/keptartifact.go rename to modules/mesh-delivery-sdk/buildstep/keptartifact.go diff --git a/sdk/buildstep/launchers.go b/modules/mesh-delivery-sdk/buildstep/launchers.go similarity index 100% rename from sdk/buildstep/launchers.go rename to modules/mesh-delivery-sdk/buildstep/launchers.go diff --git a/sdk/buildstep/launchers_test.go b/modules/mesh-delivery-sdk/buildstep/launchers_test.go similarity index 100% rename from sdk/buildstep/launchers_test.go rename to modules/mesh-delivery-sdk/buildstep/launchers_test.go diff --git a/sdk/buildstep/passing.go b/modules/mesh-delivery-sdk/buildstep/passing.go similarity index 100% rename from sdk/buildstep/passing.go rename to modules/mesh-delivery-sdk/buildstep/passing.go diff --git a/sdk/buildstep/pause.go b/modules/mesh-delivery-sdk/buildstep/pause.go similarity index 100% rename from sdk/buildstep/pause.go rename to modules/mesh-delivery-sdk/buildstep/pause.go diff --git a/sdk/buildstep/pipelinestep.go b/modules/mesh-delivery-sdk/buildstep/pipelinestep.go similarity index 100% rename from sdk/buildstep/pipelinestep.go rename to modules/mesh-delivery-sdk/buildstep/pipelinestep.go diff --git a/sdk/buildstep/request.go b/modules/mesh-delivery-sdk/buildstep/request.go similarity index 100% rename from sdk/buildstep/request.go rename to modules/mesh-delivery-sdk/buildstep/request.go diff --git a/sdk/buildstep/request_test.go b/modules/mesh-delivery-sdk/buildstep/request_test.go similarity index 100% rename from sdk/buildstep/request_test.go rename to modules/mesh-delivery-sdk/buildstep/request_test.go diff --git a/sdk/buildstep/run.go b/modules/mesh-delivery-sdk/buildstep/run.go similarity index 100% rename from sdk/buildstep/run.go rename to modules/mesh-delivery-sdk/buildstep/run.go diff --git a/sdk/buildstep/seat_acts_test.go b/modules/mesh-delivery-sdk/buildstep/seat_acts_test.go similarity index 86% rename from sdk/buildstep/seat_acts_test.go rename to modules/mesh-delivery-sdk/buildstep/seat_acts_test.go index 848bdd93..53198d98 100644 --- a/sdk/buildstep/seat_acts_test.go +++ b/modules/mesh-delivery-sdk/buildstep/seat_acts_test.go @@ -8,7 +8,7 @@ import ( // The seat's `build` acting rule matches an artifact by its kind, an image having no language (design 47 G §324, §397). func TestTheSeatsBuildRuleActsOnTheKindImage(t *testing.T) { - raw, err := os.ReadFile("../../contracts/seats/node-build-image/seat.json") + raw, err := os.ReadFile("../../mesh-delivery-contracts/seats/node-build-image/seat.json") if err != nil { t.Fatal(err) } diff --git a/sdk/buildstep/step.go b/modules/mesh-delivery-sdk/buildstep/step.go similarity index 100% rename from sdk/buildstep/step.go rename to modules/mesh-delivery-sdk/buildstep/step.go diff --git a/sdk/buildstep/step_test.go b/modules/mesh-delivery-sdk/buildstep/step_test.go similarity index 100% rename from sdk/buildstep/step_test.go rename to modules/mesh-delivery-sdk/buildstep/step_test.go diff --git a/sdk/buildstep/steps.go b/modules/mesh-delivery-sdk/buildstep/steps.go similarity index 100% rename from sdk/buildstep/steps.go rename to modules/mesh-delivery-sdk/buildstep/steps.go diff --git a/sdk/buildstep/toolchain.go b/modules/mesh-delivery-sdk/buildstep/toolchain.go similarity index 100% rename from sdk/buildstep/toolchain.go rename to modules/mesh-delivery-sdk/buildstep/toolchain.go diff --git a/sdk/buildstep/toolchain_test.go b/modules/mesh-delivery-sdk/buildstep/toolchain_test.go similarity index 95% rename from sdk/buildstep/toolchain_test.go rename to modules/mesh-delivery-sdk/buildstep/toolchain_test.go index 01afe441..7bfeb77d 100644 --- a/sdk/buildstep/toolchain_test.go +++ b/modules/mesh-delivery-sdk/buildstep/toolchain_test.go @@ -15,7 +15,7 @@ import ( func TestTheToolchainsValueAndKeyAreTheSeatsLayout(t *testing.T) { read := 0 for _, seat := range []string{"node-build-go", "node-build-image", "node-build-node"} { - raw, err := os.ReadFile(filepath.Join("..", "..", "contracts", "seats", seat, "fixtures", "states.json")) + raw, err := os.ReadFile(filepath.Join("..", "..", "mesh-delivery-contracts", "seats", seat, "fixtures", "states.json")) if err != nil { t.Fatal(err) } diff --git a/sdk/buildstep/toolchains.go b/modules/mesh-delivery-sdk/buildstep/toolchains.go similarity index 100% rename from sdk/buildstep/toolchains.go rename to modules/mesh-delivery-sdk/buildstep/toolchains.go diff --git a/sdk/buildstep/toolchains_test.go b/modules/mesh-delivery-sdk/buildstep/toolchains_test.go similarity index 100% rename from sdk/buildstep/toolchains_test.go rename to modules/mesh-delivery-sdk/buildstep/toolchains_test.go diff --git a/sdk/buildstep/trees.go b/modules/mesh-delivery-sdk/buildstep/trees.go similarity index 100% rename from sdk/buildstep/trees.go rename to modules/mesh-delivery-sdk/buildstep/trees.go diff --git a/sdk/catalogkey/key.go b/modules/mesh-delivery-sdk/catalogkey/key.go similarity index 100% rename from sdk/catalogkey/key.go rename to modules/mesh-delivery-sdk/catalogkey/key.go diff --git a/sdk/catalogkey/key_test.go b/modules/mesh-delivery-sdk/catalogkey/key_test.go similarity index 100% rename from sdk/catalogkey/key_test.go rename to modules/mesh-delivery-sdk/catalogkey/key_test.go diff --git a/sdk/composer/composer.go b/modules/mesh-delivery-sdk/composer/composer.go similarity index 100% rename from sdk/composer/composer.go rename to modules/mesh-delivery-sdk/composer/composer.go diff --git a/sdk/composer/composer_test.go b/modules/mesh-delivery-sdk/composer/composer_test.go similarity index 100% rename from sdk/composer/composer_test.go rename to modules/mesh-delivery-sdk/composer/composer_test.go diff --git a/sdk/forgekey/forgekey.go b/modules/mesh-delivery-sdk/forgekey/forgekey.go similarity index 100% rename from sdk/forgekey/forgekey.go rename to modules/mesh-delivery-sdk/forgekey/forgekey.go diff --git a/sdk/forgekey/forgekey_test.go b/modules/mesh-delivery-sdk/forgekey/forgekey_test.go similarity index 100% rename from sdk/forgekey/forgekey_test.go rename to modules/mesh-delivery-sdk/forgekey/forgekey_test.go diff --git a/sdk/go.mod b/modules/mesh-delivery-sdk/go.mod similarity index 58% rename from sdk/go.mod rename to modules/mesh-delivery-sdk/go.mod index a7bf4f30..e7970a52 100644 --- a/sdk/go.mod +++ b/modules/mesh-delivery-sdk/go.mod @@ -1,4 +1,4 @@ -module git.novox.be/novox/mesh-delivery/sdk +module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk go 1.26.0 @@ -6,7 +6,7 @@ require git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 require ( git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 github.com/klauspost/compress v1.20.1 // indirect github.com/nats-io/nats.go v1.54.0 // indirect github.com/nats-io/nkeys v0.4.16 // indirect @@ -15,4 +15,4 @@ require ( golang.org/x/sys v0.48.0 // indirect ) -require git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 diff --git a/sdk/go.sum b/modules/mesh-delivery-sdk/go.sum similarity index 100% rename from sdk/go.sum rename to modules/mesh-delivery-sdk/go.sum diff --git a/sdk/graph/entry.go b/modules/mesh-delivery-sdk/graph/entry.go similarity index 91% rename from sdk/graph/entry.go rename to modules/mesh-delivery-sdk/graph/entry.go index 09cb1784..49341939 100644 --- a/sdk/graph/entry.go +++ b/modules/mesh-delivery-sdk/graph/entry.go @@ -4,7 +4,7 @@ import ( "maps" "slices" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // NodeOf is the node of the module graph a catalog graph entry carries, as the indexer took it in (design 47, *Two diff --git a/sdk/graph/graph.go b/modules/mesh-delivery-sdk/graph/graph.go similarity index 99% rename from sdk/graph/graph.go rename to modules/mesh-delivery-sdk/graph/graph.go index c8086e93..560004c0 100644 --- a/sdk/graph/graph.go +++ b/modules/mesh-delivery-sdk/graph/graph.go @@ -9,8 +9,8 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/catalogue" nodeengine "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" diff --git a/sdk/graph/graph_test.go b/modules/mesh-delivery-sdk/graph/graph_test.go similarity index 99% rename from sdk/graph/graph_test.go rename to modules/mesh-delivery-sdk/graph/graph_test.go index 54379bba..405b67f7 100644 --- a/sdk/graph/graph_test.go +++ b/modules/mesh-delivery-sdk/graph/graph_test.go @@ -9,7 +9,7 @@ import ( "testing" nodeengine "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/sdk/graph/reads.go b/modules/mesh-delivery-sdk/graph/reads.go similarity index 100% rename from sdk/graph/reads.go rename to modules/mesh-delivery-sdk/graph/reads.go diff --git a/sdk/graph/waits.go b/modules/mesh-delivery-sdk/graph/waits.go similarity index 100% rename from sdk/graph/waits.go rename to modules/mesh-delivery-sdk/graph/waits.go diff --git a/sdk/grouppackages/grouppackages.go b/modules/mesh-delivery-sdk/grouppackages/grouppackages.go similarity index 94% rename from sdk/grouppackages/grouppackages.go rename to modules/mesh-delivery-sdk/grouppackages/grouppackages.go index 5e562269..43ae1433 100644 --- a/sdk/grouppackages/grouppackages.go +++ b/modules/mesh-delivery-sdk/grouppackages/grouppackages.go @@ -10,8 +10,8 @@ import ( "git.novox.be/novox/mesh-sdk/go/sdkversion" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" ) // rootOf is the module a member of repo stands for when no package of it is known: its root module path, or for the diff --git a/sdk/kept/kept.go b/modules/mesh-delivery-sdk/kept/kept.go similarity index 100% rename from sdk/kept/kept.go rename to modules/mesh-delivery-sdk/kept/kept.go diff --git a/sdk/kept/kept_test.go b/modules/mesh-delivery-sdk/kept/kept_test.go similarity index 100% rename from sdk/kept/kept_test.go rename to modules/mesh-delivery-sdk/kept/kept_test.go diff --git a/sdk/manifest_test.go b/modules/mesh-delivery-sdk/manifest_test.go similarity index 100% rename from sdk/manifest_test.go rename to modules/mesh-delivery-sdk/manifest_test.go diff --git a/sdk/module.json b/modules/mesh-delivery-sdk/module.json similarity index 100% rename from sdk/module.json rename to modules/mesh-delivery-sdk/module.json diff --git a/sdk/packagename/packagename.go b/modules/mesh-delivery-sdk/packagename/packagename.go similarity index 96% rename from sdk/packagename/packagename.go rename to modules/mesh-delivery-sdk/packagename/packagename.go index 93b8ba34..ac4f87f9 100644 --- a/sdk/packagename/packagename.go +++ b/modules/mesh-delivery-sdk/packagename/packagename.go @@ -12,7 +12,7 @@ import ( "path" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/sdk/parts/bus.go b/modules/mesh-delivery-sdk/parts/bus.go similarity index 100% rename from sdk/parts/bus.go rename to modules/mesh-delivery-sdk/parts/bus.go diff --git a/sdk/parts/parts.go b/modules/mesh-delivery-sdk/parts/parts.go similarity index 100% rename from sdk/parts/parts.go rename to modules/mesh-delivery-sdk/parts/parts.go diff --git a/sdk/parts/parts_test.go b/modules/mesh-delivery-sdk/parts/parts_test.go similarity index 100% rename from sdk/parts/parts_test.go rename to modules/mesh-delivery-sdk/parts/parts_test.go diff --git a/sdk/parts/receive.go b/modules/mesh-delivery-sdk/parts/receive.go similarity index 100% rename from sdk/parts/receive.go rename to modules/mesh-delivery-sdk/parts/receive.go diff --git a/sdk/parts/receive_test.go b/modules/mesh-delivery-sdk/parts/receive_test.go similarity index 100% rename from sdk/parts/receive_test.go rename to modules/mesh-delivery-sdk/parts/receive_test.go diff --git a/sdk/seatdefs/domain.go b/modules/mesh-delivery-sdk/seatdefs/domain.go similarity index 100% rename from sdk/seatdefs/domain.go rename to modules/mesh-delivery-sdk/seatdefs/domain.go diff --git a/sdk/seatdefs/seatdefs.go b/modules/mesh-delivery-sdk/seatdefs/seatdefs.go similarity index 98% rename from sdk/seatdefs/seatdefs.go rename to modules/mesh-delivery-sdk/seatdefs/seatdefs.go index ca186252..99cf16ca 100644 --- a/sdk/seatdefs/seatdefs.go +++ b/modules/mesh-delivery-sdk/seatdefs/seatdefs.go @@ -13,7 +13,7 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/seatdef" ) diff --git a/sdk/sourcebranches/sourcebranches.go b/modules/mesh-delivery-sdk/sourcebranches/sourcebranches.go similarity index 97% rename from sdk/sourcebranches/sourcebranches.go rename to modules/mesh-delivery-sdk/sourcebranches/sourcebranches.go index d544f228..b0a11ca9 100644 --- a/sdk/sourcebranches/sourcebranches.go +++ b/modules/mesh-delivery-sdk/sourcebranches/sourcebranches.go @@ -10,7 +10,7 @@ import ( "slices" "time" - delivery "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + delivery "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/buscalls" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/views" diff --git a/sdk/trunk/packages.go b/modules/mesh-delivery-sdk/trunk/packages.go similarity index 100% rename from sdk/trunk/packages.go rename to modules/mesh-delivery-sdk/trunk/packages.go diff --git a/sdk/trunk/trunk.go b/modules/mesh-delivery-sdk/trunk/trunk.go similarity index 100% rename from sdk/trunk/trunk.go rename to modules/mesh-delivery-sdk/trunk/trunk.go diff --git a/sdk/trunk/trunk_test.go b/modules/mesh-delivery-sdk/trunk/trunk_test.go similarity index 98% rename from sdk/trunk/trunk_test.go rename to modules/mesh-delivery-sdk/trunk/trunk_test.go index fd7c3e6e..b098f048 100644 --- a/sdk/trunk/trunk_test.go +++ b/modules/mesh-delivery-sdk/trunk/trunk_test.go @@ -35,7 +35,7 @@ func TestSameRepository(t *testing.T) { // 1281/AC1 } func TestAnImportSetHoldsMeshPackagesSortedAndEachOnce(t *testing.T) { - a, b := ForgeModulePrefix+"mesh-sdk/go", ForgeModulePrefix+"mesh-delivery/sdk" + a, b := ForgeModulePrefix+"mesh-sdk/go", ForgeModulePrefix+"mesh-delivery/modules/mesh-delivery-sdk" if err := CheckImports([]string{b, a}); err != nil { t.Errorf("a sorted set is refused: %v", err) } diff --git a/sdk/window/window.go b/modules/mesh-delivery-sdk/window/window.go similarity index 100% rename from sdk/window/window.go rename to modules/mesh-delivery-sdk/window/window.go diff --git a/sdk/window/window_test.go b/modules/mesh-delivery-sdk/window/window_test.go similarity index 100% rename from sdk/window/window_test.go rename to modules/mesh-delivery-sdk/window/window_test.go diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks.go index e5f7ab28..34140d08 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks.go @@ -10,8 +10,8 @@ import ( stdio "git.novox.be/novox/mesh-sdk/go" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-teller/tellerevents" ) diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks_test.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks_test.go index 1604f9df..bcaa9cee 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks_test.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/assignerasks_test.go @@ -11,8 +11,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" ) // 1906/H1: given the assigner's hold ask in its bucket and no answer, when the teller hears the key, then it raises the ask on diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go index 2ae5d2ad..89677e59 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go @@ -21,8 +21,8 @@ import ( "github.com/nats-io/nats.go" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-sdk/go/process" "mesh-delivery-teller/internal/ends" diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/room_test.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/room_test.go index 2b87c8fb..b82eb585 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/room_test.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/room_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" ) // roomRefusal is the router's words when an asker already holds occ.MostOpen open asks, as the live router said them to diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller.go index f66012b6..c5b27f0e 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller.go @@ -13,7 +13,7 @@ import ( occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller_test.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller_test.go index 4310edeb..425273fb 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller_test.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/teller_test.go @@ -15,8 +15,8 @@ import ( "git.novox.be/novox/mesh-sdk/go/process" "github.com/nats-io/nats.go/jetstream" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - meshdelivery "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + meshdelivery "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers.go index 9134f65f..b07b2665 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers.go @@ -5,8 +5,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" ) diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go index c2b9b126..3e92d3f2 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go @@ -7,8 +7,8 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" ) diff --git a/modules/mesh-delivery-teller/go.mod b/modules/mesh-delivery-teller/go.mod index a8b768e0..c41a8430 100644 --- a/modules/mesh-delivery-teller/go.mod +++ b/modules/mesh-delivery-teller/go.mod @@ -4,12 +4,12 @@ go 1.26.0 require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-teller/tellerevents v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats-server/v2 v2.11.17 github.com/nats-io/nats.go v1.54.0 @@ -33,7 +33,7 @@ require ( git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel v0.0.0-00010101000000-000000000000 ) -replace git.novox.be/novox/mesh-delivery/sdk => ../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../mesh-delivery-sdk replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-teller/tellerevents => ./tellerevents @@ -44,10 +44,10 @@ require ( git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-teller/internal/ends/ends.go b/modules/mesh-delivery-teller/internal/ends/ends.go index f9bd4ae0..761a421c 100644 --- a/modules/mesh-delivery-teller/internal/ends/ends.go +++ b/modules/mesh-delivery-teller/internal/ends/ends.go @@ -14,7 +14,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" ) const ( diff --git a/modules/mesh-delivery-view/cmd/mesh-delivery-cli/main_test.go b/modules/mesh-delivery-view/cmd/mesh-delivery-cli/main_test.go index 93dba240..c2c8770a 100644 --- a/modules/mesh-delivery-view/cmd/mesh-delivery-cli/main_test.go +++ b/modules/mesh-delivery-view/cmd/mesh-delivery-cli/main_test.go @@ -17,12 +17,12 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" ) diff --git a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/catalogread.go b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/catalogread.go index 97803058..2ec90638 100644 --- a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/catalogread.go +++ b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/catalogread.go @@ -4,7 +4,7 @@ import ( "context" "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "sort" "sync" "time" diff --git a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/main.go b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/main.go index 73d70683..9be22969 100644 --- a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/main.go +++ b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/main.go @@ -18,8 +18,8 @@ import ( "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/busretry" "git.novox.be/novox/mesh-sdk/go/seatdef" diff --git a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/owners_test.go b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/owners_test.go index 5944e570..a4883180 100644 --- a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/owners_test.go +++ b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/owners_test.go @@ -3,15 +3,15 @@ package main import ( "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "mesh-delivery-view/internal/view" "sort" "strings" "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/tiers_rows_test.go b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/tiers_rows_test.go index 94ead707..615b516a 100644 --- a/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/tiers_rows_test.go +++ b/modules/mesh-delivery-view/cmd/mesh-delivery-view-tools/tiers_rows_test.go @@ -14,12 +14,12 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" "git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // encoded is v as its contract's encoder writes it, failing the test when it refuses. diff --git a/modules/mesh-delivery-view/cmd/mesh-delivery-view/integration_test.go b/modules/mesh-delivery-view/cmd/mesh-delivery-view/integration_test.go index a4bb8fd6..b17e78d6 100644 --- a/modules/mesh-delivery-view/cmd/mesh-delivery-view/integration_test.go +++ b/modules/mesh-delivery-view/cmd/mesh-delivery-view/integration_test.go @@ -23,14 +23,14 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/views/viewstest" "github.com/nats-io/nats-server/v2/server" diff --git a/modules/mesh-delivery-view/cmd/mesh-delivery-view/main.go b/modules/mesh-delivery-view/cmd/mesh-delivery-view/main.go index 771b2a5d..bee31ef3 100644 --- a/modules/mesh-delivery-view/cmd/mesh-delivery-view/main.go +++ b/modules/mesh-delivery-view/cmd/mesh-delivery-view/main.go @@ -11,7 +11,7 @@ import ( "encoding/json" "errors" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "io" "log" "mesh-delivery-view/internal/view" @@ -23,8 +23,8 @@ import ( "time" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" - "git.novox.be/novox/mesh-delivery/sdk/trunk" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/views" "github.com/nats-io/nats.go" diff --git a/modules/mesh-delivery-view/go.mod b/modules/mesh-delivery-view/go.mod index b86a0904..8cf7924c 100644 --- a/modules/mesh-delivery-view/go.mod +++ b/modules/mesh-delivery-view/go.mod @@ -10,11 +10,11 @@ require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/identity-and-access/go/clients/meshvaultclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 @@ -45,10 +45,10 @@ require ( require ( git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 ) -replace git.novox.be/novox/mesh-delivery/sdk => ../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../mesh-delivery-sdk replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein => ../mesh-delivery-indexer/takein @@ -62,8 +62,8 @@ require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshvault v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-view/internal/view/answers_test.go b/modules/mesh-delivery-view/internal/view/answers_test.go index 26368532..67b2eb85 100644 --- a/modules/mesh-delivery-view/internal/view/answers_test.go +++ b/modules/mesh-delivery-view/internal/view/answers_test.go @@ -12,8 +12,8 @@ import ( occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" ) diff --git a/modules/mesh-delivery-view/internal/view/asks_test.go b/modules/mesh-delivery-view/internal/view/asks_test.go index 23ca7a31..68f6fb43 100644 --- a/modules/mesh-delivery-view/internal/view/asks_test.go +++ b/modules/mesh-delivery-view/internal/view/asks_test.go @@ -12,8 +12,8 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" ) const askHeadA = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" diff --git a/modules/mesh-delivery-view/internal/view/backlog.go b/modules/mesh-delivery-view/internal/view/backlog.go index 3fe7b11b..de184851 100644 --- a/modules/mesh-delivery-view/internal/view/backlog.go +++ b/modules/mesh-delivery-view/internal/view/backlog.go @@ -6,7 +6,7 @@ import ( "fmt" "time" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "github.com/nats-io/nats.go/jetstream" ) diff --git a/modules/mesh-delivery-view/internal/view/backlog_test.go b/modules/mesh-delivery-view/internal/view/backlog_test.go index 4e704170..a8fc1687 100644 --- a/modules/mesh-delivery-view/internal/view/backlog_test.go +++ b/modules/mesh-delivery-view/internal/view/backlog_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "github.com/nats-io/nats.go/jetstream" ) diff --git a/modules/mesh-delivery-view/internal/view/catalog.go b/modules/mesh-delivery-view/internal/view/catalog.go index 385de245..8d6889ae 100644 --- a/modules/mesh-delivery-view/internal/view/catalog.go +++ b/modules/mesh-delivery-view/internal/view/catalog.go @@ -9,8 +9,8 @@ import ( "encoding/json" "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // CatalogSeat is the seat whose verb `revision` and event `catalog-revision` the view reads the modules from, as its diff --git a/modules/mesh-delivery-view/internal/view/fingerprints_newform_test.go b/modules/mesh-delivery-view/internal/view/fingerprints_newform_test.go index 9355d5a4..c39adafd 100644 --- a/modules/mesh-delivery-view/internal/view/fingerprints_newform_test.go +++ b/modules/mesh-delivery-view/internal/view/fingerprints_newform_test.go @@ -4,8 +4,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // I5 (issue 1851): from R4e the indexer writes the new form alone, and a module's fingerprint is built by the builder's key diff --git a/modules/mesh-delivery-view/internal/view/fingerprints_test.go b/modules/mesh-delivery-view/internal/view/fingerprints_test.go index 9df82a7f..3a937fe8 100644 --- a/modules/mesh-delivery-view/internal/view/fingerprints_test.go +++ b/modules/mesh-delivery-view/internal/view/fingerprints_test.go @@ -8,10 +8,10 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) const ( diff --git a/modules/mesh-delivery-view/internal/view/history.go b/modules/mesh-delivery-view/internal/view/history.go index 61fc424a..cdcc5355 100644 --- a/modules/mesh-delivery-view/internal/view/history.go +++ b/modules/mesh-delivery-view/internal/view/history.go @@ -11,8 +11,8 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) const ( diff --git a/modules/mesh-delivery-view/internal/view/holds.go b/modules/mesh-delivery-view/internal/view/holds.go index 9819e9d4..62b95f2c 100644 --- a/modules/mesh-delivery-view/internal/view/holds.go +++ b/modules/mesh-delivery-view/internal/view/holds.go @@ -11,9 +11,9 @@ import ( "time" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" ) diff --git a/modules/mesh-delivery-view/internal/view/holds_test.go b/modules/mesh-delivery-view/internal/view/holds_test.go index e16977f2..910456d6 100644 --- a/modules/mesh-delivery-view/internal/view/holds_test.go +++ b/modules/mesh-delivery-view/internal/view/holds_test.go @@ -4,9 +4,9 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" ) diff --git a/modules/mesh-delivery-view/internal/view/motion.go b/modules/mesh-delivery-view/internal/view/motion.go index 09b517e1..4e16e75d 100644 --- a/modules/mesh-delivery-view/internal/view/motion.go +++ b/modules/mesh-delivery-view/internal/view/motion.go @@ -2,7 +2,7 @@ package view import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-sdk/go/motion" ) diff --git a/modules/mesh-delivery-view/internal/view/names.go b/modules/mesh-delivery-view/internal/view/names.go index 24e69c85..55f5b112 100644 --- a/modules/mesh-delivery-view/internal/view/names.go +++ b/modules/mesh-delivery-view/internal/view/names.go @@ -3,9 +3,9 @@ package view import ( "fmt" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/sdk/trunk" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-view/internal/view/reach.go b/modules/mesh-delivery-view/internal/view/reach.go index d74e058c..cf21c245 100644 --- a/modules/mesh-delivery-view/internal/view/reach.go +++ b/modules/mesh-delivery-view/internal/view/reach.go @@ -7,12 +7,12 @@ import ( "strings" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" - "git.novox.be/novox/mesh-delivery/sdk/trunk" ) // How far each repository reached (novox/hq ADR 0556 clauses 2 and 3, issue 1280). The view keeps, per repository the gate's diff --git a/modules/mesh-delivery-view/internal/view/reach_test.go b/modules/mesh-delivery-view/internal/view/reach_test.go index 5d53d583..06c58aa2 100644 --- a/modules/mesh-delivery-view/internal/view/reach_test.go +++ b/modules/mesh-delivery-view/internal/view/reach_test.go @@ -7,15 +7,15 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" - "git.novox.be/novox/mesh-delivery/sdk/trunk" ) // 1280 (ADR 0556 clauses 2 and 3): the view derives, per repository, how far each module reached and the reached head, writes diff --git a/modules/mesh-delivery-view/internal/view/read.go b/modules/mesh-delivery-view/internal/view/read.go index 63d09362..df828161 100644 --- a/modules/mesh-delivery-view/internal/view/read.go +++ b/modules/mesh-delivery-view/internal/view/read.go @@ -16,13 +16,13 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/identity-and-access/go/clients/meshvaultclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" - "git.novox.be/novox/mesh-delivery/sdk/trunk" stdio "git.novox.be/novox/mesh-sdk/go" ) diff --git a/modules/mesh-delivery-view/internal/view/status.go b/modules/mesh-delivery-view/internal/view/status.go index 9cac369f..c11991a5 100644 --- a/modules/mesh-delivery-view/internal/view/status.go +++ b/modules/mesh-delivery-view/internal/view/status.go @@ -12,7 +12,7 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" healers "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhealers" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-sdk/go/motion" ) diff --git a/modules/mesh-delivery-view/internal/view/tiers.go b/modules/mesh-delivery-view/internal/view/tiers.go index 1d720ef5..03aa92cf 100644 --- a/modules/mesh-delivery-view/internal/view/tiers.go +++ b/modules/mesh-delivery-view/internal/view/tiers.go @@ -12,12 +12,12 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" "git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" - "git.novox.be/novox/mesh-delivery/sdk/graph" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/graph" ) // The tiers of a source revision are a view, worked out at each call and never stored (novox/hq ADR 0603 §1, §6): the diff --git a/modules/mesh-delivery-view/internal/view/usage.go b/modules/mesh-delivery-view/internal/view/usage.go index 368a2605..a030f938 100644 --- a/modules/mesh-delivery-view/internal/view/usage.go +++ b/modules/mesh-delivery-view/internal/view/usage.go @@ -22,8 +22,8 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" buildseats "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildrun" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrun" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // BuildUsageTool is the view's tool of the build nodes' use. diff --git a/modules/mesh-delivery-view/internal/view/view.go b/modules/mesh-delivery-view/internal/view/view.go index 49db0b8e..170e8cf5 100644 --- a/modules/mesh-delivery-view/internal/view/view.go +++ b/modules/mesh-delivery-view/internal/view/view.go @@ -17,17 +17,17 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrecord" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" - "git.novox.be/novox/mesh-delivery/sdk/buildrecord" - "git.novox.be/novox/mesh-delivery/sdk/trunk" "git.novox.be/novox/mesh-sdk/go/motion" ) diff --git a/modules/mesh-delivery-view/internal/view/view_test.go b/modules/mesh-delivery-view/internal/view/view_test.go index ea375a82..ff52bf09 100644 --- a/modules/mesh-delivery-view/internal/view/view_test.go +++ b/modules/mesh-delivery-view/internal/view/view_test.go @@ -16,8 +16,8 @@ import ( "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" healers "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhealers" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/motion" ) diff --git a/modules/mesh-delivery-view/internal/view/wants_test.go b/modules/mesh-delivery-view/internal/view/wants_test.go index 23a84f33..d4c3d6b7 100644 --- a/modules/mesh-delivery-view/internal/view/wants_test.go +++ b/modules/mesh-delivery-view/internal/view/wants_test.go @@ -9,11 +9,11 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" ) const ( diff --git a/modules/mesh-delivery-view/manifest_test.go b/modules/mesh-delivery-view/manifest_test.go index d0e3e918..14e10a64 100644 --- a/modules/mesh-delivery-view/manifest_test.go +++ b/modules/mesh-delivery-view/manifest_test.go @@ -3,7 +3,7 @@ package manifest import ( "bytes" "encoding/json" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "io/fs" "mesh-delivery-view/internal/view" "os" @@ -14,7 +14,7 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-view/viewstate/answerkey.go b/modules/mesh-delivery-view/viewstate/answerkey.go index 7d7d8a09..520708bc 100644 --- a/modules/mesh-delivery-view/viewstate/answerkey.go +++ b/modules/mesh-delivery-view/viewstate/answerkey.go @@ -4,8 +4,8 @@ import ( "fmt" "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" ) const viewWord = "view" diff --git a/modules/mesh-delivery-view/viewstate/go.mod b/modules/mesh-delivery-view/viewstate/go.mod index 7c7e3477..23726fec 100644 --- a/modules/mesh-delivery-view/viewstate/go.mod +++ b/modules/mesh-delivery-view/viewstate/go.mod @@ -3,24 +3,24 @@ module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-view/viewstate go 1.26.0 require ( - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 ) -replace git.novox.be/novox/mesh-delivery/sdk => ../../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../../mesh-delivery-sdk require ( git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-view/viewstate/reach.go b/modules/mesh-delivery-view/viewstate/reach.go index 51574736..746e4281 100644 --- a/modules/mesh-delivery-view/viewstate/reach.go +++ b/modules/mesh-delivery-view/viewstate/reach.go @@ -10,7 +10,7 @@ import ( "slices" "strings" - "git.novox.be/novox/mesh-delivery/sdk/kept" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/kept" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-view/viewstate/viewstate_test.go b/modules/mesh-delivery-view/viewstate/viewstate_test.go index 9863ec8d..91f056a6 100644 --- a/modules/mesh-delivery-view/viewstate/viewstate_test.go +++ b/modules/mesh-delivery-view/viewstate/viewstate_test.go @@ -4,8 +4,8 @@ import ( "strings" "testing" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-assigner/asks" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/consumes.go b/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/consumes.go index b3b39e33..912f1fe4 100644 --- a/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/consumes.go +++ b/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/consumes.go @@ -4,11 +4,11 @@ import ( "context" "encoding/json" "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" "strings" "sync" diff --git a/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/integration_test.go b/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/integration_test.go index 15c84ddc..faad1c03 100644 --- a/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/integration_test.go +++ b/modules/mesh-delivery-watchman/cmd/mesh-delivery-watchman/integration_test.go @@ -20,9 +20,9 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/buscompose" "git.novox.be/novox/mesh-sdk/go/process" "git.novox.be/novox/mesh-sdk/go/views/viewstest" diff --git a/modules/mesh-delivery-watchman/go.mod b/modules/mesh-delivery-watchman/go.mod index 39040a2f..8c1e8d5e 100644 --- a/modules/mesh-delivery-watchman/go.mod +++ b/modules/mesh-delivery-watchman/go.mod @@ -11,12 +11,12 @@ require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshselfcheck v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshwatchdogs v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/provisioning/go/clients/meshprovisionerclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-grants/busgrants v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 @@ -40,18 +40,18 @@ require ( replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun => ../mesh-delivery-builder/buildrun -require git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 +require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 -replace git.novox.be/novox/mesh-delivery/sdk => ../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../mesh-delivery-sdk require git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient v0.0.0-00010101000000-000000000000 require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshdeliveryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-delivery-watchman/internal/watch/busstate.go b/modules/mesh-delivery-watchman/internal/watch/busstate.go index 5e07bf53..11d2d770 100644 --- a/modules/mesh-delivery-watchman/internal/watch/busstate.go +++ b/modules/mesh-delivery-watchman/internal/watch/busstate.go @@ -8,7 +8,7 @@ import ( "time" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" ) // **A refused or overdue creation of bus state is loud** (novox/hq ADR 0595 §4; design 25 § 12.2; DLV-W1). The watchman diff --git a/modules/mesh-delivery-watchman/internal/watch/findings_test.go b/modules/mesh-delivery-watchman/internal/watch/findings_test.go index dcdeb8cb..521f8557 100644 --- a/modules/mesh-delivery-watchman/internal/watch/findings_test.go +++ b/modules/mesh-delivery-watchman/internal/watch/findings_test.go @@ -12,10 +12,10 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" condseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-indexer/takein" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient/heard" diff --git a/modules/mesh-delivery-watchman/internal/watch/mirror.go b/modules/mesh-delivery-watchman/internal/watch/mirror.go index c2206791..e6914293 100644 --- a/modules/mesh-delivery-watchman/internal/watch/mirror.go +++ b/modules/mesh-delivery-watchman/internal/watch/mirror.go @@ -8,11 +8,11 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/nodebuildgo" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" ) // A build ask taken by a node is a move (novox/hq ADR 0525 §4, issues 1887 A8b, 1908, 1909; design 47 G §483, §496, §602, diff --git a/modules/mesh-delivery-watchman/internal/watch/pipelines.go b/modules/mesh-delivery-watchman/internal/watch/pipelines.go index ed9e62f2..bdec3fd6 100644 --- a/modules/mesh-delivery-watchman/internal/watch/pipelines.go +++ b/modules/mesh-delivery-watchman/internal/watch/pipelines.go @@ -5,8 +5,8 @@ import ( "fmt" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) // What the runner and the gate say of a watched branch's head, heard as events (design 47 G §12, §75, §112): a head the diff --git a/modules/mesh-delivery-watchman/internal/watch/pipelines_test.go b/modules/mesh-delivery-watchman/internal/watch/pipelines_test.go index 4459ee23..aa534388 100644 --- a/modules/mesh-delivery-watchman/internal/watch/pipelines_test.go +++ b/modules/mesh-delivery-watchman/internal/watch/pipelines_test.go @@ -5,8 +5,8 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshpipelinerunner" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshpipelinerunner" ) func moved(branch string, rev int64, group string, at time.Time) []byte { diff --git a/modules/mesh-delivery-watchman/internal/watch/records.go b/modules/mesh-delivery-watchman/internal/watch/records.go index 95e5032b..39b7a48c 100644 --- a/modules/mesh-delivery-watchman/internal/watch/records.go +++ b/modules/mesh-delivery-watchman/internal/watch/records.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" ) // What the seats say of the delivery's records and stores, heard as the seats' events (design 47 G §148, §181, §218; ADR 0596 diff --git a/modules/mesh-delivery-watchman/internal/watch/verdicts.go b/modules/mesh-delivery-watchman/internal/watch/verdicts.go index 905db480..dcb2618c 100644 --- a/modules/mesh-delivery-watchman/internal/watch/verdicts.go +++ b/modules/mesh-delivery-watchman/internal/watch/verdicts.go @@ -3,7 +3,7 @@ package watch import ( "strings" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" ) // KindManifestRefused is a module whose manifest the indexer's judge refused (novox/hq ADR 0578 §1): every reader holds diff --git a/modules/mesh-delivery-watchman/internal/watch/waits.go b/modules/mesh-delivery-watchman/internal/watch/waits.go index 3315e1a7..9b77f889 100644 --- a/modules/mesh-delivery-watchman/internal/watch/waits.go +++ b/modules/mesh-delivery-watchman/internal/watch/waits.go @@ -6,7 +6,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) // What the holders of an acting part's wait say, heard as the seats' events (design 47 G §266, §269, ADR 0596 §2), never read diff --git a/modules/mesh-delivery-watchman/internal/watch/waits_test.go b/modules/mesh-delivery-watchman/internal/watch/waits_test.go index c9483df0..40bd094f 100644 --- a/modules/mesh-delivery-watchman/internal/watch/waits_test.go +++ b/modules/mesh-delivery-watchman/internal/watch/waits_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants" ) func heldWait(module string, since time.Time, from *time.Time) []byte { diff --git a/modules/mesh-delivery-watchman/internal/watch/watch_test.go b/modules/mesh-delivery-watchman/internal/watch/watch_test.go index 20473e2e..3862f84b 100644 --- a/modules/mesh-delivery-watchman/internal/watch/watch_test.go +++ b/modules/mesh-delivery-watchman/internal/watch/watch_test.go @@ -11,8 +11,8 @@ import ( "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshwatchdogsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" ) type fakeOut struct { diff --git a/modules/mesh-grants/cmd/mesh-grants/integration_test.go b/modules/mesh-grants/cmd/mesh-grants/integration_test.go index 44716ce7..2d4e9f82 100644 --- a/modules/mesh-grants/cmd/mesh-grants/integration_test.go +++ b/modules/mesh-grants/cmd/mesh-grants/integration_test.go @@ -25,8 +25,8 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner" "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/membership" diff --git a/modules/mesh-grants/cmd/mesh-grants/main.go b/modules/mesh-grants/cmd/mesh-grants/main.go index 7d261607..a98c8d64 100644 --- a/modules/mesh-grants/cmd/mesh-grants/main.go +++ b/modules/mesh-grants/cmd/mesh-grants/main.go @@ -37,8 +37,8 @@ import ( "git.novox.be/novox/mesh-contracts/go/seats/nodeengine" mcseat "git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshconditions" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/announce" "git.novox.be/novox/mesh-sdk/go/membership" diff --git a/modules/mesh-grants/go.mod b/modules/mesh-grants/go.mod index da5b09e7..828b990b 100644 --- a/modules/mesh-grants/go.mod +++ b/modules/mesh-grants/go.mod @@ -18,13 +18,13 @@ require ( git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshvault v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-grants/busgrants v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-networking/modules/mesh-wireguard/go v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 github.com/nats-io/nats-server/v2 v2.11.17 @@ -47,9 +47,9 @@ require ( require ( git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshhandacts v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-contracts/health-and-repair/go/seats/meshselfcheck v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshwants v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect git.novox.be/novox/mesh-networking/modules/mesh-connectivity-contracts/go/seats/theprivatenetwork v0.0.0-00010101000000-000000000000 // indirect ) diff --git a/modules/mesh-grants/grants_test.go b/modules/mesh-grants/grants_test.go index 6b8dad52..8f722f46 100644 --- a/modules/mesh-grants/grants_test.go +++ b/modules/mesh-grants/grants_test.go @@ -33,9 +33,9 @@ import ( "git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshvault" occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/keys" diff --git a/modules/mesh-grants/grantsstate/go.mod b/modules/mesh-grants/grantsstate/go.mod index e44450bc..d6a2f9fd 100644 --- a/modules/mesh-grants/grantsstate/go.mod +++ b/modules/mesh-grants/grantsstate/go.mod @@ -4,20 +4,20 @@ go 1.26.0 require ( git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/sdk v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 ) replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds => ../../mesh-delivery-builder/builds -replace git.novox.be/novox/mesh-delivery/sdk => ../../../sdk +replace git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk => ../../mesh-delivery-sdk require ( - git.novox.be/novox/mesh-delivery/contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect - git.novox.be/novox/mesh-delivery/contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 // indirect + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 // indirect github.com/klauspost/compress v1.20.1 // indirect github.com/nats-io/nats.go v1.54.0 // indirect github.com/nats-io/nkeys v0.4.16 // indirect diff --git a/modules/mesh-grants/grantsstate/grants.go b/modules/mesh-grants/grantsstate/grants.go index 4fff716e..417943fe 100644 --- a/modules/mesh-grants/grantsstate/grants.go +++ b/modules/mesh-grants/grantsstate/grants.go @@ -10,7 +10,7 @@ import ( "strings" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/kept" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/kept" "git.novox.be/novox/mesh-sdk/go/keys" ) diff --git a/modules/mesh-grants/grantsstate/userlist.go b/modules/mesh-grants/grantsstate/userlist.go index e968c7a2..8ad1645b 100644 --- a/modules/mesh-grants/grantsstate/userlist.go +++ b/modules/mesh-grants/grantsstate/userlist.go @@ -8,7 +8,7 @@ import ( "strings" "time" - "git.novox.be/novox/mesh-delivery/sdk/kept" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/kept" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/seal" ) diff --git a/modules/mesh-grants/internal/buscompose/buildbacklog.go b/modules/mesh-grants/internal/buscompose/buildbacklog.go index 80e971e9..ea2b4131 100644 --- a/modules/mesh-grants/internal/buscompose/buildbacklog.go +++ b/modules/mesh-grants/internal/buscompose/buildbacklog.go @@ -1,6 +1,6 @@ package buscompose -import "git.novox.be/novox/mesh-delivery/sdk/buildstep" +import "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" // The view alone reads the build seats' queues (novox/hq ADR 0525 §2, issue 1887 A8a): the shared workers' counts and the // oldest waiting ask, to show the backlog. It may not publish an ask: only the builder and the checker ask, by their seat use. diff --git a/modules/mesh-grants/internal/buscompose/buscompose_test.go b/modules/mesh-grants/internal/buscompose/buscompose_test.go index 880985ac..9a623ad2 100644 --- a/modules/mesh-grants/internal/buscompose/buscompose_test.go +++ b/modules/mesh-grants/internal/buscompose/buscompose_test.go @@ -18,7 +18,7 @@ import ( "git.novox.be/novox/mesh-contracts/identity-and-access/go/clients/meshvaultclient" "git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshvault" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" - "git.novox.be/novox/mesh-delivery/sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" "git.novox.be/novox/mesh-sdk/go/announce" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/seatdef" diff --git a/modules/mesh-grants/internal/grants/catalog.go b/modules/mesh-grants/internal/grants/catalog.go index 0ea3ca40..2852fb10 100644 --- a/modules/mesh-grants/internal/grants/catalog.go +++ b/modules/mesh-grants/internal/grants/catalog.go @@ -7,9 +7,9 @@ import ( "slices" "sync" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshdelivery" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshdelivery" "git.novox.be/novox/mesh-sdk/go/catalogue" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-grants/internal/grants/firstviews.go b/modules/mesh-grants/internal/grants/firstviews.go index 16fcb958..8ed61c88 100644 --- a/modules/mesh-grants/internal/grants/firstviews.go +++ b/modules/mesh-grants/internal/grants/firstviews.go @@ -14,8 +14,8 @@ import ( occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-sdk/go/keys" "git.novox.be/novox/mesh-sdk/go/views" ) diff --git a/modules/mesh-grants/internal/grants/grants.go b/modules/mesh-grants/internal/grants/grants.go index 3ec1411e..964e095f 100644 --- a/modules/mesh-grants/internal/grants/grants.go +++ b/modules/mesh-grants/internal/grants/grants.go @@ -9,7 +9,7 @@ import ( occ "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/clients/operatorchannelclient" oc "git.novox.be/novox/mesh-contracts/operator-and-conversation/go/seats/operatorchannel" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "git.novox.be/novox/mesh-networking/modules/mesh-wireguard/go/overlay" "git.novox.be/novox/mesh-sdk/go/keys" diff --git a/modules/mesh-grants/internal/grants/inputs.go b/modules/mesh-grants/internal/grants/inputs.go index 23d09e56..251515b1 100644 --- a/modules/mesh-grants/internal/grants/inputs.go +++ b/modules/mesh-grants/internal/grants/inputs.go @@ -27,9 +27,9 @@ import ( "git.novox.be/novox/mesh-contracts/identity-and-access/go/clients/meshvaultclient" "git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshnodeenroller" "git.novox.be/novox/mesh-contracts/identity-and-access/go/seats/meshvault" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshwantsclient" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshwantsclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "git.novox.be/novox/mesh-networking/modules/mesh-wireguard/go/overlay" "git.novox.be/novox/mesh-sdk/go/catalogue" ) diff --git a/modules/mesh-grants/internal/grants/rootfree.go b/modules/mesh-grants/internal/grants/rootfree.go index 819c0763..fe38321d 100644 --- a/modules/mesh-grants/internal/grants/rootfree.go +++ b/modules/mesh-grants/internal/grants/rootfree.go @@ -4,7 +4,7 @@ import ( "encoding/json" "fmt" "git.novox.be/novox/mesh-contracts/go/seats/meshbroker" - "git.novox.be/novox/mesh-delivery/contracts/go/seats/meshcatalog" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog" "slices" "sort" "strings" diff --git a/modules/mesh-grants/internal/grants/tools.go b/modules/mesh-grants/internal/grants/tools.go index a1589f9f..1942cb64 100644 --- a/modules/mesh-grants/internal/grants/tools.go +++ b/modules/mesh-grants/internal/grants/tools.go @@ -8,7 +8,7 @@ import ( "strings" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" - "git.novox.be/novox/mesh-delivery/contracts/go/clients/meshcatalogclient" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient" "git.novox.be/novox/mesh-delivery/modules/mesh-grants/grantsstate" "git.novox.be/novox/mesh-sdk/go/membership" "mesh-grants/internal/buscompose" diff --git a/modules/mesh-grants/internal/grants/wantedkeep_test.go b/modules/mesh-grants/internal/grants/wantedkeep_test.go index e8356bbe..d105e08a 100644 --- a/modules/mesh-grants/internal/grants/wantedkeep_test.go +++ b/modules/mesh-grants/internal/grants/wantedkeep_test.go @@ -11,7 +11,7 @@ import ( // Design 47 G A-114 (§693, A-61): the seat mesh-wants' `wanted` stream keeps the last message of each subject with no age // limit, so each want's last word is read whole at a start. func TestWantedKeepsEachWantsLastWordWithNoAgeLimit(t *testing.T) { - raw, err := os.ReadFile(filepath.Join("..", "..", "..", "..", "contracts", "seats", "mesh-wants", "seat.json")) + raw, err := os.ReadFile(filepath.Join("..", "..", "..", "mesh-delivery-contracts", "seats", "mesh-wants", "seat.json")) if err != nil { t.Fatal(err) } From 3e61b7051790b14f4c786a903eca12572b8b3ab6 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 05:18:34 +0100 Subject: [PATCH 02/12] SD5, BG11, BLD10: the build modules' shared code moves into the delivery SDK MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All of mesh-build-go's buildstep Go module leaves mesh-catalog for modules/mesh-delivery-sdk: the step run, fetch and release and the regenerate-and-compare step as the package steprun, the CPU share as steprun/buildcpu, the conformance kit as steprun/conformance, the seat generator as seatgen with cmd/seatgen, and cmd/mesh-pack. The three build modules and the builder's and checker's tests import the SDK and keep no copy; the SDK requires nothing of mesh-catalog. Code the build modules share is the delivery domain's SDK, not one module's package. It carries the build-module round's two new files of that package (dropdetected.go 247c422f, storedbuilds.go 904b8aed). Builds: design 47 G §464, §680, §327, §420, §495 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- .gitignore | 4 + .../mesh-delivery-builder/integration_test.go | 2 +- modules/mesh-delivery-builder/go.mod | 1 - .../mesh-delivery-checker/integration_test.go | 2 +- modules/mesh-delivery-checker/go.mod | 1 - .../internal/check/examiner_test.go | 2 +- modules/mesh-delivery-sdk/buildstep/doc.go | 4 +- .../mesh-delivery-sdk/cmd/mesh-pack/main.go | 111 +++ .../cmd/mesh-pack/main_test.go | 52 + modules/mesh-delivery-sdk/cmd/seatgen/main.go | 80 ++ modules/mesh-delivery-sdk/go.mod | 30 +- modules/mesh-delivery-sdk/go.sum | 25 +- modules/mesh-delivery-sdk/manifest_test.go | 21 + modules/mesh-delivery-sdk/seatgen/callers.go | 72 ++ modules/mesh-delivery-sdk/seatgen/clients.go | 214 +++++ .../mesh-delivery-sdk/seatgen/clients_test.go | 164 ++++ modules/mesh-delivery-sdk/seatgen/gogen.go | 553 +++++++++++ .../mesh-delivery-sdk/seatgen/layout_test.go | 379 ++++++++ modules/mesh-delivery-sdk/seatgen/load.go | 207 ++++ modules/mesh-delivery-sdk/seatgen/states.go | 264 ++++++ .../mesh-delivery-sdk/seatgen/states_test.go | 124 +++ .../testdata/contracts/parts/registry.json | 3 + .../seats/a-registry/fixtures/states.json | 3 + .../contracts/seats/a-registry/seat.json | 23 + .../contracts/seats/b-registry/seat.json | 3 + .../contracts/seats/one-store/seat.json | 1 + modules/mesh-delivery-sdk/seatgen/tsgen.go | 260 +++++ modules/mesh-delivery-sdk/seatgen/types.go | 192 ++++ modules/mesh-delivery-sdk/steprun/askrun.go | 565 +++++++++++ .../mesh-delivery-sdk/steprun/askrun_test.go | 470 ++++++++++ .../steprun/buildcpu/buildcpu.go | 215 +++++ .../steprun/buildcpu/buildcpu_agree_test.go | 14 + .../steprun/buildcpu/buildcpu_test.go | 90 ++ .../mesh-delivery-sdk/steprun/buildhours.go | 129 +++ modules/mesh-delivery-sdk/steprun/capacity.go | 57 ++ .../mesh-delivery-sdk/steprun/capacity_cpu.go | 141 +++ .../steprun/capacity_test.go | 135 +++ .../steprun/conformance/captured/README.md | 81 ++ .../conformance/captured/go/buildfail.jsonl | 6 + .../conformance/captured/go/deeptimeout.jsonl | 417 +++++++++ .../conformance/captured/go/exiting.jsonl | 10 + .../conformance/captured/go/killed.jsonl | 7 + .../captured/go/logthenfatal.jsonl | 13 + .../conformance/captured/go/mainexit.jsonl | 8 + .../conformance/captured/go/panicking.jsonl | 27 + .../conformance/captured/go/passfirst.jsonl | 22 + .../captured/go/passthenfail.jsonl | 15 + .../conformance/captured/go/race.jsonl | 53 ++ .../conformance/captured/go/racemain.jsonl | 27 + .../conformance/captured/go/subpanic.jsonl | 30 + .../conformance/captured/go/subtests.jsonl | 17 + .../conformance/captured/go/timeout.jsonl | 43 + .../conformance/captured/node/crash.console | 2 + .../conformance/captured/node/crash.tap | 41 + .../captured/node/logcrash.console | 2 + .../conformance/captured/node/logcrash.tap | 42 + .../conformance/captured/node/suite.console | 2 + .../conformance/captured/node/suite.tap | 61 ++ .../conformance/captured/node/syntax.console | 2 + .../conformance/captured/node/syntax.tap | 47 + .../conformance/captured/node/timeout.console | 2 + .../conformance/captured/node/timeout.tap | 26 + .../captured/node/two-files.console | 2 + .../conformance/captured/node/two-files.tap | 49 + .../captured/passing/buildah-bud-run.txt | 1 + .../captured/passing/buildah-bud-timeout.txt | 1 + .../captured/passing/git-fetch-closed.txt | 2 + .../captured/passing/git-fetch-kex.txt | 6 + .../captured/passing/git-fetch-noref.txt | 1 + .../captured/passing/git-fetch-resolve.txt | 2 + .../captured/passing/go-download-checksum.txt | 1 + .../captured/passing/go-download-dial.txt | 1 + .../captured/passing/go-download-lookup.txt | 1 + .../captured/passing/go-download-unknown.txt | 1 + .../captured/passing/npm-ci-404.txt | 2 + .../captured/passing/npm-ci-eaiagain.txt | 3 + .../captured/passing/npm-ci-econnreset.txt | 4 + .../captured/tsc/typeerror.console | 1 + .../steprun/conformance/conformance.go | 279 ++++++ .../steprun/conformance/conformance_test.go | 183 ++++ .../steprun/conformance/leftrunning.go | 212 +++++ modules/mesh-delivery-sdk/steprun/cpu.go | 14 + .../steprun/digestshape_test.go | 234 +++++ .../mesh-delivery-sdk/steprun/dropdetected.go | 35 + modules/mesh-delivery-sdk/steprun/fetch.go | 208 ++++ .../steprun/fetch_integration_test.go | 59 ++ .../mesh-delivery-sdk/steprun/fetch_test.go | 160 ++++ .../mesh-delivery-sdk/steprun/generated.go | 164 ++++ .../steprun/generated_test.go | 133 +++ modules/mesh-delivery-sdk/steprun/gotest.go | 410 ++++++++ modules/mesh-delivery-sdk/steprun/guard.go | 52 + .../mesh-delivery-sdk/steprun/guard_test.go | 79 ++ modules/mesh-delivery-sdk/steprun/isolate.go | 181 ++++ .../steprun/isolate_caches_test.go | 30 + .../steprun/isolate_integration_test.go | 66 ++ .../mesh-delivery-sdk/steprun/isolate_test.go | 115 +++ modules/mesh-delivery-sdk/steprun/merge.go | 129 +++ .../steprun/merge_integration_test.go | 199 ++++ .../mesh-delivery-sdk/steprun/merge_test.go | 74 ++ .../steprun/mirror_integration_test.go | 65 ++ .../mesh-delivery-sdk/steprun/mirror_test.go | 124 +++ modules/mesh-delivery-sdk/steprun/narrate.go | 106 +++ .../mesh-delivery-sdk/steprun/narrate_test.go | 107 +++ modules/mesh-delivery-sdk/steprun/narrow.go | 72 ++ .../mesh-delivery-sdk/steprun/narrow_test.go | 83 ++ modules/mesh-delivery-sdk/steprun/pack.go | 100 ++ .../mesh-delivery-sdk/steprun/pack_test.go | 84 ++ .../steprun/pack_unix_test.go | 25 + modules/mesh-delivery-sdk/steprun/phase.go | 67 ++ modules/mesh-delivery-sdk/steprun/programs.go | 115 +++ .../steprun/programs_test.go | 72 ++ modules/mesh-delivery-sdk/steprun/publish.go | 153 +++ modules/mesh-delivery-sdk/steprun/pull.go | 886 ++++++++++++++++++ modules/mesh-delivery-sdk/steprun/pull_bus.go | 103 ++ .../steprun/pull_capacity_test.go | 39 + .../mesh-delivery-sdk/steprun/pull_drop.go | 183 ++++ .../mesh-delivery-sdk/steprun/pull_fake.go | 122 +++ .../steprun/pull_integration_test.go | 227 +++++ .../mesh-delivery-sdk/steprun/pull_seat.go | 51 + .../steprun/pull_seat_test.go | 148 +++ .../mesh-delivery-sdk/steprun/pull_test.go | 600 ++++++++++++ modules/mesh-delivery-sdk/steprun/refusal.go | 35 + .../mesh-delivery-sdk/steprun/seat_tools.go | 52 + .../steprun/seat_tools_test.go | 52 + modules/mesh-delivery-sdk/steprun/step.go | 159 ++++ .../mesh-delivery-sdk/steprun/step_test.go | 156 +++ modules/mesh-delivery-sdk/steprun/steprun.go | 252 +++++ modules/mesh-delivery-sdk/steprun/steptool.go | 36 + .../mesh-delivery-sdk/steprun/storedbuilds.go | 116 +++ modules/mesh-delivery-sdk/steprun/tap.go | 193 ++++ .../steprun/testdata/isolated-probe/main.go | 49 + .../steprun/testdata/pack-golden.tar | Bin 0 -> 4096 bytes .../mesh-delivery-sdk/steprun/transport.go | 14 + modules/mesh-delivery-sdk/steprun/trees.go | 143 +++ .../steprun/trees_integration_test.go | 118 +++ .../steprun/trees_named_test.go | 107 +++ .../mesh-delivery-sdk/steprun/trees_test.go | 95 ++ .../steprun/watch_settings_linux.go | 112 +++ .../steprun/watch_settings_other.go | 8 + .../mesh-delivery-sdk/steprun/workspaces.go | 160 ++++ .../steprun/workspaces_test.go | 113 +++ 141 files changed, 14193 insertions(+), 19 deletions(-) create mode 100644 modules/mesh-delivery-sdk/cmd/mesh-pack/main.go create mode 100644 modules/mesh-delivery-sdk/cmd/mesh-pack/main_test.go create mode 100644 modules/mesh-delivery-sdk/cmd/seatgen/main.go create mode 100644 modules/mesh-delivery-sdk/seatgen/callers.go create mode 100644 modules/mesh-delivery-sdk/seatgen/clients.go create mode 100644 modules/mesh-delivery-sdk/seatgen/clients_test.go create mode 100644 modules/mesh-delivery-sdk/seatgen/gogen.go create mode 100644 modules/mesh-delivery-sdk/seatgen/layout_test.go create mode 100644 modules/mesh-delivery-sdk/seatgen/load.go create mode 100644 modules/mesh-delivery-sdk/seatgen/states.go create mode 100644 modules/mesh-delivery-sdk/seatgen/states_test.go create mode 100644 modules/mesh-delivery-sdk/seatgen/testdata/contracts/parts/registry.json create mode 100644 modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/fixtures/states.json create mode 100644 modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/seat.json create mode 100644 modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/b-registry/seat.json create mode 100644 modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/one-store/seat.json create mode 100644 modules/mesh-delivery-sdk/seatgen/tsgen.go create mode 100644 modules/mesh-delivery-sdk/seatgen/types.go create mode 100644 modules/mesh-delivery-sdk/steprun/askrun.go create mode 100644 modules/mesh-delivery-sdk/steprun/askrun_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu.go create mode 100644 modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_agree_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/buildhours.go create mode 100644 modules/mesh-delivery-sdk/steprun/capacity.go create mode 100644 modules/mesh-delivery-sdk/steprun/capacity_cpu.go create mode 100644 modules/mesh-delivery-sdk/steprun/capacity_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/README.md create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/buildfail.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/deeptimeout.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/exiting.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/killed.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/logthenfatal.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/mainexit.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/panicking.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/passfirst.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/passthenfail.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/race.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/racemain.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/subpanic.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/subtests.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/go/timeout.jsonl create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.console create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.tap create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.console create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.tap create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.console create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.tap create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.console create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.tap create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.console create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.tap create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.console create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.tap create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-run.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-timeout.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-closed.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-kex.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-noref.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-resolve.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-checksum.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-dial.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-lookup.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-unknown.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-404.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-eaiagain.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-econnreset.txt create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/captured/tsc/typeerror.console create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/conformance.go create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/conformance_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/conformance/leftrunning.go create mode 100644 modules/mesh-delivery-sdk/steprun/cpu.go create mode 100644 modules/mesh-delivery-sdk/steprun/digestshape_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/dropdetected.go create mode 100644 modules/mesh-delivery-sdk/steprun/fetch.go create mode 100644 modules/mesh-delivery-sdk/steprun/fetch_integration_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/fetch_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/generated.go create mode 100644 modules/mesh-delivery-sdk/steprun/generated_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/gotest.go create mode 100644 modules/mesh-delivery-sdk/steprun/guard.go create mode 100644 modules/mesh-delivery-sdk/steprun/guard_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/isolate.go create mode 100644 modules/mesh-delivery-sdk/steprun/isolate_caches_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/isolate_integration_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/isolate_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/merge.go create mode 100644 modules/mesh-delivery-sdk/steprun/merge_integration_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/merge_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/mirror_integration_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/mirror_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/narrate.go create mode 100644 modules/mesh-delivery-sdk/steprun/narrate_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/narrow.go create mode 100644 modules/mesh-delivery-sdk/steprun/narrow_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/pack.go create mode 100644 modules/mesh-delivery-sdk/steprun/pack_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/pack_unix_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/phase.go create mode 100644 modules/mesh-delivery-sdk/steprun/programs.go create mode 100644 modules/mesh-delivery-sdk/steprun/programs_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/publish.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_bus.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_capacity_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_drop.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_fake.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_integration_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_seat.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_seat_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/pull_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/refusal.go create mode 100644 modules/mesh-delivery-sdk/steprun/seat_tools.go create mode 100644 modules/mesh-delivery-sdk/steprun/seat_tools_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/step.go create mode 100644 modules/mesh-delivery-sdk/steprun/step_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/steprun.go create mode 100644 modules/mesh-delivery-sdk/steprun/steptool.go create mode 100644 modules/mesh-delivery-sdk/steprun/storedbuilds.go create mode 100644 modules/mesh-delivery-sdk/steprun/tap.go create mode 100644 modules/mesh-delivery-sdk/steprun/testdata/isolated-probe/main.go create mode 100644 modules/mesh-delivery-sdk/steprun/testdata/pack-golden.tar create mode 100644 modules/mesh-delivery-sdk/steprun/transport.go create mode 100644 modules/mesh-delivery-sdk/steprun/trees.go create mode 100644 modules/mesh-delivery-sdk/steprun/trees_integration_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/trees_named_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/trees_test.go create mode 100644 modules/mesh-delivery-sdk/steprun/watch_settings_linux.go create mode 100644 modules/mesh-delivery-sdk/steprun/watch_settings_other.go create mode 100644 modules/mesh-delivery-sdk/steprun/workspaces.go create mode 100644 modules/mesh-delivery-sdk/steprun/workspaces_test.go diff --git a/.gitignore b/.gitignore index 420d8ac7..2ac98436 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ vendor/ # A compiled program never enters a commit (issue 1577): `go build .` in a command directory leaves one there. modules/*/cmd/*/mesh-* !modules/*/cmd/*/mesh-*.go +# The delivery SDK's commands (design 47 G §464), built in their own directory or at the SDK's root. +/modules/mesh-delivery-sdk/cmd/seatgen/seatgen +/modules/mesh-delivery-sdk/seatgen/seatgen +/modules/mesh-delivery-sdk/mesh-pack diff --git a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go index 06d3e574..2c391131 100644 --- a/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go +++ b/modules/mesh-delivery-builder/cmd/mesh-delivery-builder/integration_test.go @@ -25,7 +25,7 @@ import ( // The build runner the build modules pull and run asks with: mesh-build-go's own package (novox/hq ADR 0593 §1), // another repository's, by its published version, so the builder is tested against the real pulling code. - runner "git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep" + runner "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun" "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" diff --git a/modules/mesh-delivery-builder/go.mod b/modules/mesh-delivery-builder/go.mod index 1be7f8d2..8c6c83dc 100644 --- a/modules/mesh-delivery-builder/go.mod +++ b/modules/mesh-delivery-builder/go.mod @@ -3,7 +3,6 @@ module mesh-delivery-builder go 1.26.0 require ( - git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 diff --git a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go index e9e38ad2..ec3849e3 100644 --- a/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go +++ b/modules/mesh-delivery-checker/cmd/mesh-delivery-checker/integration_test.go @@ -27,7 +27,7 @@ import ( "mesh-delivery-checker/internal/check" - gobuild "git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep" + gobuild "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun" "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient" "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" nec "git.novox.be/novox/mesh-contracts/go/clients/nodeengineclient" diff --git a/modules/mesh-delivery-checker/go.mod b/modules/mesh-delivery-checker/go.mod index f4deb152..5f725a6f 100644 --- a/modules/mesh-delivery-checker/go.mod +++ b/modules/mesh-delivery-checker/go.mod @@ -3,7 +3,6 @@ module mesh-delivery-checker go 1.26.0 require ( - git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshhandactsclient v0.0.0-00010101000000-000000000000 diff --git a/modules/mesh-delivery-checker/internal/check/examiner_test.go b/modules/mesh-delivery-checker/internal/check/examiner_test.go index 02f7ddc1..154dc443 100644 --- a/modules/mesh-delivery-checker/internal/check/examiner_test.go +++ b/modules/mesh-delivery-checker/internal/check/examiner_test.go @@ -22,7 +22,7 @@ import ( "time" "unicode/utf8" - gobuild "git.novox.be/novox/mesh-catalog/modules/mesh-build-go/buildstep" + gobuild "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun" "git.novox.be/novox/mesh-contracts/go/seats/meshconfig" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/buildrun" "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-builder/builds" diff --git a/modules/mesh-delivery-sdk/buildstep/doc.go b/modules/mesh-delivery-sdk/buildstep/doc.go index 93c1feb7..403b8a8d 100644 --- a/modules/mesh-delivery-sdk/buildstep/doc.go +++ b/modules/mesh-delivery-sdk/buildstep/doc.go @@ -1,5 +1,5 @@ // Package buildstep is the contract of a build step every delivery part reads (novox/hq ADR 0593 §1): a step's id, the // fetch request, a step a previous process left running and its end, a failure's words, a module tree's shape, the -// capacity setting and the launchers' names. The runner the build modules share is the Go build module's own package -// (mesh-catalog modules/mesh-build-go/buildstep), which imports this one. +// capacity setting and the launchers' names. The runner only the build modules run is this SDK's package steprun +// (design 47 G §464), which imports this one. package buildstep diff --git a/modules/mesh-delivery-sdk/cmd/mesh-pack/main.go b/modules/mesh-delivery-sdk/cmd/mesh-pack/main.go new file mode 100644 index 00000000..af1fdf63 --- /dev/null +++ b/modules/mesh-delivery-sdk/cmd/mesh-pack/main.go @@ -0,0 +1,111 @@ +// mesh-pack builds a Go bundle by hand with the recipe of the mesh-build-go module and packs it with mesh-sdk's own +// steprun.Pack, printing the digest, so a hand build has the form of a built artifact and, with the same Go version, +// its digest (novox/hq ADR 0526; fallback record F1; issue 1499 for the Go version). +// +// mesh-pack -dir -from -binary [-system arch] [-out ] +// mesh-pack -pack [-out ] (a `files` archive: pack a tree as it is) +// +// The recipe is mesh-catalog modules/mesh-build-go cmd/mesh-build-go/build.go (recipeFlags, recipeLinkerFlags, +// recipeSystemStamp, buildEnv): CGO_ENABLED=0, GOFLAGS "-trimpath -buildvcs=false -mod=mod" (-mod=vendor when the +// directory vendors), GOTOOLCHAIN=local, GOPROXY=off, and -ldflags "-s -w -X main.builtFor=". +package main + +import ( + "flag" + "fmt" + "os" + "os/exec" + "path/filepath" + "strings" + + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun" +) + +const ( + recipeFlags = "-trimpath -buildvcs=false" + recipeLinkerFlags = "-s -w" + recipeSystemStamp = "main.builtFor" +) + +// Env is the build module's environment for the compile of dir, added to the caller's own. +func Env(dir string) []string { + mod := "-mod=mod" + if _, err := os.Stat(filepath.Join(dir, "vendor", "modules.txt")); err == nil { + mod = "-mod=vendor" + } + return append(os.Environ(), + "CGO_ENABLED=0", + "GOFLAGS="+recipeFlags+" "+mod, + "GOTOOLCHAIN=local", + "GOPROXY=off", + ) +} + +// Args is the arguments of the go command of the recipe. +func Args(dir, from, out, binary, system string) []string { + linker := recipeLinkerFlags + if s := strings.TrimSpace(system); s != "" { + linker += " -X " + recipeSystemStamp + "=" + s + } + return []string{"-C", dir, "build", "-ldflags", linker, "-o", filepath.Join(out, binary), "./" + strings.Trim(from, "./")} +} + +// Build compiles the package into a fresh directory and answers it. +func Build(dir, from, binary, system string) (string, error) { + out, err := os.MkdirTemp("", "mesh-pack-") + if err != nil { + return "", err + } + cmd := exec.Command("go", Args(dir, from, out, binary, system)...) + cmd.Env = Env(dir) + cmd.Stdout, cmd.Stderr = os.Stderr, os.Stderr + if err := cmd.Run(); err != nil { + os.RemoveAll(out) + return "", fmt.Errorf("go build of %s: %w", from, err) + } + return out, nil +} + +func run(args []string) (string, error) { + fs := flag.NewFlagSet("mesh-pack", flag.ContinueOnError) + dir := fs.String("dir", ".", "the Go module's directory") + from := fs.String("from", "", "the package to build, relative to -dir (the artifact's from)") + binary := fs.String("binary", "", "the binary's name in the archive") + system := fs.String("system", "", "the system stamped into main.builtFor (an artifact's system, e.g. arch)") + pack := fs.String("pack", "", "pack this directory as it is (a files archive) instead of building") + outFile := fs.String("out", "", "write the archive here") + if err := fs.Parse(args); err != nil { + return "", err + } + root := *pack + if root == "" { + if *from == "" || *binary == "" { + return "", fmt.Errorf("-from and -binary are needed (or -pack )") + } + out, err := Build(*dir, *from, *binary, *system) + if err != nil { + return "", err + } + defer os.RemoveAll(out) + root = out + } + archive, digest, err := steprun.Pack(root) + if err != nil { + return "", err + } + if *outFile != "" { + if err := os.WriteFile(*outFile, archive, 0o644); err != nil { + return "", err + } + } + return digest, nil +} + +func main() { + digest, err := run(os.Args[1:]) + if err != nil { + fmt.Fprintln(os.Stderr, "mesh-pack:", err) + os.Exit(1) + } + fmt.Println(digest) +} diff --git a/modules/mesh-delivery-sdk/cmd/mesh-pack/main_test.go b/modules/mesh-delivery-sdk/cmd/mesh-pack/main_test.go new file mode 100644 index 00000000..7d99f944 --- /dev/null +++ b/modules/mesh-delivery-sdk/cmd/mesh-pack/main_test.go @@ -0,0 +1,52 @@ +package main + +import ( + "os" + "path/filepath" + "testing" + + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun" +) + +func fixture(t *testing.T) string { + t.Helper() + d := t.TempDir() + os.MkdirAll(filepath.Join(d, "sub"), 0o755) + os.WriteFile(filepath.Join(d, "a.txt"), []byte("alpha"), 0o644) + os.WriteFile(filepath.Join(d, "sub", "run"), []byte("#!/bin/sh\n"), 0o755) + return d +} + +func TestPackFixtureTwiceGivesBuildstepsDigest(t *testing.T) { + d := fixture(t) + _, want, err := steprun.Pack(d) + if err != nil { + t.Fatal(err) + } + for i := 0; i < 2; i++ { + got, err := run([]string{"-pack", d, "-out", filepath.Join(t.TempDir(), "x.tgz")}) + if err != nil || got != want { + t.Fatalf("run %d: %q, %v; want %q", i, got, err, want) + } + } +} + +func TestBuildTwiceGivesOneDigestAndRecipeArgs(t *testing.T) { + m := t.TempDir() + os.WriteFile(filepath.Join(m, "go.mod"), []byte("module x\n\ngo 1.21\n"), 0o644) + os.MkdirAll(filepath.Join(m, "cmd", "p"), 0o755) + os.WriteFile(filepath.Join(m, "cmd", "p", "main.go"), []byte("package main\n\nvar builtFor string\n\nfunc main() { println(builtFor) }\n"), 0o644) + args := []string{"-dir", m, "-from", "cmd/p", "-binary", "p", "-system", "arch"} + a, err := run(args) + if err != nil { + t.Skipf("no go toolchain that builds offline: %v", err) + } + b, err := run(args) + if err != nil || a != b { + t.Fatalf("two builds: %q, %q, %v", a, b, err) + } + got := Args("/d", "./cmd/p/", "/o", "p", "arch") + if got[len(got)-1] != "./cmd/p" || got[4] != "-s -w -X main.builtFor=arch" { + t.Fatalf("args %v", got) + } +} diff --git a/modules/mesh-delivery-sdk/cmd/seatgen/main.go b/modules/mesh-delivery-sdk/cmd/seatgen/main.go new file mode 100644 index 00000000..46992873 --- /dev/null +++ b/modules/mesh-delivery-sdk/cmd/seatgen/main.go @@ -0,0 +1,80 @@ +// Command seatgen writes, or with -check compares, a contracts module's generated Go and TypeScript. +package main + +import ( + "flag" + "fmt" + "os" + "path/filepath" + "sort" + + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatgen" +) + +func main() { + check := flag.Bool("check", false, "compare instead of writing: name every path out of step") + goModule := flag.String("go-module", "", "the generated Go tree's module path, such as git.novox.be/novox/mesh-contracts//go (there is no root module)") + tsPackage := flag.String("ts-package", "", "the generated TypeScript package's name, such as @novox/mesh-contracts-") + domainSDK := flag.String("domain-sdk", "", "the Go module of the contracts module's domain SDK, which a client may import (ADR 0634 §2); empty when it has none") + flag.Parse() + dir := flag.Arg(0) + m, err := seatgen.Load(dir, *goModule, *tsPackage) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + m.DomainSDK = *domainSDK + files, err := seatgen.Generate(m) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + if *check { + out, err := seatgen.Compare(dir, files) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + // The clients beside the contracts (ADR 0627 §3) and module.json's Go and npm package artifacts (ADR 0625 §1, §3). + for _, check := range []func(string, *seatgen.Module) ([]string, error){seatgen.CheckClients, seatgen.CheckArtifacts} { + more, err := check(dir, m) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + out = append(out, more...) + } + for _, p := range out { + fmt.Println(p) + } + if len(out) > 0 { + os.Exit(1) + } + return + } + for _, root := range seatgen.GeneratedRoots { + _ = os.RemoveAll(filepath.Join(dir, root, "src")) + } + // Each seat's npm package's sources too (ADR 0625 §1), so a file no definition writes any more is gone. + stale, _ := filepath.Glob(filepath.Join(dir, "ts", "seats", "*", "src")) + for _, p := range stale { + _ = os.RemoveAll(p) + } + paths := make([]string, 0, len(files)) + for p := range files { + paths = append(paths, p) + } + sort.Strings(paths) + for _, p := range paths { + full := filepath.Join(dir, p) + if err := os.MkdirAll(filepath.Dir(full), 0o755); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + if err := os.WriteFile(full, files[p], 0o644); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + } + fmt.Println(len(paths), "files") +} diff --git a/modules/mesh-delivery-sdk/go.mod b/modules/mesh-delivery-sdk/go.mod index e7970a52..7f19df06 100644 --- a/modules/mesh-delivery-sdk/go.mod +++ b/modules/mesh-delivery-sdk/go.mod @@ -2,17 +2,35 @@ module git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk go 1.26.0 -require git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 +require ( + git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/containerimageregistryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/gopackageregistryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/npmpackageregistryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/ociartifactregistryclient v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/containerimageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/gopackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/npmpackageregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/ociartifactregistry v0.0.0-00010101000000-000000000000 + git.novox.be/novox/mesh-sdk/go v0.0.0-00010101000000-000000000000 + github.com/nats-io/nats.go v1.54.0 +) require ( - git.novox.be/novox/mesh-contracts/go/seats/nodeengine v0.0.0-00010101000000-000000000000 - git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/clients/meshcatalogclient v0.0.0-00010101000000-000000000000 + github.com/antithesishq/antithesis-sdk-go v0.8.0-default-no-op // indirect + github.com/google/go-tpm v0.9.8 // indirect github.com/klauspost/compress v1.20.1 // indirect - github.com/nats-io/nats.go v1.54.0 // indirect + github.com/minio/highwayhash v1.0.4 // indirect + github.com/nats-io/jwt/v2 v2.8.2 // indirect + github.com/nats-io/nats-server/v2 v2.11.17 // indirect github.com/nats-io/nkeys v0.4.16 // indirect github.com/nats-io/nuid v1.0.1 // indirect golang.org/x/crypto v0.57.0 // indirect golang.org/x/sys v0.48.0 // indirect + golang.org/x/time v0.16.0 // indirect ) - -require git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/meshcatalog v0.0.0-00010101000000-000000000000 diff --git a/modules/mesh-delivery-sdk/go.sum b/modules/mesh-delivery-sdk/go.sum index 0daef11f..58b69fe2 100644 --- a/modules/mesh-delivery-sdk/go.sum +++ b/modules/mesh-delivery-sdk/go.sum @@ -1,12 +1,25 @@ -github.com/klauspost/compress v1.20.1 h1:T7kKElXUMXrUJ2E9QhQhxFtcK5rPyLdsGZvdbLMPdiQ= +github.com/antithesishq/antithesis-sdk-go v0.8.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI= +github.com/antithesishq/antithesis-sdk-go v0.8.0-default-no-op h1:1BOWQJweNyvZMlpAHXGLiZQn9S+QXGcz3xh94lC0w6E= +github.com/google/go-tpm v0.9.8/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= +github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo= github.com/klauspost/compress v1.20.1/go.mod h1:LUdAzn7YLVvxLpc7y3V1m40wESHTgc1422pwwBSKYuI= -github.com/nats-io/nats.go v1.54.0 h1:vsXoOxjHp/GmPUN+EcI7uOf/uB+iAP+kEsAFNQN0yzA= +github.com/klauspost/compress v1.20.1 h1:T7kKElXUMXrUJ2E9QhQhxFtcK5rPyLdsGZvdbLMPdiQ= +github.com/minio/highwayhash v1.0.4/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= +github.com/minio/highwayhash v1.0.4 h1:asJizugGgchQod2ja9NJlGOWq4s7KsAWr5XUc9Clgl4= +github.com/nats-io/jwt/v2 v2.8.2/go.mod h1:Ag/56sq9OblL4JgdYufDd16Egb17Kr/8WwwuO/forVc= +github.com/nats-io/jwt/v2 v2.8.2 h1:XXRgB60MSTnqsRwejQurVDs/hcv2dkt+86GjI+I/bMc= github.com/nats-io/nats.go v1.54.0/go.mod h1:y+DZoD1oBOYfZTU681eTUiUjI0vbqYGixNVFHcjHJ0k= -github.com/nats-io/nkeys v0.4.16 h1:rd5oAuLOb8mnAycB0xleuEBNS1pVVnN0fv/FF34Eypg= +github.com/nats-io/nats.go v1.54.0 h1:vsXoOxjHp/GmPUN+EcI7uOf/uB+iAP+kEsAFNQN0yzA= +github.com/nats-io/nats-server/v2 v2.11.17/go.mod h1:B1sFVz4StNosQ903ak4N1G01Fl/9f8e06mXpFIE2K24= +github.com/nats-io/nats-server/v2 v2.11.17 h1:GKEghcFK6A+aFx11Yf1LjgLC3txAwvyhnYzhBIQZA8I= github.com/nats-io/nkeys v0.4.16/go.mod h1:llLgWoI0o4z/Q57q2R1kHfmocyhGV6VG/U18Glg1Afs= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/nats-io/nkeys v0.4.16 h1:rd5oAuLOb8mnAycB0xleuEBNS1pVVnN0fv/FF34Eypg= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -golang.org/x/crypto v0.57.0 h1:3ZVCjf8Ggz7zneR/EHRVx68Ctf+2pmIMP2UFhh9cC6M= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= golang.org/x/crypto v0.57.0/go.mod h1:Fdz0i5U6CoizGwLda9DttjSk6qlZo25zYNtR+ycvuZA= -golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= +golang.org/x/crypto v0.57.0 h1:3ZVCjf8Ggz7zneR/EHRVx68Ctf+2pmIMP2UFhh9cC6M= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= +golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= +golang.org/x/time v0.16.0/go.mod h1:rVKOqvZeKvrDKTQiAHJ7wmwP0RzleSphoEA9RcdLA0s= +golang.org/x/time v0.16.0 h1:vMb6ptszcQMkcwiRTAuNNU50gom6++Q/6gY2hDM6VDE= diff --git a/modules/mesh-delivery-sdk/manifest_test.go b/modules/mesh-delivery-sdk/manifest_test.go index eb6f37bc..b54fa668 100644 --- a/modules/mesh-delivery-sdk/manifest_test.go +++ b/modules/mesh-delivery-sdk/manifest_test.go @@ -3,6 +3,7 @@ package sdk import ( "encoding/json" "os" + "strings" "testing" ) @@ -35,3 +36,23 @@ func TestThePackageArtifactNamesNoPathForTheWholeDirectory(t *testing.T) { } } } + +// The build modules' shared code is this SDK's (design 47 G §464, §680): the step runner `steprun` with its per-node CPU +// share and its conformance kit, the seat generator `seatgen` and the commands `seatgen` and `mesh-pack`; and the SDK +// requires nothing of mesh-catalog, whose build modules import it. +func TestTheSDKHoldsTheBuildModulesSharedCodeAndRequiresNoCatalogModule(t *testing.T) { + for _, dir := range []string{"steprun", "steprun/buildcpu", "steprun/conformance", "seatgen", "cmd/seatgen", "cmd/mesh-pack"} { + if fi, err := os.Stat(dir); err != nil || !fi.IsDir() { + t.Errorf("%s is not a package of the delivery SDK: %v", dir, err) + } + } + raw, err := os.ReadFile("go.mod") + if err != nil { + t.Fatal(err) + } + for _, line := range strings.Split(string(raw), "\n") { + if strings.Contains(line, "git.novox.be/novox/mesh-catalog/") { + t.Errorf("go.mod names a mesh-catalog module: %s", strings.TrimSpace(line)) + } + } +} diff --git a/modules/mesh-delivery-sdk/seatgen/callers.go b/modules/mesh-delivery-sdk/seatgen/callers.go new file mode 100644 index 00000000..a4a40d55 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/callers.go @@ -0,0 +1,72 @@ +package seatgen + +import ( + "encoding/json" + "fmt" + re "regexp" + "strings" +) + +// callerName is a seat's or a module's name inside a caller entry. +var callerName = re.MustCompile(`^[a-z][a-z0-9]*(-[a-z0-9]+)*$`) + +// callerClasses are the entries that take no name (design 47 G §336, §392). +var callerClasses = map[string]bool{"operator": true, "healers": true, "persons": true, "sessions": true, "invokers": true} + +// callerForm says whether an entry is one of the forms of design 47 G §336 as §392 writes them: `operator`, `healers`, +// `persons`, `sessions`, `invokers`, `seat:`, `module:` and `holder:@same-node`. +func callerForm(entry string) bool { + switch { + case callerClasses[entry]: + return true + case strings.HasPrefix(entry, "seat:"): + return callerName.MatchString(strings.TrimPrefix(entry, "seat:")) + case strings.HasPrefix(entry, "module:"): + return callerName.MatchString(strings.TrimPrefix(entry, "module:")) + case strings.HasPrefix(entry, "holder:") && strings.HasSuffix(entry, "@same-node"): + return callerName.MatchString(strings.TrimSuffix(strings.TrimPrefix(entry, "holder:"), "@same-node")) + } + return false +} + +// checkCallers refuses a definition or part whose verb or accepted kind names a `callers` that is no list of the +// forms of §336, naming the entry (design 47 G §339: the generator reads `callers` and makes nothing of it; the +// grants part reads them from the definition). Text, the old form, is refused as one entry. +func checkCallers(file string, raw []byte) error { + var doc struct { + Verbs []callerHolder `json:"verbs"` + Accepts []callerHolder `json:"accepts"` + } + if err := json.Unmarshal(raw, &doc); err != nil { + return nil // the definition reader names a malformed file + } + for _, group := range []struct { + field string + items []callerHolder + }{{"verbs", doc.Verbs}, {"accepts", doc.Accepts}} { + for _, it := range group.items { + if len(it.Callers) == 0 { + continue + } + var list []string + if err := json.Unmarshal(it.Callers, &list); err != nil { + var text string + if json.Unmarshal(it.Callers, &text) != nil { + return fmt.Errorf("%s: %s %q: callers is neither a list nor text", file, group.field, it.Name) + } + list = []string{text} + } + for _, e := range list { + if !callerForm(e) { + return fmt.Errorf("%s: %s %q: caller %q is no form of the format (operator, healers, persons, sessions, invokers, seat:, module:, holder:@same-node)", file, group.field, it.Name, e) + } + } + } + } + return nil +} + +type callerHolder struct { + Name string `json:"name"` + Callers json.RawMessage `json:"callers"` +} diff --git a/modules/mesh-delivery-sdk/seatgen/clients.go b/modules/mesh-delivery-sdk/seatgen/clients.go new file mode 100644 index 00000000..4a56a0d6 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/clients.go @@ -0,0 +1,214 @@ +package seatgen + +import ( + "encoding/json" + "fmt" + "go/ast" + "go/parser" + "go/token" + "os" + "path/filepath" + re "regexp" + "sort" + "strconv" + "strings" + + "git.novox.be/novox/mesh-sdk/go/seatdef" +) + +// ClientRoot is where a seat's hand-written client packages live (ADR 0625 §4, §5; ADR 0627): one directory per +// client, `go/clients/client`, a Go module of its own (ADR 0625 §3), so the seat set's importers +// never import a client and a client's import of mesh-sdk forms no cycle. Compare leaves the tree to CheckClients. +const ClientRoot = "go/clients" + +// RuntimeModule is mesh-sdk's Go module: the one module beside its own seat's contract a client may import (ADR 0625 +// §3, §4). +const RuntimeModule = "git.novox.be/novox/mesh-sdk/go" + +// ClientGoModule is the Go module of a seat's client, beside its contract's. +func ClientGoModule(root, seat string) string { return root + "/clients/" + pkgName(seat) + "client" } + +// a module's tool address (`.`) or call (`.` written with an underscore). +var toolAddress = re.MustCompile(`^[a-z][a-z0-9-]*\.[a-z0-9]+_[a-z0-9_]+$`) + +// CheckClients is ADR 0627 §3's catalog check of the clients, and ADR 0625 §5's rule for the files beside them: every +// directory under ClientRoot is the client of one seat defined whole, a Go module of its own at ClientGoModule; it +// imports only the standard library, its own seat's contract module, mesh-sdk's runtime and its domain's SDK (never another seat's +// contract or client); and no string in it names a module's subject (`mesh.mod.`), a module's tool, or another seat +// (its name, its subjects, its `seat:` call). Each problem is named once, sorted. +func CheckClients(dir string, m *Module) ([]string, error) { + var out []string + entries, err := os.ReadDir(filepath.Join(dir, ClientRoot)) + if os.IsNotExist(err) { + return nil, nil + } + if err != nil { + return nil, err + } + bySeatPkg := map[string]string{} + for name, d := range m.Seats { + if d.Grain == seatdef.Whole { + bySeatPkg[pkgName(name)+"client"] = name + } + } + for _, e := range entries { + at := ClientRoot + "/" + e.Name() + if !e.IsDir() { + out = append(out, at+": a file under the clients' root, in no client") + continue + } + seat, ok := bySeatPkg[e.Name()] + if !ok { + out = append(out, at+": the client of no seat defined whole (a client is `client`)") + continue + } + mod, err := os.ReadFile(filepath.Join(dir, at, "go.mod")) + want := "module " + ClientGoModule(m.GoModule, seat) + if err != nil || strings.SplitN(string(mod), "\n", 2)[0] != want { + out = append(out, at+"/go.mod: not "+strconv.Quote(want)+": a client is a Go module of its own (ADR 0625 §3)") + } + problems, err := checkClient(dir, at, seat, m) + if err != nil { + return nil, err + } + out = append(out, problems...) + } + sort.Strings(out) + return out, nil +} + +func checkClient(dir, at, seat string, m *Module) ([]string, error) { + var out []string + own := SeatGoModule(m.GoModule, seat) + others := map[string]bool{} + for name := range m.Seats { + if name != seat { + others[name] = true + } + } + namesOther := func(s string) bool { + if others[s] { + return true + } + for name := range others { + if strings.HasPrefix(s, "mesh.seat."+name+".") || strings.HasPrefix(s, "seat:"+name+".") { + return true + } + } + return false + } + err := filepath.WalkDir(filepath.Join(dir, at), func(p string, e os.DirEntry, err error) error { + if err != nil || e.IsDir() || !strings.HasSuffix(p, ".go") { + return err + } + r := rel(dir, p) + f, err := parser.ParseFile(token.NewFileSet(), p, nil, parser.SkipObjectResolution) + if err != nil { + return err + } + for _, im := range f.Imports { + path, _ := strconv.Unquote(im.Path.Value) + switch { + case !strings.Contains(strings.SplitN(path, "/", 2)[0], "."): + case path == own: + case m.DomainSDK != "" && (path == m.DomainSDK || strings.HasPrefix(path, m.DomainSDK+"/")): + // the domain's SDK (ADR 0634 §2) + case path == RuntimeModule || strings.HasPrefix(path, RuntimeModule+"/"): + case path == ClientGoModule(m.GoModule, seat) || strings.HasPrefix(path, ClientGoModule(m.GoModule, seat)+"/"): + // the client's own packages: a client may be several packages of its module + case strings.HasPrefix(path, m.GoModule+"/clients/"): + out = append(out, r+": imports "+path+", another seat's client (ADR 0625 §4)") + case path == m.GoModule || strings.HasPrefix(path, m.GoModule+"/"): + out = append(out, r+": imports "+path+", not its own seat's contract (ADR 0625 §4)") + default: + out = append(out, r+": imports "+path+": a client uses only its seat's contract and mesh-sdk's runtime (ADR 0625 §3)") + } + } + ast.Inspect(f, func(n ast.Node) bool { + lit, ok := n.(*ast.BasicLit) + if !ok || lit.Kind != token.STRING { + return true + } + v, err := strconv.Unquote(lit.Value) + if err != nil { + return true + } + switch { + case strings.HasPrefix(v, "mesh.mod."): + out = append(out, fmt.Sprintf("%s: names a module's subject %q (ADR 0625 §4)", r, v)) + case toolAddress.MatchString(v): + out = append(out, fmt.Sprintf("%s: names a module's tool %q (ADR 0625 §4)", r, v)) + case namesOther(v): + out = append(out, fmt.Sprintf("%s: names another seat %q (ADR 0625 §4)", r, v)) + } + return true + }) + return nil + }) + return out, err +} + +// CheckArtifacts is the check of module.json's package artifacts against the tree (ADR 0625 §1, §3), per language. +// Go: each seat defined whole is the artifact `go-` at its module's directory, each client +// present the artifact `go-client` at its directory. npm: each seat defined whole is the artifact +// `ts-` at TSSeatDir. There is no root package of either kind (ADR 0635 §1). No other package artifact of either language. Each problem is named once, +// sorted. +func CheckArtifacts(dir string, m *Module) ([]string, error) { + raw, err := os.ReadFile(filepath.Join(dir, "module.json")) + if err != nil { + return nil, err + } + var mf struct { + Build struct { + Artifacts []struct { + Name string `json:"name"` + Kind string `json:"kind"` + Language string `json:"language"` + Paths []string `json:"paths"` + } `json:"artifacts"` + } `json:"build"` + } + if err := json.Unmarshal(raw, &mf); err != nil { + return nil, fmt.Errorf("module.json: %w", err) + } + want := map[string]map[string]string{"go": {}, "typescript": {}} + for name, d := range m.Seats { + if d.Grain == seatdef.Whole { + want["go"]["go-"+pkgName(name)] = "go/seats/" + pkgName(name) + want["typescript"]["ts-"+pkgName(name)] = TSSeatDir(name) + } + } + if entries, err := os.ReadDir(filepath.Join(dir, ClientRoot)); err == nil { + for _, e := range entries { + if e.IsDir() { + want["go"]["go-"+e.Name()] = ClientRoot + "/" + e.Name() + } + } + } + said := map[string]string{"go": "Go", "typescript": "npm"} + var out []string + seen := map[string]bool{} + for _, a := range mf.Build.Artifacts { + paths, lang := want[a.Language] + if a.Kind != "package" || !lang { + continue + } + seen[a.Language+"/"+a.Name] = true + path, ok := paths[a.Name] + switch { + case !ok: + out = append(out, "module.json: the "+said[a.Language]+" package artifact "+a.Name+" is no seat's module and no client's") + case len(a.Paths) != 1 || a.Paths[0] != path: + out = append(out, fmt.Sprintf("module.json: the artifact %s's paths are %v, not [%s]", a.Name, a.Paths, path)) + } + } + for lang, paths := range want { + for name, path := range paths { + if !seen[lang+"/"+name] { + out = append(out, "module.json: no "+said[lang]+" package artifact "+name+" for "+path) + } + } + } + sort.Strings(out) + return out, nil +} diff --git a/modules/mesh-delivery-sdk/seatgen/clients_test.go b/modules/mesh-delivery-sdk/seatgen/clients_test.go new file mode 100644 index 00000000..6f23fa42 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/clients_test.go @@ -0,0 +1,164 @@ +package seatgen + +import ( + "os" + "path/filepath" + "strings" + "testing" +) + +// ADR 0627 §3's catalog check of a client, ADR 0625 §5's rule for what is hand-written, and module.json's Go package +// artifacts against the tree (ADR 0625 §1, §3): each row writes one tree and names what the checks must say of it. +func TestAClientUsesOnlyItsSeatAndTheRuntime(t *testing.T) { + m, err := Load("testdata/contracts", "example.org/contracts/go", "@example/contracts") + if err != nil { + t.Fatal(err) + } + m.DomainSDK = "example.org/domain/sdk" + files, err := Generate(m) + if err != nil { + t.Fatal(err) + } + const good = `package aregistryclient + +import ( + "context" + + "example.org/contracts/go/seats/aregistry" + "git.novox.be/novox/mesh-sdk/go/keys" +) + +func Publish(ctx context.Context) string { _ = keys.EscapeName; return "seat:" + aregistry.Seat + ".publish" } +` + const ts = `,{"name":"ts-aregistry","kind":"package","language":"typescript","paths":["ts/seats/aregistry"]}, +{"name":"ts-bregistry","kind":"package","language":"typescript","paths":["ts/seats/bregistry"]}` + artifacts := func(extra string) string { + return `{"build":{"artifacts":[{"name":"go-aregistry","kind":"package","language":"go","paths":["go/seats/aregistry"]}, +{"name":"go-bregistry","kind":"package","language":"go","paths":["go/seats/bregistry"]}` + ts + extra + `]}}` + } + clientArtifact := `,{"name":"go-aregistryclient","kind":"package","language":"go","paths":["go/clients/aregistryclient"]}` + for _, c := range []struct { + name string + tree map[string]string + module string + want []string + }{ + {"no client: the seats alone", nil, artifacts(""), nil}, + {"a client of its own seat over the runtime", map[string]string{ + "go/clients/aregistryclient/go.mod": "module example.org/contracts/go/clients/aregistryclient\n", + "go/clients/aregistryclient/client.go": good, + }, artifacts(clientArtifact), nil}, + {"a client with no artifact, and an artifact of no module", map[string]string{ + "go/clients/aregistryclient/go.mod": "module example.org/contracts/go/clients/aregistryclient\n", + "go/clients/aregistryclient/client.go": good, + }, artifacts(`,{"name":"go-extra","kind":"package","language":"go","paths":["go/extra"]}`), + []string{"module.json: no Go package artifact go-aregistryclient", "module.json: the Go package artifact go-extra is no seat's"}}, + {"a seat's npm package with no artifact, one at another path, and one of no package", nil, + `{"build":{"artifacts":[{"name":"go-aregistry","kind":"package","language":"go","paths":["go/seats/aregistry"]}, +{"name":"go-bregistry","kind":"package","language":"go","paths":["go/seats/bregistry"]}, +{"name":"ts-aregistry","kind":"package","language":"typescript","paths":["ts"]}, +{"name":"ts-onestore","kind":"package","language":"typescript","paths":["ts/seats/onestore"]}]}}`, + []string{"module.json: no npm package artifact ts-bregistry", "module.json: the artifact ts-aregistry's paths are [ts], not [ts/seats/aregistry]", + "module.json: the npm package artifact ts-onestore is no seat's"}}, + {"a client using its own sub-package, which is no other seat's client", map[string]string{ + "go/clients/aregistryclient/go.mod": "module example.org/contracts/go/clients/aregistryclient\n", + "go/clients/aregistryclient/client.go": `package aregistryclient + +import "example.org/contracts/go/clients/aregistryclient/provider" + +var _ = provider.X +`, + }, artifacts(clientArtifact), nil}, + {"a client importing its domain's SDK, which another module's is not", map[string]string{ + "go/clients/aregistryclient/go.mod": "module example.org/contracts/go/clients/aregistryclient\n", + "go/clients/aregistryclient/client.go": `package aregistryclient + +import ( + "example.org/domain/sdk/reference" + "example.org/other/sdk/reference" +) +`, + }, artifacts(clientArtifact), []string{`client.go: imports example.org/other/sdk/reference: a client uses only`}}, + {"a client of no seat defined whole, and one not a module of its own", map[string]string{ + "go/clients/onestoreclient/x.go": "package onestoreclient\n", + "go/clients/aregistryclient/go.mod": "module example.org/contracts/go\n", + }, artifacts(clientArtifact + `,{"name":"go-onestoreclient","kind":"package","language":"go","paths":["go/clients/onestoreclient"]}`), + []string{"go/clients/aregistryclient/go.mod: not", "go/clients/onestoreclient: the client of no seat defined whole"}}, + {"a client using another seat, its client, a module's subject and tool", map[string]string{ + "go/clients/aregistryclient/go.mod": "module example.org/contracts/go/clients/aregistryclient\n", + "go/clients/aregistryclient/client.go": `package aregistryclient + +import ( + "example.org/contracts/go/seats/bregistry" + "example.org/contracts/go/clients/bregistryclient" + "github.com/some/thing" +) + +var a, b, c, d, e = bregistry.Seat, bregistryclient.X, thing.Y, "mesh.mod.holder.event.x", "seat:b-registry.publish" +var f = "records.records_search" +`, + }, artifacts(clientArtifact), []string{ + `client.go: imports example.org/contracts/go/clients/bregistryclient, another seat's client`, + `client.go: imports example.org/contracts/go/seats/bregistry, not its own seat's contract`, + `client.go: imports github.com/some/thing: a client uses only`, + `client.go: names a module's subject "mesh.mod.holder.event.x"`, + `client.go: names a module's tool "records.records_search"`, + `client.go: names another seat "seat:b-registry.publish"`, + }}, + } { + dir := t.TempDir() + write := func(p, s string) { + full := filepath.Join(dir, p) + if err := os.MkdirAll(filepath.Dir(full), 0o755); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(full, []byte(s), 0o644); err != nil { + t.Fatal(err) + } + } + for p, b := range files { + write(p, string(b)) + } + for p, s := range c.tree { + write(p, s) + } + write("module.json", c.module) + var got []string + cmp, err := Compare(dir, files) + if err != nil { + t.Fatal(err) + } + got = append(got, cmp...) + for _, check := range []func(string, *Module) ([]string, error){CheckClients, CheckArtifacts} { + more, err := check(dir, m) + if err != nil { + t.Fatalf("%s: %v", c.name, err) + } + got = append(got, more...) + } + if len(got) != len(c.want) { + t.Errorf("%s: said %d problems, want %d:\n%s", c.name, len(got), len(c.want), strings.Join(got, "\n")) + continue + } + for _, w := range c.want { + found := false + for _, g := range got { + found = found || strings.Contains(g, w) + } + if !found { + t.Errorf("%s: no problem says %q:\n%s", c.name, w, strings.Join(got, "\n")) + } + } + } + // A hand-written file outside a client is still out of step (ADR 0625 §5). + dir := t.TempDir() + for p, b := range files { + full := filepath.Join(dir, p) + _ = os.MkdirAll(filepath.Dir(full), 0o755) + _ = os.WriteFile(full, b, 0o644) + } + _ = os.WriteFile(filepath.Join(dir, "go/seats/aregistry/helper.go"), []byte("package aregistry\n"), 0o644) + if out, _ := Compare(dir, files); len(out) != 1 || !strings.Contains(out[0], "helper.go: not written by the generator") { + t.Errorf("a hand-written file beside a contract: %v", out) + } +} diff --git a/modules/mesh-delivery-sdk/seatgen/gogen.go b/modules/mesh-delivery-sdk/seatgen/gogen.go new file mode 100644 index 00000000..a1179943 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/gogen.go @@ -0,0 +1,553 @@ +package seatgen + +import ( + "bytes" + "encoding/json" + "fmt" + "go/format" + "sort" + "strconv" + "strings" + + "git.novox.be/novox/mesh-sdk/go/seatdef" +) + +const header = "// Code generated by seatgen from the seat definitions; DO NOT EDIT.\n\n" + +func goFiles(m *Module, out map[string][]byte) error { + // Each seat defined whole is a Go module of its own, so a change of one seat moves only its importers, whose + // fingerprint counts a Go module's go.mod and go.sum (ADR 0625 §1, §2). A seat's module imports nothing: the parts it + // includes are written into it whole. There is no seat list and no root Go module (ADR 0635 §1): the list is read + // from the bus. + for _, name := range m.Order { + d := m.Seats[name] + if d.Grain != seatdef.Whole { + continue + } + src, test, err := goWhole(m, d) + if err != nil { + return fmt.Errorf("seat %s: %w", name, err) + } + dir := "go/seats/" + pkgName(name) + "/" + out[dir+"go.mod"] = goMod(SeatGoModule(m.GoModule, name)) + out[dir+"contract.go"] = src + if test != nil { + out[dir+"contract_test.go"] = test + } + } + return nil +} + +// SeatGoModule is the Go module of a seat defined whole, beside the seat set's. +func SeatGoModule(root, seat string) string { return root + "/seats/" + pkgName(seat) } + +func goMod(path string) []byte { return []byte("module " + path + "\n\ngo 1.26.0\n") } + +func sortedKeys[V any](m map[string]V) []string { + out := make([]string, 0, len(m)) + for k := range m { + out = append(out, k) + } + sort.Strings(out) + return out +} + +func gofmt(b *bytes.Buffer) ([]byte, error) { + src, err := format.Source(b.Bytes()) + if err != nil { + return nil, fmt.Errorf("the generated Go does not parse: %w\n%s", err, b.String()) + } + return src, nil +} + +// declareAll declares a definition's types: its own named types, then each verb's input and answer, each accept, +// event, holder event, record and provision; a name given by a part (in fromPart) is an alias of the part's. +func declareAll(d seatdef.Definition, fromPart map[string]string) (*typer, error) { + tp := newTyper() + decl := func(name, desc string, s map[string]any) error { + if s == nil { + return nil + } + if _, ok := fromPart[name]; ok { + tp.taken[name] = true + return nil + } + return tp.declare(name, desc, s) + } + for _, n := range d.DefNames() { + if err := decl(n, "", d.Defs[n]); err != nil { + return nil, err + } + } + // A body of `bodies` yields its type alone: the sending is mesh-sdk's (design 47 G §452, §454). + for _, n := range sortedKeys(d.Bodies) { + if err := decl(n, "", d.Bodies[n]); err != nil { + return nil, err + } + } + for _, v := range d.Verbs { + if err := decl(ident(v.Name)+"Input", "is what "+v.Name+" takes.", v.Input); err != nil { + return nil, err + } + if err := decl(ident(v.Name)+"Answer", "is what "+v.Name+" answers.", v.Answer); err != nil { + return nil, err + } + } + for _, a := range d.Accepts { + if err := decl(ident(acceptName(a))+"Accept", "is the body of "+acceptName(a)+".", a.Body); err != nil { + return nil, err + } + } + for _, e := range d.Events { + if err := decl(ident(e.Name)+"Event", "is the body of the event "+e.Name+".", e.Body); err != nil { + return nil, err + } + } + for _, e := range d.HolderEvents { + if err := decl(ident(e.Name)+"HolderEvent", "is the body of the holder's event "+e.Name+".", e.Body); err != nil { + return nil, err + } + } + for _, st := range d.States { + for _, kf := range st.KeyForms { + vn, err := stateValueName(st.Name, kf) + if err != nil { + return nil, fmt.Errorf("state %s: %w", st.Name, err) + } + if err := decl(vn, "is one value of the state "+st.Name+" under the key "+kf.Key+".", kf.Value); err != nil { + return nil, err + } + } + } + for _, p := range d.Provisions { + if err := decl(ident(p.Name)+"Form", "is the form of the provision "+p.Name+".", p.Form); err != nil { + return nil, err + } + } + return tp, nil +} + +func oneLine(s string) string { + s = strings.TrimSpace(s) + if s == "" { + return "no description." + } + return strings.ReplaceAll(s, "\n", " ") +} + +func writeNames(b *bytes.Buffer, prefix string, names []string) { + if len(names) == 0 { + return + } + b.WriteString("const (\n") + for _, n := range names { + fmt.Fprintf(b, "\t%s%s = %q\n", prefix, ident(n), n) + } + b.WriteString(")\n\n") +} + +func writeList(b *bytes.Buffer, fn, prefix, what string, names []string) { + if len(names) == 0 { + return + } + fmt.Fprintf(b, "// %s is %s: a new copy each call.\nfunc %s() []string {\n\treturn []string{", fn, what, fn) + for i, n := range names { + if i > 0 { + b.WriteString(", ") + } + b.WriteString(prefix + ident(n)) + } + b.WriteString("}\n}\n\n") +} + +// goWhole is a whole seat's package: its names, subjects and types, and the test of its fixtures. +func goWhole(m *Module, d seatdef.Definition) ([]byte, []byte, error) { + fromPart := map[string]string{} + tp, err := declareAll(d, fromPart) + if err != nil { + return nil, nil, err + } + pkg := pkgName(d.Seat) + var b bytes.Buffer + b.WriteString(header) + fmt.Fprintf(&b, "// Package %s is the contract of the seat %q, defined whole (seats/%s/seat.json): %s\npackage %s\n\n", + pkg, d.Seat, d.Seat, oneLine(d.Description), pkg) + if len(d.States) > 0 { + b.WriteString(goStatesImports(d.States)) + } + fmt.Fprintf(&b, "// Seat is the seat's name.\nconst Seat = %q\n\n", d.Seat) + writeNames(&b, "Verb", seatdef.VerbNames(d.Verbs)) + writeNames(&b, "Accept", acceptNames(d.Accepts)) + writeNames(&b, "Event", seatdef.MessageNames(d.Events)) + writeList(&b, "Verbs", "Verb", "every verb the seat serves, in its definition's order", seatdef.VerbNames(d.Verbs)) + writeList(&b, "Events", "Event", "every event published on the seat's subject", seatdef.MessageNames(d.Events)) + if f := d.Family; f != nil { + fmt.Fprintf(&b, "// Family is where the seat's events are kept: the shared events stream, filtered to the seat's subjects.\nconst (\n\tFamily = %q\n\tFamilyMaxAgeDays = %d\n)\n\n", f.Name, f.MaxAgeDays) + } + for _, e := range d.Events { + subj := seatdef.EventSubject(d.Seat, e.Name) + if e.Keep != nil { + fmt.Fprintf(&b, "// Stream%s is the stream %s is kept in.\nconst Stream%s = %q\n\n", ident(e.Name), e.Name, ident(e.Name), keptStream(d.Seat, e.Name)) + } + if parts := e.Parts(); len(parts) > 0 { + goPartsSubject(&b, d.Seat, e, parts) + continue + } + if e.ByCaller { + fmt.Fprintf(&b, "// Subject%s is where %s is published for one caller.\nfunc Subject%s(caller string) string { return %q + caller }\n\n", + ident(e.Name), e.Name, ident(e.Name), subj+".") + } else { + fmt.Fprintf(&b, "// Subject%s is where %s is published.\nconst Subject%s = %q\n\n", ident(e.Name), e.Name, ident(e.Name), subj) + } + } + for _, a := range d.Accepts { + subj := seatdef.AcceptSubject(d.Seat, acceptName(a)) + if a.ByCaller { + fmt.Fprintf(&b, "// AcceptSubject%s is where one caller sends %s.\nfunc AcceptSubject%s(caller string) string { return %q + caller }\n\n", + ident(acceptName(a)), acceptName(a), ident(acceptName(a)), subj+".") + } else { + fmt.Fprintf(&b, "// AcceptSubject%s is where %s is sent.\nconst AcceptSubject%s = %q\n\n", ident(acceptName(a)), acceptName(a), ident(acceptName(a)), subj) + } + } + if len(d.HolderEvents) > 0 { + b.WriteString("// The holder's own events, listed beside the seat and published under the holder's subjects (ADR 0620 §2).\nconst (\n") + for _, e := range d.HolderEvents { + fmt.Fprintf(&b, "\tHolderEvent%s = %q\n", ident(e.Name), e.Name) + } + b.WriteString(")\n\n") + for _, e := range d.HolderEvents { + before, after, _ := strings.Cut(e.Subject, "") + fmt.Fprintf(&b, "// HolderSubject%s is where the holder publishes %s", ident(e.Name), e.Name) + if e.Family != "" { + fmt.Fprintf(&b, ", kept in %s", e.Family) + } + fmt.Fprintf(&b, ".\nfunc HolderSubject%s(holder string) string { return %q + holder + %q }\n\n", ident(e.Name), before, after) + } + } + if len(d.States) > 0 { + if err := goStates(&b, d.States); err != nil { + return nil, nil, err + } + } + if err := goTypes(&b, tp, map[string]*typ{}); err != nil { + return nil, nil, err + } + if bytes.Contains(b.Bytes(), []byte("time.Time")) { + // A moment is the standard library's time (the only import a contract may have besides its states' readers). + raw := b.Bytes() + if bytes.Contains(raw, []byte("\nimport (\n")) { + raw = bytes.Replace(raw, []byte("\nimport (\n"), []byte("\nimport (\n\t\"time\"\n"), 1) + } else { + raw = bytes.Replace(raw, []byte("package "+pkg+"\n\n"), []byte("package "+pkg+"\n\nimport \"time\"\n\n"), 1) + } + b = *bytes.NewBuffer(raw) + } + src, err := gofmt(&b) + if err != nil { + return nil, nil, err + } + test, err := goFixtures(m, d, pkg, tp, fromPart) + return src, test, err +} + +// goTypes writes every declared type; also are the kinds of types declared elsewhere (a part's), by name. +func goTypes(b *bytes.Buffer, tp *typer, also map[string]*typ) error { + kinds := map[string]*typ{} + for k, v := range also { + kinds[k] = v + } + for _, t := range tp.types { + kinds[t.name] = t.t + } + for _, t := range tp.types { + desc := strings.TrimSpace(t.desc) + if desc == "" { + desc = "is a type of the contract." + } else if !strings.HasPrefix(desc, "is ") { + desc = "is " + strings.TrimSuffix(desc, ".") + "." + } + fmt.Fprintf(b, "// %s %s\n", t.name, oneLine(desc)) + if t.t.kind != "struct" { + fmt.Fprintf(b, "type %s = %s\n\n", t.name, goType(t.t, kinds, true)) + goEnum(b, t.name, t.name, t.t) + continue + } + fmt.Fprintf(b, "type %s struct {\n", t.name) + for _, f := range t.t.fields { + if f.desc != "" { + fmt.Fprintf(b, "\t// %s\n", oneLine(f.desc)) + } + tag := f.json + if !f.required { + tag += ",omitempty" + } + fmt.Fprintf(b, "\t%s %s `json:%q`\n", ident(f.json), goType(f.t, kinds, f.required), tag) + } + b.WriteString("}\n\n") + for _, f := range t.t.fields { + goEnum(b, t.name+"'s "+f.json, t.name+ident(f.json), f.t) + } + } + return nil +} + +// goEnum writes a string's enum as one constant per value, named prefix and the value (RemoveInputReasonRetention), so a +// caller names a value the definition gives and never writes it by hand. +func goEnum(b *bytes.Buffer, what, prefix string, t *typ) { + if t.kind != "string" || len(t.enum) == 0 { + return + } + fmt.Fprintf(b, "// The values of %s.\nconst (\n", what) + for _, v := range t.enum { + fmt.Fprintf(b, "\t%s%s = %q\n", prefix, ident(v), v) + } + b.WriteString(")\n\n") +} + +func goType(t *typ, kinds map[string]*typ, required bool) string { + if t.null { + n := *t + n.null = false + return "*" + goType(&n, kinds, true) + } + switch t.kind { + case "string": + return "string" + case "time": + if required { + return "time.Time" + } + return "*time.Time" + case "integer": + return "int64" + case "number": + return "float64" + case "boolean": + return "bool" + case "object": + return "map[string]any" + case "map": + return "map[string]" + goType(t.elem, kinds, true) + case "slice": + return "[]" + goType(t.elem, kinds, true) + case "ref": + if k, ok := kinds[t.ref]; ok && k.kind == "struct" && !required { + return "*" + t.ref + } + return t.ref + } + return "any" +} + +// goFixtures is the test that every fixture of the seat decodes into its type and reads back as its wire says, and +// that the subject it names is the one the contract gives. +func goFixtures(m *Module, d seatdef.Definition, pkg string, tp *typer, fromPart map[string]string) ([]byte, error) { + fx := m.Fixtures[d.Seat] + if len(fx) == 0 { + return nil, nil + } + has := map[string]bool{} + for _, t := range tp.types { + has[t.name] = true + } + for n := range fromPart { + has[n] = true + } + var b bytes.Buffer + b.WriteString(header) + fmt.Fprintf(&b, "package %s\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"testing\"\n)\n\n", pkg) + fmt.Fprintf(&b, "// TestFixtures reads every fixture of seats/%s/fixtures: each decodes into its type, a field the type does not\n"+ + "// know is dropped (ADR 0608 §6), and it reads back as its wire says; each subject named is the contract's.\n", d.Seat) + b.WriteString("func TestFixtures(t *testing.T) {\n\tcases := []struct {\n\t\tname, subject, given, wire string\n\t\tdecode func([]byte) (any, error)\n\t\tsubjectIs *regexp.Regexp\n\t}{\n") + for _, f := range fx { + kind, name, _ := f.Instance() + typeName, pattern, err := fixtureTarget(d, kind, name) + if err != nil { + return nil, fmt.Errorf("fixture %q: %w", f.Name, err) + } + given, _ := json.Marshal(f.Given) + wire := given + if f.Wire != nil { + wire, _ = json.Marshal(f.Wire) + } + decoder := "func(b []byte) (any, error) { var v map[string]any; err := json.Unmarshal(b, &v); return v, err }" + if has[typeName] { + decoder = fmt.Sprintf("func(b []byte) (any, error) { var v %s; err := json.Unmarshal(b, &v); return v, err }", typeName) + } + subjectIs := "nil" + if pattern != "" { + subjectIs = "regexp.MustCompile(" + strconv.Quote(pattern) + ")" + } else if f.Subject != "" { + return nil, fmt.Errorf("fixture %q names a subject, and a verb's message has none in the contract", f.Name) + } + if pattern != "" && f.Subject == "" { + return nil, fmt.Errorf("fixture %q of %s names no subject (design 26: each event's subject is named)", f.Name, f.Of) + } + fmt.Fprintf(&b, "\t\t{name: %q, subject: %q, given: %s, wire: %s,\n\t\t\tdecode: %s, subjectIs: %s},\n", + f.Name, f.Subject, strconv.Quote(string(given)), strconv.Quote(string(wire)), decoder, subjectIs) + } + b.WriteString(` } + for _, c := range cases { + v, err := c.decode([]byte(c.given)) + if err != nil { + t.Errorf("%s: does not decode: %v", c.name, err) + continue + } + back, err := json.Marshal(v) + if err != nil { + t.Errorf("%s: does not encode: %v", c.name, err) + continue + } + var got, want any + if err := json.Unmarshal(back, &got); err != nil { + t.Fatal(err) + } + if err := json.Unmarshal([]byte(c.wire), &want); err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(got, want) { + t.Errorf("%s: reads back as %s, want %s", c.name, back, c.wire) + } + if c.subjectIs != nil && !c.subjectIs.MatchString(c.subject) { + t.Errorf("%s: subject %q is not the contract's %s", c.name, c.subject, c.subjectIs) + } + } +} +`) + return gofmt(&b) +} + +// fixtureTarget is the type a fixture decodes into and the pattern its subject must match, if it has one. +func fixtureTarget(d seatdef.Definition, kind, name string) (string, string, error) { + switch kind { + case "verb-input", "verb-answer": + for _, v := range d.Verbs { + if v.Name == name { + if kind == "verb-input" { + return ident(name) + "Input", "", nil + } + return ident(name) + "Answer", "", nil + } + } + case "accept", "event": + ms, subj := d.Accepts, seatdef.AcceptSubject(d.Seat, name) + suffix := "Accept" + if kind == "event" { + ms, subj, suffix = d.Events, seatdef.EventSubject(d.Seat, name), "Event" + } + for _, msg := range ms { + if (kind == "event" && msg.Name == name) || (kind == "accept" && acceptName(msg) == name) { + if kind == "event" && len(msg.Parts()) > 0 { + return ident(name) + suffix, partsPattern(d.Seat, msg), nil + } + p := "^" + regexp(subj) + if msg.ByCaller { + p += `\.[A-Za-z0-9_-]+` + } + return ident(name) + suffix, p + "$", nil + } + } + case "state": + if n, ok := stateFormFor(d, name); ok { + return n, "", nil + } + case "holder-event": + for _, e := range d.HolderEvents { + if e.Name == name { + before, after, _ := strings.Cut(e.Subject, "") + p := "^" + regexp(before) + if strings.Contains(e.Subject, "") { + p += "[a-z0-9-]+" + regexp(after) + } + return ident(name) + "HolderEvent", p + "$", nil + } + } + } + return "", "", fmt.Errorf("the definition has no %s %q", kind, name) +} + +// acceptName is an accepted kind's name as the generated names and its subject carry it: the plain kind, or for a +// kind on a stream `.` (design 47 G §455), so `step` on `check` and on `delivery` stay two. +func acceptName(m seatdef.Message) string { + if m.Stream != "" { + return m.Stream + "." + m.Name + } + return m.Name +} + +func acceptNames(ms []seatdef.Message) []string { + out := make([]string, len(ms)) + for i, m := range ms { + out[i] = acceptName(m) + } + return out +} + +func regexp(s string) string { + var b strings.Builder + for _, r := range s { + if strings.ContainsRune(`\.+*?()|[]{}^$`, r) { + b.WriteRune('\\') + } + b.WriteRune(r) + } + return b.String() +} + +// keptStream is the bus's name of the stream an event naming `keep` is kept in: `SEAT__`, which the bus +// takes (no dot) and the grants part makes (design 47 G §260, §396). +func keptStream(seat, event string) string { return "SEAT_" + seat + "_" + event } + +// subjectExpr is the Go or JavaScript string expression of an event's subject with its parts as arguments. +func subjectExpr(seat string, e seatdef.Message) []string { + var expr []string + lit := "mesh.seat." + seat + ".event." + for i, tok := range strings.Split(e.SubjectPattern(), ".") { + if i > 0 { + lit += "." + } + if strings.HasPrefix(tok, "<") { + expr = append(expr, fmt.Sprintf("%q", lit), goParam(tok[1:len(tok)-1])) + lit = "" + continue + } + lit += tok + } + if lit != "" { + expr = append(expr, fmt.Sprintf("%q", lit)) + } + return expr +} + +// goPartsSubject writes the subject of an event whose subject carries parts (design 47 G §260, §397): a function taking +// each part in order, and the filter that hears every instance of it. +func goPartsSubject(b *bytes.Buffer, seat string, e seatdef.Message, parts []string) { + args := make([]string, len(parts)) + for i, p := range parts { + args[i] = goParam(p) + } + fmt.Fprintf(b, "// Subject%s is where %s is published, on %s.\nfunc Subject%s(%s string) string { return %s }\n\n", + ident(e.Name), e.Name, "mesh.seat."+seat+".event."+e.SubjectPattern(), ident(e.Name), strings.Join(args, ", "), + strings.Join(subjectExpr(seat, e), " + ")) + fmt.Fprintf(b, "// Subject%sAll hears every %s.\nconst Subject%sAll = %q\n\n", ident(e.Name), e.Name, ident(e.Name), + "mesh.seat."+seat+".event."+e.Local()) +} + +// goParam is a part's name as a parameter: its words joined, the first lower-case. +func goParam(part string) string { + id := ident(part) + return strings.ToLower(id[:1]) + id[1:] +} + +// partsPattern is the pattern a fixture's subject of an event with parts must match: a part is one token. +func partsPattern(seat string, e seatdef.Message) string { + toks := strings.Split(e.SubjectPattern(), ".") + for i, tok := range toks { + if strings.HasPrefix(tok, "<") { + toks[i] = `[^.*> ]+` + } else { + toks[i] = regexp(tok) + } + } + return "^" + regexp("mesh.seat."+seat+".event.") + strings.Join(toks, `\.`) + "$" +} diff --git a/modules/mesh-delivery-sdk/seatgen/layout_test.go b/modules/mesh-delivery-sdk/seatgen/layout_test.go new file mode 100644 index 00000000..ebef2b55 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/layout_test.go @@ -0,0 +1,379 @@ +package seatgen + +import ( + "encoding/json" + "go/parser" + "go/token" + "os" + "os/exec" + "path/filepath" + re "regexp" + "strings" + "testing" + + "git.novox.be/novox/mesh-sdk/go/seatdef" +) + +// TestEachSeatDefinedWholeIsAGoModuleOfItsOwn is ADR 0625's generator check (§1, §2, §3): there is no seat set and no +// root Go module (ADR 0635 §1), each seat defined whole is a Go module of its own holding its package alone, the +// parts it includes are written into it, a definition at the seat-list grain generates nothing, and no generated Go file +// imports anything outside the standard library. +func TestEachSeatDefinedWholeIsAGoModuleOfItsOwn(t *testing.T) { + m, err := Load("testdata/contracts", "example.org/contracts/go", "@example/contracts") + if err != nil { + t.Fatal(err) + } + files, err := Generate(m) + if err != nil { + t.Fatal(err) + } + mods := map[string]string{} + for p, b := range files { + if strings.HasPrefix(p, "go/") && strings.HasSuffix(p, "go.mod") { + mods[strings.TrimSuffix(p, "go.mod")] = strings.SplitN(string(b), "\n", 2)[0] + } + } + want := map[string]string{ + "go/seats/aregistry/": "module example.org/contracts/go/seats/aregistry", + "go/seats/bregistry/": "module example.org/contracts/go/seats/bregistry", + } + for dir, line := range want { + if mods[dir] != line { + t.Errorf("%sgo.mod says %q, want %q", dir, mods[dir], line) + } + } + // Every seat the definitions mark whole has its own module, whatever the seat set says of it (ADR 0627: the seat + // set marks ten whole, and none is without its package). + for name, d := range m.Seats { + if d.Grain == seatdef.Whole && mods["go/seats/"+pkgName(name)+"/"] == "" { + t.Errorf("the seat %s is defined whole and has no Go module of its own", name) + } + } + if len(mods) != len(want) { + t.Errorf("Go modules %v, want %v", mods, want) + } + for p, b := range files { + if !strings.HasPrefix(p, "go/") || !strings.HasSuffix(p, ".go") { + continue + } + dir := p[:strings.LastIndex(p, "/")+1] + if mods[dir] == "" { + t.Errorf("%s is in no seat's own Go module", p) + } + f, err := parser.ParseFile(token.NewFileSet(), p, b, parser.ImportsOnly) + if err != nil { + t.Fatal(err) + } + for _, im := range f.Imports { + if path := strings.Trim(im.Path.Value, `"`); strings.Contains(strings.SplitN(path, "/", 2)[0], ".") { + t.Errorf("%s imports %s: a generated package imports nothing outside the standard library", p, path) + } + } + } + for _, seat := range []string{"aregistry", "bregistry"} { + src := string(files["go/seats/"+seat+"/contract.go"]) + if !strings.Contains(src, "type Ref struct") || !strings.Contains(src, "type PublishedEvent") { + t.Errorf("%s does not hold the part's types whole", seat) + } + // A moment (format date-time) is the standard library's time in Go, a required one by value and an optional one + // by pointer (a zero time is not an absent one), and a string in TypeScript. + if !re.MustCompile(`Pushed\s+time\.Time\s+`+"`json:\"pushed\"`").MatchString(src) || !re.MustCompile(`At\s+\*time\.Time\s+`+"`json:\"at,omitempty\"`").MatchString(src) || + !(strings.Contains(src, "\t\"time\"\n") || strings.Contains(src, "import \"time\"")) { + t.Errorf("%s does not write a date-time as time.Time:\n%s", seat, src) + } + if ts := string(files["ts/seats/"+seat+"/parts/registry.d.ts"]); !strings.Contains(ts, `"pushed": string;`) || !strings.Contains(ts, `"at"?: string;`) { + t.Errorf("%s's TypeScript does not write a date-time as a string:\n%s", seat, ts) + } + // A scalar typed ["T","null"] is a pointer in Go and `T | null` in TypeScript, so a declared zero survives with its type. + for _, w := range []string{`Floor\s+\*float64\s+` + "`json:\"floor,omitempty\"`", `Limit\s+\*int64\s+` + "`json:\"limit,omitempty\"`", `Label\s+\*string\s+` + "`json:\"label,omitempty\"`", `On\s+\*bool\s+` + "`json:\"on,omitempty\"`"} { + if !re.MustCompile(w).MatchString(src) { + t.Errorf("%s does not write a nullable scalar as a pointer (%s):\n%s", seat, w, src) + } + } + if ts := string(files["ts/seats/"+seat+"/parts/registry.d.ts"]); !strings.Contains(ts, `"floor"?: number | null;`) || !strings.Contains(ts, `"on"?: boolean | null;`) || !strings.Contains(ts, `"label"?: string | null;`) { + t.Errorf("%s's TypeScript does not write a nullable scalar as T | null:\n%s", seat, ts) + } + // A string's enum is a constant per value, so a caller names the definition's value (A3t: the removal reason). + if !re.MustCompile(`RefReasonRetention\s+= "retention"`).MatchString(src) || !re.MustCompile(`RefReasonTagGone\s+= "tag-gone"`).MatchString(src) { + t.Errorf("%s does not name the part's enum values:\n%s", seat, src) + } + } + for p := range files { + if strings.Contains(p, "onestore") || p == "go/seats/seats.go" || p == "go/go.mod" || p == "ts/package.json" || p == "ts/src/seats.ts" { + t.Errorf("%s is written: a seat list is not generated, and a definition at its grain generates nothing", p) + } + } + + // The npm side (ADR 0625 §1): the indexer counts an npm package a lock resolves, so each seat defined whole is an + // npm package of its own (`-` at ts/seats/), holding its parts' types whole and + // importing nothing outside itself; there is no package above them. + pkgs := map[string]string{} + for p, b := range files { + if strings.HasPrefix(p, "ts/") && strings.HasSuffix(p, "package.json") { + var pj struct { + Name string `json:"name"` + } + if err := json.Unmarshal(b, &pj); err != nil { + t.Fatalf("%s: %v", p, err) + } + pkgs[strings.TrimSuffix(p, "package.json")] = pj.Name + } + } + wantPkgs := map[string]string{ + "ts/seats/aregistry/": "@example/contracts-a-registry", + "ts/seats/bregistry/": "@example/contracts-b-registry", + } + if len(pkgs) != len(wantPkgs) { + t.Errorf("npm packages %v, want %v", pkgs, wantPkgs) + } + for dir, name := range wantPkgs { + if pkgs[dir] != name { + t.Errorf("%spackage.json names %q, want %q", dir, pkgs[dir], name) + } + } + for p, b := range files { + if !strings.HasPrefix(p, "ts/") || !strings.HasSuffix(p, ".ts") { + continue + } + dir := "" + for d := range pkgs { + if strings.HasPrefix(p, d) && len(d) > len(dir) { + dir = d + } + } + if dir == "" || (p != dir+"index.d.ts" && !strings.HasPrefix(p, dir+"parts/")) { + t.Errorf("%s is in no npm package's files", p) + } + for _, line := range strings.Split(string(b), "\n") { + i := strings.Index(line, ` from "`) + if l := strings.TrimSpace(line); i >= 0 && (strings.HasPrefix(l, "import") || strings.HasPrefix(l, "export")) { + from := strings.Trim(line[i+len(` from `):], `";`) + if !strings.HasPrefix(from, "./") { + t.Errorf("%s imports %s: a generated npm package imports only its own files", p, from) + } + } + } + } + // F7: a published package is built from its own lock (mesh-build-node refuses one with none), and a generated one has + // no dependency to lock: its lock names the package alone and its package.json has no script and no dependency. + for _, seat := range []string{"aregistry", "bregistry"} { + var pj, lock map[string]any + if err := json.Unmarshal(files["ts/seats/"+seat+"/package.json"], &pj); err != nil { + t.Fatal(err) + } + if err := json.Unmarshal(files["ts/seats/"+seat+"/package-lock.json"], &lock); err != nil { + t.Fatalf("%s has no readable package-lock.json: %v", seat, err) + } + for _, k := range []string{"scripts", "dependencies", "devDependencies"} { + if _, ok := pj[k]; ok { + t.Errorf("%s's package.json has %s: a generated package needs no compiler or dependency", seat, k) + } + } + if pk, _ := lock["packages"].(map[string]any); len(pk) != 1 || lock["name"] != pj["name"] { + t.Errorf("%s's lock %v does not name its package alone", seat, lock) + } + } + for _, seat := range []string{"aregistry", "bregistry"} { + if !strings.Contains(string(files["ts/seats/"+seat+"/index.d.ts"]), "export type PublishedEvent = registry.PublishedEvent") || + !strings.Contains(string(files["ts/seats/"+seat+"/parts/registry.d.ts"]), "export type PublishedEvent") { + t.Errorf("the npm package of %s does not hold the part's types whole", seat) + } + } +} + +// TestCallersAreTheFormsOfTheFormat is design 47 G §339's check: the generator refuses a definition (or a part) +// whose verb or accepted kind names a caller that is no form of §336, naming the entry, and the contracts it writes +// carry no caller check. +func TestCallersAreTheFormsOfTheFormat(t *testing.T) { + for _, tc := range []struct { + name, callers, refused string + }{ + {"every form", `["operator","healers","persons","sessions","invokers","seat:mesh-wants","module:gitea","holder:node-backup@same-node"]`, ""}, + {"text", `"any caller whose role grants it"`, "any caller whose role grants it"}, + {"a bare seat name", `["mesh-wants"]`, "mesh-wants"}, + {"holder without the node", `["holder:node-backup"]`, "holder:node-backup"}, + {"seat with no name", `["seat:"]`, "seat:"}, + } { + for _, place := range []string{"verbs", "accepts"} { + t.Run(tc.name+"/"+place, func(t *testing.T) { + raw := []byte(`{"format":1,"seat":"x","` + place + `":[{"name":"v","callers":` + tc.callers + `}]}`) + err := checkCallers("seats/x/seat.json", raw) + switch { + case tc.refused == "" && err != nil: + t.Fatalf("refused: %v", err) + case tc.refused != "" && (err == nil || !strings.Contains(err.Error(), tc.refused) || !strings.Contains(err.Error(), "seats/x/seat.json")): + t.Fatalf("error %v, want one naming %q", err, tc.refused) + } + }) + } + } + // Load refuses an unknown entry in a definition before it reads it. + dir := t.TempDir() + if err := os.MkdirAll(dir+"/seats/x", 0o755); err != nil { + t.Fatal(err) + } + def := `{"format":1,"seat":"x","scope":"mesh","grain":"seat-list","verbs":[{"name":"v","callers":["somebody"]}]}` + if err := os.WriteFile(dir+"/seats/x/seat.json", []byte(def), 0o644); err != nil { + t.Fatal(err) + } + if _, err := Load(dir, "", ""); err == nil || !strings.Contains(err.Error(), `"somebody"`) { + t.Fatalf("Load error %v, want one naming the entry", err) + } + // The generated contracts of the testdata hold no caller check. + m, err := Load("testdata/contracts", "example.org/contracts/go", "@example/contracts") + if err != nil { + t.Fatal(err) + } + files, err := Generate(m) + if err != nil { + t.Fatal(err) + } + for p, b := range files { + if strings.Contains(strings.ToLower(string(b)), "callers") && strings.HasSuffix(p, ".go") { + t.Errorf("%s carries a caller check", p) + } + } +} + +// TestATypeScriptContractIsJavaScriptWithItsDeclarations is design 47 G §341's check: each seat's npm package holds the +// contract as index.js with its index.d.ts (and each part the same), no TypeScript source and no tsconfig, so a +// TypeScript module imports it with no build step and no tsc of the contract. +func TestATypeScriptContractIsJavaScriptWithItsDeclarations(t *testing.T) { + m, err := Load("testdata/contracts", "example.org/contracts/go", "@example/contracts") + if err != nil { + t.Fatal(err) + } + files, err := Generate(m) + if err != nil { + t.Fatal(err) + } + for _, want := range []string{"index.js", "index.d.ts", "parts/registry.js", "parts/registry.d.ts", "package.json", "package-lock.json"} { + if _, ok := files["ts/seats/aregistry/"+want]; !ok { + t.Errorf("the seat's npm package lacks %s", want) + } + } + for p, b := range files { + if !strings.HasPrefix(p, "ts/") { + continue + } + if (strings.HasSuffix(p, ".ts") && !strings.HasSuffix(p, ".d.ts")) || strings.HasSuffix(p, "tsconfig.json") { + t.Errorf("%s is TypeScript source or a compiler's setting: the contract needs no tsc", p) + } + if strings.HasSuffix(p, ".js") { + for _, typed := range []string{": string", "interface ", " as const", "export type ", "import type", "declare "} { + if strings.Contains(string(b), typed) { + t.Errorf("%s holds TypeScript syntax %q: it is JavaScript", p, typed) + } + } + if node, err := exec.LookPath("node"); err == nil { + path := filepath.Join(t.TempDir(), "check.mjs") + if err := os.WriteFile(path, b, 0o644); err != nil { + t.Fatal(err) + } + if out, err := exec.Command(node, "--check", path).CombinedOutput(); err != nil { + t.Errorf("%s is no JavaScript module: %v\n%s", p, err, out) + } + } + } + } + var pkg struct { + Types string `json:"types"` + Exports map[string]map[string]string `json:"exports"` + Scripts map[string]string `json:"scripts"` + } + if err := json.Unmarshal(files["ts/seats/aregistry/package.json"], &pkg); err != nil { + t.Fatal(err) + } + if pkg.Types != "./index.d.ts" || pkg.Exports["."]["default"] != "./index.js" || pkg.Exports["."]["types"] != "./index.d.ts" || len(pkg.Scripts) != 0 { + t.Errorf("package.json says %+v", pkg) + } + if !strings.Contains(string(files["ts/seats/aregistry/index.d.ts"]), `import type * as registry from "./parts/registry.js";`) { + t.Error("the declarations do not import the part") + } +} + +// TestADefinitionsActsSubjectsKeepAndCallersAreRead is design 47 G §89, §203, §260, §324, §331's check for the +// generator: it reads `acts` (a step on every, a language and `kind: image`), `subject`, `keep` and `callers`, and +// writes each event's subject and the stream `SEAT__` of one that names `keep`. +func TestADefinitionsActsSubjectsKeepAndCallersAreRead(t *testing.T) { + m, err := Load("testdata/contracts", "example.org/contracts/go", "@example/contracts") + if err != nil { + t.Fatal(err) + } + if acts := m.Seats["a-registry"].Acts; len(acts) != 3 || acts[0].On != "kind:image" || acts[1].On != "every" || acts[2].On != "go" { + t.Errorf("acts read as %+v", acts) + } + files, err := Generate(m) + if err != nil { + t.Fatal(err) + } + src := string(files["go/seats/aregistry/contract.go"]) + for _, want := range []string{ + `const StreamMilestoneAsked = "SEAT_a-registry_milestone-asked"`, + `const StreamOwed = "SEAT_a-registry_owed"`, + "func SubjectMilestoneAsked(milestone string) string {\n\treturn \"mesh.seat.a-registry.event.milestone-asked.\" + milestone\n}", + `SubjectMilestoneAskedAll = "mesh.seat.a-registry.event.milestone-asked.*"`, + `func SubjectOwed(repository, number string) string {`, + "func SubjectStepEnded(node string) string { return \"mesh.seat.a-registry.event.step-ended.\" + node }", + } { + if !strings.Contains(src, want) { + t.Errorf("the Go contract lacks %q:\n%s", want, src) + } + } + if strings.Contains(src, "StreamStepEnded") { + t.Error("an event naming no keep has a stream of its own") + } + js := string(files["ts/seats/aregistry/index.js"]) + dts := string(files["ts/seats/aregistry/index.d.ts"]) + for _, want := range []string{`export const milestoneAskedStream = "SEAT_a-registry_milestone-asked";`, + `export function stepEndedSubject(node) {`, `export const milestoneAskedSubjectAll = "mesh.seat.a-registry.event.milestone-asked.*";`} { + if !strings.Contains(js, want) { + t.Errorf("index.js lacks %q:\n%s", want, js) + } + } + for _, want := range []string{`export declare const owedStream: "SEAT_a-registry_owed";`, `export declare function owedSubject(repository: string, number: string): string;`} { + if !strings.Contains(dts, want) { + t.Errorf("index.d.ts lacks %q:\n%s", want, dts) + } + } +} + +// TestBodiesAreTypesAndAcceptedKindsRideStreams is design 47 G §452, §454, §455 and §391's check for the generator: a +// definition's `bodies` yield their types in both languages and no sending code, a reference into `bodies` resolves +// as one into `defs`, an accepted kind on a stream has the subject `.` (`step` on both streams stays +// two), and a verb naming no class is refused by nothing. +func TestBodiesAreTypesAndAcceptedKindsRideStreams(t *testing.T) { + m, err := Load("testdata/contracts", "example.org/contracts/go", "@example/contracts") + if err != nil { + t.Fatal(err) + } + files, err := Generate(m) + if err != nil { + t.Fatal(err) + } + src := string(files["go/seats/aregistry/contract.go"]) + for _, want := range []string{ + "type Finding struct", "Related []Finding", "type PeekAnswer = Finding", + `"check.step"`, `"delivery.step"`, `"check.run"`, + `const AcceptSubjectCheckStep = "mesh.seat.a-registry.accept.check.step"`, + `const AcceptSubjectDeliveryStep = "mesh.seat.a-registry.accept.delivery.step"`, + "type CheckStepAccept struct", "type DeliveryStepAccept", + } { + if !strings.Contains(src, want) { + t.Errorf("the Go contract lacks %q:\n%s", want, src) + } + } + if strings.Contains(src, "SendFinding") || strings.Contains(src, "SubjectFinding") { + t.Error("a body yields more than its type") + } + dts := string(files["ts/seats/aregistry/index.d.ts"]) + js := string(files["ts/seats/aregistry/index.js"]) + for _, want := range []string{"export interface Finding", "checkStepSubject", "deliveryStepSubject"} { + if !strings.Contains(dts, want) { + t.Errorf("index.d.ts lacks %q:\n%s", want, dts) + } + } + if !strings.Contains(js, `"mesh.seat.a-registry.accept.delivery.step"`) { + t.Errorf("index.js lacks the delivery stream's subject:\n%s", js) + } +} diff --git a/modules/mesh-delivery-sdk/seatgen/load.go b/modules/mesh-delivery-sdk/seatgen/load.go new file mode 100644 index 00000000..62c42967 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/load.go @@ -0,0 +1,207 @@ +// Package seatgen writes a contracts module's Go and TypeScript from its seat definitions (design 26 *The +// generator*): the seat list every reader compiles, and for each seat defined whole its names, subjects and message +// types, with a test of its fixtures. The same input gives the same bytes. It is the build modules' logic (the Go +// build module's for Go, the Node build module's for TypeScript); this copy wrote mesh-contracts' first files and is +// handed to them as it stands. +package seatgen + +import ( + "fmt" + "os" + "path/filepath" + "sort" + "strings" + + "git.novox.be/novox/mesh-sdk/go/seatdef" +) + +// Module is a contracts module read from its directory. +type Module struct { + // GoModule is the Go module path of the generated Go tree (`/go`). + GoModule string + // TSPackage is the npm package's name. + TSPackage string + // DomainSDK is the Go module path of the contracts module's domain SDK (ADR 0634 §2), which a seat's client may + // import beside its contract and mesh-sdk's runtime; empty when the domain has none. + DomainSDK string + // Order is every seat's name, sorted: a contracts module has no seat list and no reading order (ADR 0635 §1). + Order []string + // Seats are every definition, resolved, by name. + Seats map[string]seatdef.Definition + // Raw are every definition as written, its parts not taken in. + Raw map[string]seatdef.Definition + // Parts are every part, by name. + Parts map[string]seatdef.Part + // Fixtures are each seat's fixtures, by seat, in file order. + Fixtures map[string][]seatdef.Fixture +} + +// Load reads a contracts module from its directory, wherever that is in its repository (ADR 0634 §8): +// `seats//seat.json`, `seats//fixtures/*.json` and `parts/*.json`. A definition at the seat-list grain is +// read and checked like the rest and generates nothing. goModule and tsPackage name the generated trees' roots; a +// module with no seat defined whole needs neither. +func Load(dir, goModule, tsPackage string) (*Module, error) { + m := &Module{GoModule: goModule, TSPackage: tsPackage, Seats: map[string]seatdef.Definition{}, + Raw: map[string]seatdef.Definition{}, Parts: map[string]seatdef.Part{}, Fixtures: map[string][]seatdef.Fixture{}} + parts, _ := filepath.Glob(filepath.Join(dir, "parts", "*.json")) + sort.Strings(parts) + for _, p := range parts { + raw, err := os.ReadFile(p) + if err != nil { + return nil, err + } + if err := checkCallers(rel(dir, p), raw); err != nil { + return nil, err + } + part, err := seatdef.ParsePart(raw) + if err != nil { + return nil, fmt.Errorf("%s: %w", rel(dir, p), err) + } + if want := strings.TrimSuffix(filepath.Base(p), ".json"); part.Part != want { + return nil, fmt.Errorf("%s: names part %q", rel(dir, p), part.Part) + } + m.Parts[part.Part] = part + } + dirs, _ := filepath.Glob(filepath.Join(dir, "seats", "*", "seat.json")) + for _, p := range dirs { + name := filepath.Base(filepath.Dir(p)) + raw, err := os.ReadFile(p) + if err != nil { + return nil, err + } + if err := checkCallers(rel(dir, p), raw); err != nil { + return nil, err + } + d, err := seatdef.Parse(raw) + if err != nil { + return nil, fmt.Errorf("%s: %w", rel(dir, p), err) + } + if d.Seat != name { + return nil, fmt.Errorf("%s: names seat %q", rel(dir, p), d.Seat) + } + m.Raw[name] = d + m.Order = append(m.Order, name) + resolved, err := seatdef.Resolve(d, m.Parts) + if err != nil { + return nil, fmt.Errorf("%s: %w", rel(dir, p), err) + } + m.Seats[name] = resolved + fx, _ := filepath.Glob(filepath.Join(filepath.Dir(p), "fixtures", "*.json")) + sort.Strings(fx) + for _, f := range fx { + raw, err := os.ReadFile(f) + if err != nil { + return nil, err + } + cases, err := seatdef.ParseFixtures(raw) + if err != nil { + return nil, fmt.Errorf("%s: %w", rel(dir, f), err) + } + m.Fixtures[name] = append(m.Fixtures[name], cases...) + } + } + sort.Strings(m.Order) + return m, nil +} + +func rel(dir, p string) string { + if r, err := filepath.Rel(dir, p); err == nil { + return r + } + return p +} + +// Generate is every file the module's generated trees hold, by path from the module's root. +func Generate(m *Module) (map[string][]byte, error) { + for _, name := range m.Order { + if m.Seats[name].Grain == seatdef.Whole && (m.GoModule == "" || m.TSPackage == "") { + return nil, fmt.Errorf("the seat %s is defined whole and the module names no generated Go module or TypeScript package yet: give them to the generator (seatgen -go-module, -ts-package)", name) + } + } + out := map[string][]byte{} + if err := goFiles(m, out); err != nil { + return nil, err + } + if err := tsFiles(m, out); err != nil { + return nil, err + } + return out, nil +} + +// GeneratedRoots are the directories every file of which the generator writes: a file there it did not write is +// out of step (design 26: the compare step). +var GeneratedRoots = []string{"go", "ts"} + +// Compare is every path out of step between what the generator writes and the tree in dir: a file that differs, one +// missing, or one under a generated root the generator did not write, each named once, sorted. +func Compare(dir string, files map[string][]byte) ([]string, error) { + var out []string + for p, want := range files { + got, err := os.ReadFile(filepath.Join(dir, p)) + switch { + case os.IsNotExist(err): + out = append(out, p+": missing") + case err != nil: + return nil, err + case string(got) != string(want): + out = append(out, p+": differs") + } + } + for _, root := range GeneratedRoots { + err := filepath.WalkDir(filepath.Join(dir, root), func(p string, e os.DirEntry, err error) error { + if err != nil { + if os.IsNotExist(err) { + return filepath.SkipDir + } + return err + } + if e.IsDir() { + if e.Name() == "node_modules" || e.Name() == "dist" || rel(dir, p) == ClientRoot { + return filepath.SkipDir + } + return nil + } + r := rel(dir, p) + if _, ok := files[r]; !ok { + out = append(out, r+": not written by the generator") + } + return nil + }) + if err != nil { + return nil, err + } + } + sort.Strings(out) + return out, nil +} + +// pkgName is a seat's or part's Go package: its name without hyphens. +func pkgName(name string) string { return strings.ReplaceAll(name, "-", "") } + +// ident is a name in Go's exported form: mesh-broker → MeshBroker, publish-part → PublishPart, preview.written → +// PreviewWritten, local-name → LocalName, id → ID. +func ident(name string) string { + var b strings.Builder + for _, w := range strings.FieldsFunc(name, func(r rune) bool { return r == '-' || r == '_' || r == '.' || r == ' ' }) { + switch w { + case "id": + b.WriteString("ID") + case "url": + b.WriteString("URL") + case "mib": + b.WriteString("MiB") + default: + b.WriteString(strings.ToUpper(w[:1]) + w[1:]) + } + } + return b.String() +} + +// tsName is a name in TypeScript's camel form for a constant: publish-part → publishPart. +func tsName(name string) string { + id := ident(name) + if strings.HasPrefix(id, "ID") { + return "id" + id[2:] + } + return strings.ToLower(id[:1]) + id[1:] +} diff --git a/modules/mesh-delivery-sdk/seatgen/states.go b/modules/mesh-delivery-sdk/seatgen/states.go new file mode 100644 index 00000000..d1c40c31 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/states.go @@ -0,0 +1,264 @@ +package seatgen + +import ( + "bytes" + "fmt" + "go/token" + "strconv" + "strings" + + "git.novox.be/novox/mesh-sdk/go/seatdef" +) + +// A keyToken is one piece of a key form's pattern: a literal, or a named part (``). +type keyToken struct { + part bool + text string +} + +// keyTokens reads a key form's pattern into its pieces. Two parts with no literal between them are refused: a reader +// could not tell where the first ends. +func keyTokens(key string) ([]keyToken, error) { + var out []keyToken + rest := key + for rest != "" { + i := strings.Index(rest, "<") + if i < 0 { + out = append(out, keyToken{text: rest}) + break + } + if i > 0 { + out = append(out, keyToken{text: rest[:i]}) + } + j := strings.Index(rest[i:], ">") + if j < 0 { + return nil, fmt.Errorf("key %q: a part is not closed", key) + } + out = append(out, keyToken{part: true, text: rest[i+1 : i+j]}) + rest = rest[i+j+1:] + } + for i := 1; i < len(out); i++ { + if out[i].part && out[i-1].part { + return nil, fmt.Errorf("key %q: two parts with no literal between them", key) + } + } + return out, nil +} + +func keyParts(ts []keyToken) []string { + var out []string + for _, t := range ts { + if t.part { + out = append(out, t.text) + } + } + return out +} + +// formIdent is the name a key form's functions and value type are built from: the state's name, then "By" and the +// form's parts and literals in order (asks, `.` → AsksByAskerID). +func formIdent(state, key string, ts []keyToken) string { + var b strings.Builder + b.WriteString(ident(state) + "By") + for _, t := range ts { + b.WriteString(ident(t.text)) + } + return b.String() +} + +var reservedWords = map[string]bool{"default": true, "new": true, "delete": true, "class": true, "function": true, "var": true, "let": true, "const": true, "in": true, "of": true} + +// paramName is a part's name as a function parameter: local-name → localName. +func paramName(part string) string { + n := ident(part) + n = strings.ToLower(n[:1]) + n[1:] + if strings.HasPrefix(ident(part), "ID") { + n = "id" + ident(part)[2:] + } + if token.IsKeyword(n) || reservedWords[n] { + n += "Part" + } + return n +} + +// stateValueName is the Go and TypeScript type of one value of a state under a key form. +func stateValueName(state string, kf seatdef.KeyForm) (string, error) { + ts, err := keyTokens(kf.Key) + if err != nil { + return "", err + } + return formIdent(state, kf.Key, ts) + "Value", nil +} + +// stateFormFor is the state and key form a fixture's `state:/` names. +func stateFormFor(d seatdef.Definition, name string) (string, bool) { + state, key, _ := strings.Cut(name, "/") + for _, s := range d.States { + if s.Name != state { + continue + } + for _, kf := range s.KeyForms { + if kf.Key == key { + n, err := stateValueName(s.Name, kf) + return n, err == nil + } + } + } + return "", false +} + +// goStates writes a seat's states: a constant for each local name, and for each key form its builder, its parser and +// the strict reader of a value (a field the type does not know is refused). +func goStates(b *bytes.Buffer, states []seatdef.State) error { + names := make([]string, len(states)) + for i, s := range states { + names[i] = s.Name + } + writeNames(b, "State", names) + for _, s := range states { + for _, kf := range s.KeyForms { + ts, err := keyTokens(kf.Key) + if err != nil { + return fmt.Errorf("state %s: %w", s.Name, err) + } + fi := formIdent(s.Name, kf.Key, ts) + params := keyParts(ts) + var plist, expr []string + for _, t := range ts { + if t.part { + expr = append(expr, paramName(t.text)) + } else { + expr = append(expr, fmt.Sprintf("%q", t.text)) + } + } + for _, p := range params { + plist = append(plist, paramName(p)) + } + sig := "" + if len(plist) > 0 { + sig = strings.Join(plist, ", ") + " string" + } + fmt.Fprintf(b, "// %sKey is the key of one value of the state %s under the form %q.\nfunc %sKey(%s) string { return %s }\n\n", + fi, s.Name, kf.Key, fi, sig, strings.Join(expr, " + ")) + rets := make([]string, 0, len(plist)+1) + zero := make([]string, 0, len(plist)+1) + for range plist { + rets = append(rets, "string") + zero = append(zero, `""`) + } + rets = append(rets, "bool") + zero = append(zero, "false") + fmt.Fprintf(b, "// Parse%sKey reads the parts of a key of the form %q, in the order of the form; the last result is false for a key of another form.\nfunc Parse%sKey(key string) (%s) {\n", + fi, kf.Key, fi, strings.Join(rets, ", ")) + fail := "return " + strings.Join(zero, ", ") + b.WriteString("\trest := key\n") + var got []string + for i := 0; i < len(ts); { + t := ts[i] + switch { + case !t.part: + fmt.Fprintf(b, "\tif !strings.HasPrefix(rest, %q) {\n\t\t%s\n\t}\n\trest = rest[%d:]\n", t.text, fail, len(t.text)) + i++ + case i+1 < len(ts): + fmt.Fprintf(b, "\tv%d, after%d, found%d := strings.Cut(rest, %q)\n\tif !found%d || v%d == \"\" {\n\t\t%s\n\t}\n\trest = after%d\n", + i, i, i, ts[i+1].text, i, i, fail, i) + got = append(got, fmt.Sprintf("v%d", i)) + i += 2 + default: + fmt.Fprintf(b, "\tif rest == \"\" {\n\t\t%s\n\t}\n\tv%d := rest\n\trest = \"\"\n", fail, i) + got = append(got, fmt.Sprintf("v%d", i)) + i++ + } + } + b.WriteString("\tif rest != \"\" {\n\t\t" + fail + "\n\t}\n") + fmt.Fprintf(b, "\treturn %s\n}\n\n", strings.Join(append(got, "true"), ", ")) + vn := fi + "Value" + fmt.Fprintf(b, "// Decode%s reads one value of the state %s under the form %q, refusing a field %s does not know and any text after the value.\n"+ + "func Decode%s(raw []byte) (%s, error) {\n\tvar v %s\n\tdec := json.NewDecoder(bytes.NewReader(raw))\n\tdec.DisallowUnknownFields()\n"+ + "\tif err := dec.Decode(&v); err != nil {\n\t\treturn v, err\n\t}\n\tif dec.More() {\n\t\treturn v, errors.New(\"text after the value\")\n\t}\n\treturn v, nil\n}\n\n", + vn, s.Name, kf.Key, vn, vn, vn, vn) + } + } + return nil +} + +// goStatesImports is the import block a seat's states need: the strict reader always, the parser's string functions +// where a key form has a literal or a part that is not last. +func goStatesImports(states []seatdef.State) string { + needStrings := false + for _, s := range states { + for _, kf := range s.KeyForms { + ts, _ := keyTokens(kf.Key) + for i, t := range ts { + if !t.part || i+1 < len(ts) { + needStrings = true + } + } + } + } + out := "import (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n" + if needStrings { + out += "\t\"strings\"\n" + } + return out + ")\n\n" +} + +// tsStates writes a seat's states for TypeScript: the local names, and for each key form its builder and parser, as +// JavaScript and as declarations (the value's type is declared with the seat's other types). +func tsStates(o *tsOut, states []seatdef.State) error { + names := make([]string, len(states)) + for i, s := range states { + names[i] = s.Name + } + tsNames(o, "states", names) + for _, s := range states { + for _, kf := range s.KeyForms { + ts, err := keyTokens(kf.Key) + if err != nil { + return fmt.Errorf("state %s: %w", s.Name, err) + } + fn := tsName(formIdent(s.Name, kf.Key, ts)) + var args, params, expr, fields, got []string + for _, t := range ts { + if t.part { + p := paramName(t.text) + args = append(args, p+": string") + params = append(params, p) + expr = append(expr, p) + fields = append(fields, p+": string") + got = append(got, p) + } else { + expr = append(expr, strconv.Quote(t.text)) + } + } + doc := fmt.Sprintf("/** The key of one value of the state %s under the form %s. */\n", s.Name, strconv.Quote(kf.Key)) + o.dts.WriteString(doc) + fmt.Fprintf(&o.dts, "export declare function %sKey(%s): string;\n\n", fn, strings.Join(args, ", ")) + o.js.WriteString(doc) + fmt.Fprintf(&o.js, "export function %sKey(%s) {\n return %s;\n}\n\n", fn, strings.Join(params, ", "), strings.Join(expr, " + ")) + doc = fmt.Sprintf("/** The parts of a key of the form %s, or undefined for a key of another form. */\n", strconv.Quote(kf.Key)) + o.dts.WriteString(doc) + fmt.Fprintf(&o.dts, "export declare function parse%sKey(_key: string): { %s } | undefined;\n\n", ident(fn), strings.Join(fields, "; ")) + b := &o.js + b.WriteString(doc) + fmt.Fprintf(b, "export function parse%sKey(_key) {\n let _rest = _key;\n", ident(fn)) + for i := 0; i < len(ts); { + t := ts[i] + switch { + case !t.part: + fmt.Fprintf(b, " if (!_rest.startsWith(%s)) return undefined;\n _rest = _rest.slice(%d);\n", strconv.Quote(t.text), len(t.text)) + i++ + case i+1 < len(ts): + fmt.Fprintf(b, " const _at%d = _rest.indexOf(%s);\n if (_at%d <= 0) return undefined;\n const %s = _rest.slice(0, _at%d);\n _rest = _rest.slice(_at%d + %d);\n", + i, strconv.Quote(ts[i+1].text), i, paramName(t.text), i, i, len(ts[i+1].text)) + i += 2 + default: + fmt.Fprintf(b, " if (_rest === \"\") return undefined;\n const %s = _rest;\n _rest = \"\";\n", paramName(t.text)) + i++ + } + } + fmt.Fprintf(b, " if (_rest !== \"\") return undefined;\n return { %s };\n}\n\n", strings.Join(got, ", ")) + } + } + return nil +} diff --git a/modules/mesh-delivery-sdk/seatgen/states_test.go b/modules/mesh-delivery-sdk/seatgen/states_test.go new file mode 100644 index 00000000..01c6b3d7 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/states_test.go @@ -0,0 +1,124 @@ +package seatgen + +import ( + "os" + "os/exec" + "path/filepath" + re "regexp" + "strings" + "testing" +) + +// TestAStateHasItsNamesKeyFormsAndStrictValues is ADR 0634 §6's generator check for `states`: a seat's states give a +// constant per local name, per key form a builder, a parser and a strict reader of the value, and the fixtures of +// `state:` decode into those types. The generated seat package is written out and run with `go vet` and `go test`, so +// what the generator writes is compiled, not only read. +func TestAStateHasItsNamesKeyFormsAndStrictValues(t *testing.T) { + m, err := Load("testdata/contracts", "example.org/contracts/go", "@example/contracts") + if err != nil { + t.Fatal(err) + } + files, err := Generate(m) + if err != nil { + t.Fatal(err) + } + src := string(files["go/seats/aregistry/contract.go"]) + for _, want := range []string{ + "func AsksByAskerIDKey(asker, id string) string", "func ParseAsksByAskerIDKey(key string) (string, string, bool)", + "func DecodeAsksByAskerIDValue(raw []byte)", "type AsksByAskerIDValue struct", + "func AsksByAskerIDDoneKey(", "func AsksByDefaultsKey() string", + "func LocalNameBySeenIDOfAskKey(idOfAsk string) string", + } { + if !strings.Contains(src, want) { + t.Errorf("the seat's package lacks %q:\n%s", want, src) + } + } + for _, c := range []string{`StateAsks\s+= "asks"`, `StateLocalName\s+= "local-name"`} { + if !re.MustCompile(c).MatchString(src) { + t.Errorf("the seat's package lacks a constant %s", c) + } + } + if strings.Contains(src, "Record") { + t.Errorf("the seat's package still names a record:\n%s", src) + } + js := string(files["ts/seats/aregistry/index.js"]) + dts := string(files["ts/seats/aregistry/index.d.ts"]) + for file, wants := range map[string][]string{ + js: {"export const states = {", "export function asksByAskerIDKey(asker, id) {", "export function parseAsksByAskerIDKey(_key) {", + "export function parseAsksByNodeModuleKeyKey(_key) {", "const key = _rest;"}, + dts: {"export declare const states: {", "export declare function asksByAskerIDKey(asker: string, id: string): string;", + "export declare function parseAsksByAskerIDKey(_key: string)", "export interface AsksByAskerIDValue", + // a key form with a part named key: the parser's own parameter and locals are named apart from the parts + "export declare function parseAsksByNodeModuleKeyKey(_key: string): { node: string; module: string; key: string } | undefined;"}, + } { + for _, want := range wants { + if !strings.Contains(file, want) { + t.Errorf("the seat's npm package lacks %q:\n%s", want, file) + } + } + } + + dir := t.TempDir() + for p, b := range files { + if !strings.HasPrefix(p, "go/seats/aregistry/") { + continue + } + dst := filepath.Join(dir, strings.TrimPrefix(p, "go/seats/aregistry/")) + if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(dst, b, 0o644); err != nil { + t.Fatal(err) + } + } + extra := `package aregistry + +import "testing" + +func TestKeysAndValues(t *testing.T) { + if k := AsksByAskerIDKey("a", "7"); k != "a.7" { + t.Fatal(k) + } + if a, id, ok := ParseAsksByAskerIDKey("a.7"); !ok || a != "a" || id != "7" { + t.Fatal(a, id, ok) + } + for _, bad := range []string{"", "a", ".7", "a.", "a.7.done"} { + if bad == "a.7.done" { + continue // the id takes the rest: another form is told apart by its own parser + } + if _, _, ok := ParseAsksByAskerIDKey(bad); ok { + t.Errorf("%q parsed", bad) + } + } + if a, id, ok := ParseAsksByAskerIDDoneKey("a.7.done"); !ok || a != "a" || id != "7" { + t.Fatal(a, id, ok) + } + if _, _, ok := ParseAsksByAskerIDDoneKey("a.7"); ok { + t.Error("a key without its literal parsed") + } + if !ParseAsksByDefaultsKey("defaults") || ParseAsksByDefaultsKey("defaultsx") { + t.Error("a literal key") + } + if _, err := DecodeAsksByAskerIDValue([]byte(` + "`" + `{"state":"open","extra":1}` + "`" + `)); err == nil { + t.Error("a field the type does not know was taken") + } + if _, err := DecodeAsksByAskerIDValue([]byte(` + "`" + `{"state":"open"} {}` + "`" + `)); err == nil { + t.Error("text after the value was taken") + } + if v, err := DecodeAsksByAskerIDValue([]byte(` + "`" + `{"state":"open","since":3}` + "`" + `)); err != nil || v.State != "open" { + t.Error(v, err) + } +} +` + if err := os.WriteFile(filepath.Join(dir, "extra_test.go"), []byte(extra), 0o644); err != nil { + t.Fatal(err) + } + for _, args := range [][]string{{"vet", "./..."}, {"test", "./..."}} { + cmd := exec.Command("go", args...) + cmd.Dir = dir + cmd.Env = append(os.Environ(), "GOWORK=off", "GOFLAGS=-mod=mod") + if out, err := cmd.CombinedOutput(); err != nil { + t.Fatalf("go %s on the generated package: %v\n%s", strings.Join(args, " "), err, out) + } + } +} diff --git a/modules/mesh-delivery-sdk/seatgen/testdata/contracts/parts/registry.json b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/parts/registry.json new file mode 100644 index 00000000..d5a44e1b --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/parts/registry.json @@ -0,0 +1,3 @@ +{"format":1,"part":"registry","verbs":[{"name":"publish","input":{"$ref":"#/defs/Ref"},"answer":{"type":"object"}}], + "events":[{"name":"published","body":{"$ref":"#/defs/Ref"}}], + "defs":{"Ref":{"type":"object","properties":{"digest":{"type":"string"},"at":{"type":"string","format":"date-time"},"pushed":{"type":"string","format":"date-time"},"floor":{"type":["number","null"]},"limit":{"type":["integer","null"]},"label":{"type":["string","null"]},"on":{"type":["boolean","null"]},"reason":{"type":"string","enum":["tag-gone","retention"]}},"required":["digest","pushed"]}}} diff --git a/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/fixtures/states.json b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/fixtures/states.json new file mode 100644 index 00000000..e6823154 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/fixtures/states.json @@ -0,0 +1,3 @@ +[{"name":"an ask","of":"state:asks/.","given":{"state":"open","since":3}}, + {"name":"a finished ask","of":"state:asks/..done","given":{"outcome":"refused"}}, + {"name":"the defaults","of":"state:asks/defaults","given":{"any":"thing"}}] diff --git a/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/seat.json b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/seat.json new file mode 100644 index 00000000..dbcd3a8a --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/a-registry/seat.json @@ -0,0 +1,23 @@ +{"format":1,"seat":"a-registry","scope":"mesh","grain":"whole","domain":"Module","decision":"ADR 1","includes":["registry"], + "verbs":[{"name":"hold","class":"read","callers":["invokers","persons","sessions","seat:b-registry","module:gitea","operator","healers","holder:node-backup@same-node"],"input":{"type":"object"},"answer":{"type":"object"}}, + {"name":"peek","input":{"type":"object"},"answer":{"$ref":"#/bodies/Finding"}}], + "accepts":[ + {"name":"step","stream":"check","body":{"type":"object","properties":{"id":{"type":"string"}}}}, + {"name":"step","stream":"delivery","body":{"type":"object"}}, + {"name":"run","stream":"check","body":{"type":"object"}}], + "bodies":{"Finding":{"type":"object","properties":{"id":{"type":"string"},"owner":{"type":"string"},"related":{"type":"array","items":{"$ref":"#/bodies/Finding"}}},"required":["id"]}}, + "acts":[{"step":"build","on":"kind:image","bound":"60m"},{"step":"check","on":"every"},{"step":"build","on":"go"}], + "events":[ + {"name":"milestone-asked","subject":"milestone-asked.","body":{"type":"object"},"keep":{"max-age-days":90,"max-mib":16,"last-per-subject":true}}, + {"name":"owed","subject":"owed..","body":{"type":"object"},"keep":{"max-age-days":7,"max-mib":64}}, + {"name":"step-ended","subject":"step-ended.","body":{"type":"object"}}], + "family":{"name":"a-registry.events","max-age-days":7}, + "states":[ + {"name":"asks","template":"state","description":"the asks held, one key per asker and ask", + "key-forms":[ + {"key":".","value":{"type":"object","properties":{"state":{"type":"string"},"since":{"type":"integer"}},"required":["state"]}}, + {"key":"..done","value":{"type":"object","properties":{"outcome":{"type":"string"}},"required":["outcome"]}}, + {"key":"..","value":{"type":"object","description":"a part named key beside the parser's own parameter"}}, + {"key":"defaults","value":{"type":"object","description":"free"}}]}, + {"name":"local-name","template":"events","max-age-days":3, + "key-forms":[{"key":"seen.","value":{"type":"string"}}]}]} diff --git a/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/b-registry/seat.json b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/b-registry/seat.json new file mode 100644 index 00000000..984e450a --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/b-registry/seat.json @@ -0,0 +1,3 @@ +{"format":1,"seat":"b-registry","scope":"mesh","grain":"whole","domain":"Module","decision":"ADR 1","includes":["registry"], + "verbs":[{"name":"hold","input":{"type":"object"},"answer":{"type":"object"}}], + "family":{"name":"b-registry.events","max-age-days":7}} diff --git a/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/one-store/seat.json b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/one-store/seat.json new file mode 100644 index 00000000..f742e27f --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/testdata/contracts/seats/one-store/seat.json @@ -0,0 +1 @@ +{"format":1,"seat":"one-store","scope":"mesh","grain":"seat-list","domain":"Module","decision":"ADR 1","verbs":[{"name":"query","input":{"type":"object"}}]} diff --git a/modules/mesh-delivery-sdk/seatgen/tsgen.go b/modules/mesh-delivery-sdk/seatgen/tsgen.go new file mode 100644 index 00000000..352c2cb5 --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/tsgen.go @@ -0,0 +1,260 @@ +package seatgen + +import ( + "bytes" + "encoding/json" + "fmt" + "strconv" + "strings" + + "git.novox.be/novox/mesh-sdk/go/seatdef" +) + +const tsHeader = "// Code generated by seatgen from the seat definitions; DO NOT EDIT.\n\n" + +// TSSeatDir is where a seat defined whole has its npm package (ADR 0625 §1): the indexer counts the npm package a +// lock resolves, so each such seat is a package of its own and a module is rebuilt only for the seats it uses. +func TSSeatDir(seat string) string { return "ts/seats/" + pkgName(seat) } + +// TSSeatPackage is the npm package name of a seat defined whole, beside the seat set's package root. +func TSSeatPackage(root, seat string) string { return root + "-" + seat } + +// tsPackage writes one npm package's package.json and its dependency-free package-lock.json at dir. The package ships +// its contract as JavaScript with its declarations (design 47 G §341): its importers need no build step of its own and +// nothing runs tsc over it, so it has no tsconfig.json and no script (F7: a generated package has no dependency, and its +// lock, which the build module requires of a package artifact, holds none). +func tsPackage(out map[string][]byte, dir, name, description string) { + pkg := map[string]any{ + "name": name, "version": "0.1.0", "type": "module", + "description": description, + "exports": map[string]any{".": map[string]any{"types": "./index.d.ts", "default": "./index.js"}}, + "types": "./index.d.ts", + "files": []any{"index.js", "index.d.ts", "parts"}, + } + raw, _ := json.MarshalIndent(pkg, "", " ") + out[dir+"/package.json"] = append(raw, '\n') + lock := map[string]any{ + "name": name, "version": "0.1.0", "lockfileVersion": 3, "requires": true, + "packages": map[string]any{"": map[string]any{"name": name, "version": "0.1.0"}}, + } + raw, _ = json.MarshalIndent(lock, "", " ") + out[dir+"/package-lock.json"] = append(raw, '\n') +} + +// tsOut is one contract file as its two forms: the JavaScript module a TypeScript module imports and the declarations +// that type it (design 47 G §341). +type tsOut struct{ js, dts bytes.Buffer } + +// tsFiles writes the npm side: one package per seat defined whole at TSSeatDir (ADR 0625 §1), holding the parts it +// includes whole and importing nothing outside it. Each file is a JavaScript module with its declarations beside it +// (`index.js` and `index.d.ts`, `parts/.js` and `parts/.d.ts`; design 47 G §341). +func tsFiles(m *Module, out map[string][]byte) error { + partTypes := map[string]*typer{} + partFiles := map[string]*tsOut{} + for _, name := range sortedKeys(m.Parts) { + p := m.Parts[name] + d := seatdef.Definition{Grain: seatdef.Whole, Verbs: p.Verbs, Events: p.Events, Defs: p.Defs} + tp, err := declareAll(d, nil) + if err != nil { + return err + } + partTypes[name] = tp + o := &tsOut{} + o.js.WriteString(tsHeader) + o.dts.WriteString(tsHeader) + note := fmt.Sprintf("// The part %q several seats include whole: %s\n\n", p.Part, oneLine(p.Description)) + o.js.WriteString(note) + o.dts.WriteString(note) + tsNames(o, "verbs", seatdef.VerbNames(p.Verbs)) + tsNames(o, "events", seatdef.MessageNames(p.Events)) + o.js.WriteString("export {};\n") + tsTypes(&o.dts, tp) + partFiles[name] = o + } + for _, name := range m.Order { + d := m.Seats[name] + if d.Grain != seatdef.Whole { + continue + } + dir := TSSeatDir(name) + tsPackage(out, dir, TSSeatPackage(m.TSPackage, name), fmt.Sprintf("The contract of the seat %s, generated from its definition.", name)) + raw := m.Raw[name] + fromPart := map[string]string{} + for _, inc := range raw.Includes { + for _, t := range partTypes[inc].types { + fromPart[t.name] = inc + } + out[dir+"/parts/"+inc+".js"] = partFiles[inc].js.Bytes() + out[dir+"/parts/"+inc+".d.ts"] = partFiles[inc].dts.Bytes() + } + tp, err := declareAll(d, fromPart) + if err != nil { + return err + } + o := &tsOut{} + o.js.WriteString(tsHeader) + o.dts.WriteString(tsHeader) + note := fmt.Sprintf("// The contract of the seat %q, defined whole (seats/%s/seat.json): %s\n\n", d.Seat, d.Seat, oneLine(d.Description)) + o.js.WriteString(note) + o.dts.WriteString(note) + for _, inc := range raw.Includes { + fmt.Fprintf(&o.dts, "import type * as %s from \"./parts/%s.js\";\n\n", tsName(inc), inc) + } + fmt.Fprintf(&o.js, "export const seat = %q;\n\n", d.Seat) + fmt.Fprintf(&o.dts, "export declare const seat: %q;\n\n", d.Seat) + tsNames(o, "verbs", seatdef.VerbNames(d.Verbs)) + tsNames(o, "accepts", acceptNames(d.Accepts)) + tsNames(o, "events", seatdef.MessageNames(d.Events)) + if f := d.Family; f != nil { + fmt.Fprintf(&o.js, "export const family = { name: %q, maxAgeDays: %d };\n\n", f.Name, f.MaxAgeDays) + fmt.Fprintf(&o.dts, "export declare const family: { readonly name: %q; readonly maxAgeDays: %d };\n\n", f.Name, f.MaxAgeDays) + } + for _, e := range d.Events { + if e.Keep != nil { + fmt.Fprintf(&o.js, "export const %sStream = %q;\n\n", tsName(e.Name), keptStream(d.Seat, e.Name)) + fmt.Fprintf(&o.dts, "export declare const %sStream: %q;\n\n", tsName(e.Name), keptStream(d.Seat, e.Name)) + } + if parts := e.Parts(); len(parts) > 0 { + tsPartsSubject(o, d.Seat, e, parts) + continue + } + tsSubject(o, tsName(e.Name), seatdef.EventSubject(d.Seat, e.Name), e.ByCaller) + } + for _, a := range d.Accepts { + tsSubject(o, tsName(acceptName(a)), seatdef.AcceptSubject(d.Seat, acceptName(a)), a.ByCaller) + } + if len(d.HolderEvents) > 0 { + tsNames(o, "holderEvents", holderNames(d.HolderEvents)) + for _, e := range d.HolderEvents { + before, after, _ := strings.Cut(e.Subject, "") + fmt.Fprintf(&o.js, "export function %sHolderSubject(holder) {\n return %q + holder + %q;\n}\n\n", tsName(e.Name), before, after) + fmt.Fprintf(&o.dts, "export declare function %sHolderSubject(holder: string): string;\n\n", tsName(e.Name)) + } + } + if len(d.States) > 0 { + if err := tsStates(o, d.States); err != nil { + return err + } + } + for _, n := range sortedKeys(fromPart) { + fmt.Fprintf(&o.dts, "export type %s = %s.%s;\n", n, tsName(fromPart[n]), n) + } + if len(fromPart) > 0 { + o.dts.WriteString("\n") + } + tsTypes(&o.dts, tp) + out[dir+"/index.js"] = o.js.Bytes() + out[dir+"/index.d.ts"] = o.dts.Bytes() + } + return nil +} + +// tsSubject writes the constant, or for a subject ending in the caller's name the function, of one subject. +func tsSubject(o *tsOut, name, subj string, byCaller bool) { + if byCaller { + fmt.Fprintf(&o.js, "export function %sSubject(caller) {\n return %q + caller;\n}\n\n", name, subj+".") + fmt.Fprintf(&o.dts, "export declare function %sSubject(caller: string): string;\n\n", name) + return + } + fmt.Fprintf(&o.js, "export const %sSubject = %q;\n\n", name, subj) + fmt.Fprintf(&o.dts, "export declare const %sSubject: %q;\n\n", name, subj) +} + +func holderNames(es []seatdef.HolderEvent) []string { + out := make([]string, len(es)) + for i, e := range es { + out[i] = e.Name + } + return out +} + +func tsNames(o *tsOut, what string, names []string) { + if len(names) == 0 { + return + } + fmt.Fprintf(&o.js, "export const %s = {\n", what) + fmt.Fprintf(&o.dts, "export declare const %s: {\n", what) + for _, n := range names { + fmt.Fprintf(&o.js, " %s: %q,\n", tsName(n), n) + fmt.Fprintf(&o.dts, " readonly %s: %q;\n", tsName(n), n) + } + o.js.WriteString("};\n\n") + o.dts.WriteString("};\n\n") +} + +func tsTypes(b *bytes.Buffer, tp *typer) { + for _, t := range tp.types { + if d := strings.TrimSpace(t.desc); d != "" { + fmt.Fprintf(b, "/** %s */\n", oneLine(d)) + } + if t.t.kind != "struct" { + fmt.Fprintf(b, "export type %s = %s;\n\n", t.name, tsType(t.t)) + continue + } + fmt.Fprintf(b, "export interface %s {\n", t.name) + for _, f := range t.t.fields { + if f.desc != "" { + fmt.Fprintf(b, " /** %s */\n", oneLine(f.desc)) + } + opt := "?" + if f.required { + opt = "" + } + fmt.Fprintf(b, " %s%s: %s;\n", strconv.Quote(f.json), opt, tsType(f.t)) + } + b.WriteString("}\n\n") + } +} + +func tsType(t *typ) string { + if t.null { + n := *t + n.null = false + return tsType(&n) + " | null" + } + switch t.kind { + case "string": + if len(t.enum) > 0 { + parts := make([]string, len(t.enum)) + for i, e := range t.enum { + parts[i] = strconv.Quote(e) + } + return strings.Join(parts, " | ") + } + return "string" + case "time": + return "string" + case "integer", "number": + return "number" + case "boolean": + return "boolean" + case "object": + return "Record" + case "map": + return "Record" + case "slice": + el := tsType(t.elem) + if strings.Contains(el, "|") { + el = "(" + el + ")" + } + return el + "[]" + case "ref": + return t.ref + } + return "unknown" +} + +// tsPartsSubject writes the subject of an event whose subject carries parts, as goPartsSubject does. +func tsPartsSubject(o *tsOut, seat string, e seatdef.Message, parts []string) { + args := make([]string, len(parts)) + names := make([]string, len(parts)) + for i, p := range parts { + names[i] = goParam(p) + args[i] = names[i] + ": string" + } + all := "mesh.seat." + seat + ".event." + e.Local() + fmt.Fprintf(&o.js, "export function %sSubject(%s) {\n return %s;\n}\n\n", tsName(e.Name), strings.Join(names, ", "), strings.Join(subjectExpr(seat, e), " + ")) + fmt.Fprintf(&o.js, "export const %sSubjectAll = %q;\n\n", tsName(e.Name), all) + fmt.Fprintf(&o.dts, "export declare function %sSubject(%s): string;\n\n", tsName(e.Name), strings.Join(args, ", ")) + fmt.Fprintf(&o.dts, "export declare const %sSubjectAll: %q;\n\n", tsName(e.Name), all) +} diff --git a/modules/mesh-delivery-sdk/seatgen/types.go b/modules/mesh-delivery-sdk/seatgen/types.go new file mode 100644 index 00000000..c44cb57e --- /dev/null +++ b/modules/mesh-delivery-sdk/seatgen/types.go @@ -0,0 +1,192 @@ +package seatgen + +import ( + "fmt" + "sort" + "strings" +) + +// A typ is one JSON Schema read as a type both languages write: the subset the definitions use (objects with +// properties, maps, arrays, strings, integers, numbers, booleans, references to a definition's own types). Anything +// else is `any`, so a schema the generator does not understand still decodes. +type typ struct { + kind string // string, time (a string of format date-time), integer, number, boolean, any, map, slice, struct, ref, object (free) + elem *typ // a map's value or a slice's item + ref string // a referenced type's name + fields []field + enum []string + null bool // a scalar typed ["T","null"]: Go writes *T, TypeScript T | null, so a declared zero survives +} + +type field struct { + json string + required bool + desc string + t *typ +} + +// named is one type a seat's package declares: a struct, or an alias of another. +type named struct { + name string + desc string + t *typ +} + +// typer reads schemas into named types, naming each inline object by where it sits. +type typer struct { + types []named + taken map[string]bool +} + +func newTyper() *typer { return &typer{taken: map[string]bool{}} } + +// declare reads schema s as the type called name and declares it. +func (tp *typer) declare(name, desc string, s map[string]any) error { + if tp.taken[name] { + return fmt.Errorf("two types would be called %s", name) + } + tp.taken[name] = true + t, err := tp.read(name, s, true) + if err != nil { + return fmt.Errorf("%s: %w", name, err) + } + if desc == "" { + desc, _ = s["description"].(string) + } + tp.types = append(tp.types, named{name: name, desc: desc, t: t}) + return nil +} + +func (tp *typer) read(where string, s map[string]any, top bool) (*typ, error) { + if s == nil { + return &typ{kind: "any"}, nil + } + if r, ok := s["$ref"].(string); ok { + // A reference into `bodies` is read as one into `defs` (design 47 G §454). + n, found := strings.CutPrefix(r, "#/defs/") + if !found { + n, found = strings.CutPrefix(r, "#/bodies/") + } + if !found || n == "" { + return nil, fmt.Errorf("$ref %q is not #/defs/ or #/bodies/", r) + } + return &typ{kind: "ref", ref: n}, nil + } + t, _ := s["type"].(string) + if list, ok := s["type"].([]any); ok { + // ["T","null"] with T a scalar is a nullable T; any other list of types stays `any`. + var base string + null := false + for _, v := range list { + switch str, _ := v.(string); str { + case "null": + null = true + case "number", "integer", "string", "boolean": + if base != "" { + base = "?" + } else { + base = str + } + default: + base = "?" + } + } + if null && base != "" && base != "?" { + inner := make(map[string]any, len(s)) + for k, v := range s { + inner[k] = v + } + inner["type"] = base + out, err := tp.read(where, inner, top) + if err != nil { + return nil, err + } + if out.kind == "time" { + return out, nil + } + out.null = true + return out, nil + } + } + switch t { + case "string": + out := &typ{kind: "string"} + if f, _ := s["format"].(string); f == "date-time" { + // A moment: Go writes time.Time (RFC 3339 on the wire), TypeScript the string (ADR 0634). + return &typ{kind: "time"}, nil + } + if e, ok := s["enum"].([]any); ok { + for _, v := range e { + if str, ok := v.(string); ok { + out.enum = append(out.enum, str) + } + } + } + return out, nil + case "integer", "number", "boolean": + return &typ{kind: t}, nil + case "array": + items, _ := s["items"].(map[string]any) + el, err := tp.inline(where+"Item", items) + if err != nil { + return nil, err + } + return &typ{kind: "slice", elem: el}, nil + case "object": + props, hasProps := s["properties"].(map[string]any) + if !hasProps { + if ap, ok := s["additionalProperties"].(map[string]any); ok { + el, err := tp.inline(where+"Value", ap) + if err != nil { + return nil, err + } + return &typ{kind: "map", elem: el}, nil + } + return &typ{kind: "object"}, nil + } + required := map[string]bool{} + switch r := s["required"].(type) { + case []any: + for _, v := range r { + if str, ok := v.(string); ok { + required[str] = true + } + } + case []string: + for _, v := range r { + required[v] = true + } + } + names := make([]string, 0, len(props)) + for k := range props { + names = append(names, k) + } + sort.Strings(names) + out := &typ{kind: "struct"} + for _, k := range names { + ps, _ := props[k].(map[string]any) + ft, err := tp.inline(where+ident(k), ps) + if err != nil { + return nil, err + } + desc, _ := ps["description"].(string) + out.fields = append(out.fields, field{json: k, required: required[k], desc: desc, t: ft}) + } + return out, nil + } + return &typ{kind: "any"}, nil +} + +// inline is a nested schema's type: an object with properties becomes a named type of its own, called where. +func (tp *typer) inline(where string, s map[string]any) (*typ, error) { + if s != nil { + if _, props := s["properties"].(map[string]any); props && s["type"] == "object" { + desc, _ := s["description"].(string) + if err := tp.declare(where, desc, s); err != nil { + return nil, err + } + return &typ{kind: "ref", ref: where}, nil + } + } + return tp.read(where, s, false) +} diff --git a/modules/mesh-delivery-sdk/steprun/askrun.go b/modules/mesh-delivery-sdk/steprun/askrun.go new file mode 100644 index 00000000..cc8dc951 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/askrun.go @@ -0,0 +1,565 @@ +package steprun + +import ( + "context" + "encoding/json" + "fmt" + "maps" + "path" + "slices" + "sort" + "strings" + + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + trunk "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/trunk" +) + +// **One ask, one whole job** (novox/hq ADR 0525 §3). A build module runs a pulled ask with its own step tools' bodies, +// the same ones its request and reply tools run (ADR 0525 §8), in the order the job names: a build ask fetches, then +// builds or copies each artifact; a check ask fetches, digests the level, takes the kept verdicts and tests the rest, +// the packages whose tests the change touches first. The answers are the tools' own, whole, so the asker judges them as +// it judged the tools' answers. + +// StepFunc is one step tool's body: its arguments in, its answer out. +type StepFunc func(ctx context.Context, args map[string]any) (any, error) + +// AskSteps are the step tools a build module runs an ask with. Copy is the image module's alone; Digest the Go module's. +type AskSteps struct { + Fetch, Build, Copy, Digest, Test StepFunc + // Imports reads the mesh packages the built programs import (the Go module's alone, ADR 0593 §2): it answers + // {"imports": [...]}, sorted, from the workspace the build ran in. A build that built an artifact asks it once, at + // its end; nil reports none. + Imports StepFunc + // Compare regenerates a contracts module's generated files (a package artifact naming generated-from) and answers + // {"out-of-step": [...]} (CompareStep): a build ask runs it once on the fetched workspace and answers the paths in + // its out-of-step, a failed build's too, so a trunk build's end names them where no test step runs. Nil compares none. + Compare StepFunc + // Toolchain is the toolchain the module builds with now; a build ask naming another is declined (Declining). Nil checks nothing + // (an image or an archive names none). + Toolchain func(ctx context.Context) (sdkstep.ToolchainUsed, error) + // Kept looks up a kept verdict by level and digest (the checker's kept bucket, the checker seat's kept key): whether one is + // kept and how many tests it counted. Nil takes none. + Kept func(ctx context.Context, level, digest string) (tests int, found bool, err error) + // Release removes a workspace once the ask's steps on it ended (the module's release tool's body); nil leaves it to + // the module's sweep. + Release func(workspace string) error + Logf func(format string, args ...any) + // Has says whether this node has a need a package's tests declare (sdkstep.AskNeeds, issue 890); a package needing + // what it lacks is not tested here but named in the level's Unmet, for the asker to place. Nil has nothing. + Has func(need string) bool + // Lint is the module's lint body for a pipeline step lint (novox/hq ADR 0666 §7): it takes the workspace and the + // module's directory and answers a LintAnswer. Nil ends every lint step as nothing to run. + Lint StepFunc + // Node is the node this holder runs on, which a step's end names; SayStep says a pipeline step's end as the seat's + // event step-ended on that node's subject (sdkstep.StepEndedSubject), under the ask's id. Nil runs no step ask. + Node string + SayStep func(end sdkstep.StepEnded) error +} + +// RunAsk runs ask's job with steps and answers a sdkstep.BuildAnswer or a sdkstep.CheckAnswer. +func RunAsk(ctx context.Context, steps AskSteps, ask sdkstep.StepAsk) (any, error) { + if ask.Build != nil { + job := *ask.Build + job.Fetch = withPackages(job.Fetch, ask.Packages) + return steps.build(ctx, job) + } + if ask.Step != nil { + return steps.runStep(ctx, ask) + } + if ask.Check != nil { + job := *ask.Check + job.Fetch = *withPackages(&job.Fetch, ask.Packages) + return steps.check(ctx, job) + } + return nil, Refuse("the ask %s holds no job", ask.ID) +} + +// withPackages is the fetch's arguments with the ask's package versions (novox/hq ADR 0573 §2), which the build module +// writes into the workspace it fetches; a copy, so the ask is left as it was. An ask with none, or a copy alone that +// fetches nothing, is left as it is. +func withPackages(fetch *sdkstep.Fetch, packages sdkstep.PackageVersions) *sdkstep.Fetch { + if len(packages) == 0 || fetch == nil { + return fetch + } + out := *fetch + out.Packages = maps.Clone(packages) + return &out +} + +// FetchArgs is a fetch as the fetch tool takes it (sdkstep.FetchRequest's Args and the build module's own, beside): the +// ask's fetch through the one JSON form, without the layout version, which no tool takes. +func FetchArgs(f sdkstep.Fetch) (map[string]any, error) { + b, err := json.Marshal(f) + if err != nil { + return nil, err + } + args := map[string]any{} + if err := json.Unmarshal(b, &args); err != nil { + return nil, err + } + delete(args, "v") + return args, nil +} + +func raw(v any) (json.RawMessage, error) { + if r, ok := v.(json.RawMessage); ok { + return r, nil + } + return json.Marshal(v) +} + +// fetched is what an ask reads of a fetch's answer. +type fetched struct { + Workspace string `json:"workspace"` + Merge string `json:"merge"` + Conflicts []string `json:"conflicts"` + Changed []string `json:"changed"` + Modules []string `json:"modules"` +} + +func (s AskSteps) fetch(ctx context.Context, fetch *sdkstep.Fetch) (json.RawMessage, fetched, error) { + if s.Fetch == nil { + return nil, fetched{}, Refuse("this build module fetches nothing") + } + if fetch == nil { + return nil, fetched{}, Refuse("the ask names no fetch") + } + args, err := FetchArgs(*fetch) + if err != nil { + return nil, fetched{}, err + } + if fetch.Base != "" { + Phase(ctx, "fetch and merge") + } else { + Phase(ctx, "fetch") + } + out, err := s.Fetch(ctx, args) + if err != nil { + return nil, fetched{}, err + } + r, err := raw(out) + if err != nil { + return nil, fetched{}, err + } + var f fetched + if err := json.Unmarshal(r, &f); err != nil || f.Workspace == "" { + return r, f, fmt.Errorf("the fetch answered no workspace: %s", r) + } + return r, f, nil +} + +// onToolchain is the toolchain this node builds with when the ask names one and this module reports its own, nil when +// either is absent. A node on another toolchain than the ask names answers a Declining: it is not on the agreed one and +// sits out, for a node that is to take the ask (novox/hq ADR 0584 clause 2). +func (s AskSteps) onToolchain(ctx context.Context, want *sdkstep.ToolchainUsed) (*sdkstep.ToolchainUsed, error) { + if want == nil || s.Toolchain == nil { + return nil, nil + } + tc, err := s.Toolchain(ctx) + if err != nil { + return nil, err + } + if tc.Version != want.Version || tc.Recipe != want.Recipe { + return nil, &Declining{Lacks: []string{fmt.Sprintf("the agreed toolchain %s (recipe %s)", want.Version, want.Recipe)}, + Text: fmt.Sprintf("the ask is for %s (recipe %s) and this node builds with %s (recipe %s): it sits out, and the ask is left to a node on the agreed toolchain", + want.Version, want.Recipe, tc.Version, tc.Recipe)} + } + return &tc, nil +} + +func (s AskSteps) build(ctx context.Context, job sdkstep.BuildJob) (any, error) { + answer := sdkstep.BuildAnswer{} + tc, err := s.onToolchain(ctx, job.Toolchain) + if err != nil { + return nil, err + } + answer.Toolchain = tc + var f fetched + defer func() { s.release(f.Workspace) }() + for _, a := range job.Artifacts { + if a.From == "" && f.Workspace == "" { + r, got, err := s.fetch(ctx, job.Fetch) + if err != nil { + return nil, err + } + if job.Fetch.Base != "" { + // A candidate is built from its head merged onto the trunk; a head that does not merge leaves the tree at the + // trunk, and building that would store the trunk's build under the candidate's fingerprint. + if len(got.Conflicts) > 0 { + return nil, fmt.Errorf("the head does not merge into the trunk: files in conflict: %s", strings.Join(got.Conflicts, ", ")) + } + if got.Merge == "" { + return nil, fmt.Errorf("the fetch with a base answered no merge: %s", r) + } + } + f = got + if s.Compare != nil { + Phase(ctx, "compare the generated files") + out, err := s.Compare(ctx, map[string]any{"workspace": f.Workspace, "module": job.Path}) + if err != nil { + return nil, fmt.Errorf("the generated files of %s: %w", job.Module, err) + } + r, err := raw(out) + if err != nil { + return nil, err + } + var read struct { + OutOfStep []string `json:"out-of-step"` + } + if err := json.Unmarshal(r, &read); err != nil { + return nil, fmt.Errorf("the compare of %s answered what is not a list: %s", job.Module, r) + } + answer.OutOfStep = read.OutOfStep + } + } + var ( + out any + err error + ) + if a.From != "" { + if s.Copy == nil { + return nil, Refuse("this build module copies no artifact (%s)", a.Artifact) + } + Phase(ctx, "copy "+a.Artifact) + out, err = s.Copy(ctx, map[string]any{"module": job.Module, "artifact": a.Artifact, "from": a.From}) + } else { + if s.Build == nil { + return nil, Refuse("this build module builds no artifact (%s)", a.Artifact) + } + args := map[string]any{"workspace": f.Workspace, "module": job.Path, "artifact": a.Artifact} + if job.Publish { + args["publish"] = true + } + // The fingerprint a build kept for the artifact store's holder is asked by (kept-artifact, milestone 47/G W12.5). + if job.Fp != "" { + args["fp"] = job.Fp + } + // The seat it is published through and the version the builder gave it (design 51 *Publishing*, CAT-BG2). + if a.Seat != "" { + args["seat"] = a.Seat + } + if a.Version != "" { + args["version"] = a.Version + } + Phase(ctx, "build "+a.Artifact) + out, err = s.Build(ctx, args) + } + if err != nil { + // The compare's out-of-step is answered with the failure, so the build's end still names it. + if len(answer.OutOfStep) > 0 { + return answer, fmt.Errorf("%s: %w", a.Artifact, err) + } + return nil, fmt.Errorf("%s: %w", a.Artifact, err) + } + r, err := raw(out) + if err != nil { + return nil, err + } + var built struct { + Digest string `json:"digest"` + Reference string `json:"reference"` + Kept string `json:"kept"` + } + if err := json.Unmarshal(r, &built); err != nil || built.Digest == "" { + return nil, fmt.Errorf("the build of %s answered no digest: %s", a.Artifact, r) + } + answer.Artifacts = append(answer.Artifacts, sdkstep.AskBuilt{Artifact: a.Artifact, Digest: built.Digest, Reference: built.Reference}) + if built.Kept != "" { + answer.Kept = strings.TrimPrefix(built.Kept, "sha256:") + } + } + if s.Imports != nil && f.Workspace != "" { + out, err := s.Imports(ctx, map[string]any{"workspace": f.Workspace, "module": job.Path}) + if err != nil { + return nil, fmt.Errorf("the imports of %s: %w", job.Module, err) + } + r, err := raw(out) + if err != nil { + return nil, err + } + var read struct { + Imports []string `json:"imports"` + } + if err := json.Unmarshal(r, &read); err != nil { + return nil, fmt.Errorf("the imports of %s answered what is not a list: %s", job.Module, r) + } + if err := trunk.CheckImports(read.Imports); err != nil { + return nil, err + } + answer.Imports = read.Imports + } + return answer, nil +} + +func (s AskSteps) check(ctx context.Context, job sdkstep.CheckJob) (any, error) { + if _, err := s.onToolchain(ctx, job.Toolchain); err != nil { + return nil, err + } + r, f, err := s.fetch(ctx, &job.Fetch) + if err != nil { + return nil, err + } + defer s.release(f.Workspace) + answer := sdkstep.CheckAnswer{} + if err := json.Unmarshal(r, &answer.Fetch); err != nil { + return nil, fmt.Errorf("the fetch answered what is not a fetch answer: %s: %w", r, err) + } + if len(f.Conflicts) > 0 { + return answer, nil // the asker reads the conflict from the fetch's answer: a verdict, not an error + } + if s.Test == nil { + return nil, Refuse("this build module tests nothing") + } + runner := "" + if job.Runner != "" && (job.RunnerWhen == "" || changesUnder(f.Changed, job.RunnerWhen)) { + runner = job.Runner + } + // Every level runs, also after one that did not pass: one check names every failure, not only the first (the operator, + // 2026-11-02: "A failed check shows only its first fault"). + for _, level := range job.Levels { + la := sdkstep.LevelAnswer{Level: level} + _, err := s.level(ctx, job, level, f, runner, &la) + answer.Levels = append(answer.Levels, la) + if err != nil { + return nil, err + } + } + return answer, nil +} + +// level runs one level of a check ask and says whether it passed. +func (s AskSteps) level(ctx context.Context, job sdkstep.CheckJob, level string, f fetched, runner string, la *sdkstep.LevelAnswer) (bool, error) { + withRunner := func(args map[string]any) map[string]any { + if runner != "" { + args["runner"] = runner + } + if len(job.NodeNames) > 0 { + args[sdkstep.NodeNamesArg] = job.NodeNames // the names check's (ADR 0567 §12) + } + return args + } + test := func(args map[string]any) (bool, error) { + what := "the whole level" + if dir, _ := args["module"].(string); dir != "" { + what = dir + } else if pkgs, _ := args["packages"].([]string); len(pkgs) > 0 { + what = fmt.Sprintf("%d packages", len(pkgs)) + } + Phase(ctx, fmt.Sprintf("%s: tests of %s", level, what)) + out, err := s.Test(ctx, args) + if err != nil { + return false, err + } + r, err := raw(out) + if err != nil { + return false, err + } + la.Tests = append(la.Tests, r) + var t struct { + Passed bool `json:"passed"` + } + _ = json.Unmarshal(r, &t) + return t.Passed, nil + } + // The packages (or Node directories) whose tests the change touches run first (issue 1289; ADR 0444), and then every + // other test step of the level, also after one that did not pass, so one check names every failing test of the level + // and not only the first (issue 1921; the operator, 2026-11-02); the level passes only when each of its steps did. + all := true + if s.Digest == nil { + // A module with no digest (Node) tests each module directory of the tree, those whose tests changed first. + for _, priority := range []bool{true, false} { + for _, dir := range f.Modules { + if changesTestIn(f.Changed, dir) != priority { + continue + } + passed, err := test(withRunner(map[string]any{"workspace": f.Workspace, "module": dir, "level": level})) + if err != nil { + return false, fmt.Errorf("the %s level of %s: %w", level, dir, err) + } + all = all && passed + } + } + return all, nil + } + todo, whole, keepRunner := s.plan(ctx, job, level, f, runner, withRunner, la) + if !keepRunner { + runner = "" // an installed module that ignores the runner judges the level as it judges any other (ADR 0535 §2) + } + if whole && len(job.Packages) > 0 { + todo, whole = job.Packages, false // a placed ask tests its packages alone, whatever the digest said (ADR 0552 §4) + } + for _, priority := range []bool{true, false} { + args := withRunner(map[string]any{"workspace": f.Workspace, "level": level}) + if job.Run != "" { + args["run"] = job.Run + } + if whole { + if priority { + continue // nothing to put first: the level runs whole after + } + } else { + var run []string + for _, p := range todo { + if changesTestOf(f.Changed, p) == priority { + run = append(run, p) + } + } + if len(run) == 0 { + continue + } + args["packages"] = run + } + passed, err := test(args) + if err != nil { + return false, fmt.Errorf("the %s level: %w", level, err) + } + all = all && passed // the others still run after a failure (issue 1921) + } + return all, nil +} + +// release removes an ask's workspace, saying a failure: the module's sweep removes it later. +func (s AskSteps) release(workspace string) { + if workspace == "" || s.Release == nil { + return + } + if err := s.Release(workspace); err != nil && s.Logf != nil { + s.Logf("the workspace %s is left to the sweep: %v", workspace, err) + } +} + +// plan digests the level and takes the kept verdicts: the packages left to test, or all when the level runs whole, and +// whether the runner stays. A try of some tests runs whole, digesting nothing (a partial run proves no package). Under the +// candidate's runner the digest is asked as the candidate: when the candidate answers it, every package runs and nothing +// is digested for keeping (ADR 0535 §4); when the installed module answers it (it does not take the runner), the level is +// planned as any other and the runner is dropped. The level runs whole and takes nothing when the digest names no package +// or does not cover the siblings the fetch placed (ADR 0444, L5). +func (s AskSteps) plan(ctx context.Context, job sdkstep.CheckJob, level string, f fetched, runner string, withRunner func(map[string]any) map[string]any, la *sdkstep.LevelAnswer) ([]string, bool, bool) { + if job.Run != "" { + return nil, true, true + } + Phase(ctx, level+": digest") + out, err := s.Digest(ctx, withRunner(map[string]any{"workspace": f.Workspace, "level": level})) + if err != nil { + if s.Logf != nil { + s.Logf("no digest of the %s level, so it runs whole: %v", level, err) + } + return nil, true, true + } + r, err := raw(out) + if err != nil { + return nil, true, true + } + var d sdkstep.LevelDigest // packages kept as a sorted list, never keyed by a package path (issue 1930) + if err := json.Unmarshal(r, &d); err != nil { + return nil, true, true + } + if runner != "" { + if strings.HasPrefix(d.JudgedBy, "candidate ") { + la.Judged = d.JudgedBy + return nil, true, true // the candidate decides which verdicts would be taken: all run, nothing kept + } + runner = "" + } + if len(d.Packages) == 0 || !slices.Equal(d.Beside, besideOf(job.Fetch)) { + return nil, true, runner != "" // a digest that names nothing or not the siblings keys no verdict: the level runs whole + } + la.Digest = &d + only := map[string]bool{} + for _, p := range job.Packages { + only[p] = true + } + var todo []string + for _, pd := range d.Packages { + p := pd.Package + if len(only) > 0 && !only[p] { + continue // a placed ask's other packages were judged by the first ask (ADR 0552 §4) + } + if job.Kept && s.Kept != nil { + tests, found, err := s.Kept(ctx, level, pd.Digest) + if err != nil && s.Logf != nil { + s.Logf("the kept verdict of %s at %s cannot be read, so it runs: %v", p, level, err) + } + if err == nil && found { + la.Kept = append(la.Kept, sdkstep.KeptTaken{Package: p, Digest: pd.Digest, Tests: tests}) + continue + } + } + if needs := d.NeedsOf(p); len(sdkstep.Lacks(needs, s.Has)) > 0 { + // Its tests would only skip here (issue 890): it is left for a node that has what they need. + la.Unmet = append(la.Unmet, sdkstep.PackageNeeds{Package: p, Needs: needs}) + if s.Logf != nil { + s.Logf("the %s level of %s is left to a node with %s: this node lacks %s", level, p, + strings.Join(needs, ", "), strings.Join(sdkstep.Lacks(needs, s.Has), ", ")) + } + continue + } + todo = append(todo, p) + } + return todo, false, false +} + +// besideOf are the siblings a fetch's arguments place, as a digest echoes them: ` `, sorted. +func besideOf(fetch sdkstep.Fetch) []string { + var out []string + for _, r := range fetch.Beside { + out = append(out, r.Repository+" "+r.Commit) + } + sort.Strings(out) + return out +} + +// changesUnder says whether a path the merge changes is under prefix. +func changesUnder(changed []string, prefix string) bool { + for _, p := range changed { + if strings.HasPrefix(p, prefix) { + return true + } + } + return false +} + +// isTestFile says whether a repository-relative path is a test file: Go's _test.go, and a TypeScript module's .test. +// and .spec. files and test directories. +func isTestFile(p string) bool { + switch { + case strings.HasSuffix(p, "_test.go"): + return true + case strings.Contains(p, ".test.") || strings.Contains(p, ".spec."): + return true + } + for _, seg := range strings.Split(path.Dir(p), "/") { + if seg == "__tests__" || seg == "test" || seg == "tests" { + return true + } + } + return false +} + +// changesTestOf says whether the merge changes a test file of the Go package with the import path pkg: the file's +// directory and the import path agree on their last segments. +func changesTestOf(changed []string, pkg string) bool { + for _, f := range changed { + if !strings.HasSuffix(f, "_test.go") { + continue + } + dir := path.Dir(f) + if dir == pkg || strings.HasSuffix(pkg, "/"+dir) || strings.HasSuffix(dir, "/"+pkg) { + return true + } + } + return false +} + +// changesTestIn says whether the merge changes a test file inside the directory of a Node module. +func changesTestIn(changed []string, dir string) bool { + for _, f := range changed { + if !isTestFile(f) || strings.HasSuffix(f, "_test.go") { + continue + } + if dir == "." || dir == "" || strings.HasPrefix(f, strings.TrimSuffix(dir, "/")+"/") { + return true + } + } + return false +} diff --git a/modules/mesh-delivery-sdk/steprun/askrun_test.go b/modules/mesh-delivery-sdk/steprun/askrun_test.go new file mode 100644 index 00000000..113fcbcd --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/askrun_test.go @@ -0,0 +1,470 @@ +package steprun + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "slices" + "strings" + "testing" + "time" + + nodebuildgo "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildgo" + nodebuildnode "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-contracts/go/seats/nodebuildnode" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" +) + +const runCommit = "0123456789abcdef0123456789abcdef01234567" + +// recorder is a build module's step tools that record each call. +type recorder struct { + calls []string + fetch map[string]any + tests map[string]bool // package or module directory -> passed + digests map[string]string + needs []sdkstep.PackageNeeds +} + +func (r *recorder) steps() AskSteps { + call := func(name string, answer func(args map[string]any) any) StepFunc { + return func(ctx context.Context, args map[string]any) (any, error) { + b, _ := json.Marshal(args) + r.calls = append(r.calls, name+" "+string(b)) + return answer(args), nil + } + } + return AskSteps{ + Fetch: call("fetch", func(map[string]any) any { return r.fetch }), + Build: call("build", func(args map[string]any) any { + return map[string]any{"digest": "sha256:" + args["artifact"].(string), "reference": "artifact-store://" + args["artifact"].(string)} + }), + Copy: call("copy", func(args map[string]any) any { return map[string]any{"digest": "sha256:copied"} }), + Digest: call("digest", func(map[string]any) any { + return map[string]any{"level": "unit", "packages": r.digests, "needs": r.needs} + }), + Test: call("test", func(args map[string]any) any { + passed := true + if pkgs, ok := args["packages"].([]string); ok { + for _, p := range pkgs { + passed = passed && r.tests[p] + } + } + if dir, ok := args["module"].(string); ok { + passed = r.tests[dir] + } + return map[string]any{"passed": passed, "tests": 1} + }), + Kept: func(ctx context.Context, level, digest string) (int, bool, error) { return 7, digest == "d-kept", nil }, + } +} + +func ask(job any) sdkstep.StepAsk { + a := sdkstep.StepAsk{ID: sdkstep.NewID(), Kind: sdkstep.AskCheck, Language: sdkstep.AskGo, Asker: "t", At: time.Now()} + switch j := job.(type) { + case sdkstep.BuildJob: + a.Build = &j + case sdkstep.CheckJob: + a.Check = &j + } + return a +} + +// 1887/A3: a build ask fetches once, builds each artifact from the workspace with publish, copies a pinned one without a +// fetch, and answers each artifact's digest and reference; an artifact's seat and the version the builder gave it reach +// its build (CAT-BG2). +func TestRunAskBuilds(t *testing.T) { + r := &recorder{fetch: map[string]any{"workspace": "/w/1"}} + steps := r.steps() + var released []string + steps.Release = func(ws string) error { released = append(released, ws); return nil } + // ADR 0593 §2: a Go module's build ends by saying which mesh packages its programs import. + steps.Imports = func(ctx context.Context, args map[string]any) (any, error) { + b, _ := json.Marshal(args) + r.calls = append(r.calls, "imports "+string(b)) + return map[string]any{"imports": []string{"git.novox.be/novox/mesh-sdk/go/announce", "git.novox.be/novox/mesh-sdk/go/health"}}, nil + } + // Issue 1585: the ask's package versions reach the fetch, and the ask's own fetch arguments stay as they were. + a := ask(sdkstep.BuildJob{Module: "m", Path: "modules/m", Publish: true, + Fetch: &sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}, + Artifacts: []sdkstep.AskArtifact{{Artifact: "base", From: "registry/b@sha256:00"}, {Artifact: "bundle"}, {Artifact: "lib", Seat: "go-package-registry", Version: "v0.1.15"}}}) + a.Packages = sdkstep.PackageVersions{"git.novox.be/novox/mesh-sdk/go": runCommit} + out, err := RunAsk(context.Background(), steps, a) + if err != nil { + t.Fatal(err) + } + if len(a.Build.Fetch.Packages) != 0 { + t.Error("the ask's fetch arguments were changed") + } + got := strings.Join(r.calls, "\n") + want := `copy {"artifact":"base","from":"registry/b@sha256:00","module":"m"} +fetch {"commit":"` + runCommit + `","packages":{"git.novox.be/novox/mesh-sdk/go":"` + runCommit + `"},"repository":"novox/x"} +build {"artifact":"bundle","module":"modules/m","publish":true,"workspace":"/w/1"} +build {"artifact":"lib","module":"modules/m","publish":true,"seat":"go-package-registry","version":"v0.1.15","workspace":"/w/1"} +imports {"module":"modules/m","workspace":"/w/1"}` + if got != want { + t.Fatalf("calls:\n%s\nwant:\n%s", got, want) + } + if len(released) != 1 || released[0] != "/w/1" { + t.Errorf("released %v, want the one workspace", released) + } + answer := out.(sdkstep.BuildAnswer) + if len(answer.Artifacts) != 3 || answer.Artifacts[1].Reference != "artifact-store://bundle" { + t.Fatalf("answer %+v", answer) + } + if !slices.Equal(answer.Imports, []string{"git.novox.be/novox/mesh-sdk/go/announce", "git.novox.be/novox/mesh-sdk/go/health"}) { + t.Errorf("the answer's imports are %v", answer.Imports) + } +} + +// A build ask for another toolchain is declined (ADR 0584 clause 2), so the node sits out and the asker puts it again. +func TestRunAskRefusesAnotherToolchain(t *testing.T) { + r := &recorder{fetch: map[string]any{"workspace": "/w"}} + s := r.steps() + s.Toolchain = func(context.Context) (sdkstep.ToolchainUsed, error) { + return sdkstep.ToolchainUsed{Version: "go1.27", Recipe: "3"}, nil + } + _, err := RunAsk(context.Background(), s, ask(sdkstep.BuildJob{Module: "m", Path: ".", Fetch: &sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}, + Artifacts: []sdkstep.AskArtifact{{Artifact: "bundle"}}, Toolchain: &sdkstep.ToolchainUsed{Version: "go1.26", Recipe: "3"}})) + var dec *Declining + if !errors.As(err, &dec) || len(dec.Lacks) != 1 || len(r.calls) != 0 { + t.Fatalf("err %v, calls %v", err, r.calls) + } + // A check ask names the toolchain too (ADR 0584 clause 2), and a node on another declines it before it fetches. + check := ask(sdkstep.CheckJob{Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}, Levels: []string{sdkstep.LevelUnit}, + Toolchain: &sdkstep.ToolchainUsed{Version: "go1.26", Recipe: "3"}}) + _, err = RunAsk(context.Background(), s, check) + if !errors.As(err, &dec) || len(r.calls) != 0 { + t.Fatalf("a check ask: err %v, calls %v", err, r.calls) + } +} + +// 1887/A3, A5a: a check ask runs the levels of one check after one fetch: it digests the unit level, takes the kept +// verdicts, tests the packages whose tests changed first and then the others, also after one of them failed, and runs +// every level, also after one that did not pass, so one check names every failure (the operator, 2026-11-02). +func TestRunAskChecksTheLevelsOfOneCheck(t *testing.T) { + r := &recorder{ + fetch: map[string]any{"workspace": "/w", "changed": []string{"pkg/b/b_test.go"}}, + digests: map[string]string{"x/pkg/a": "d-a", "x/pkg/b": "d-b", "x/pkg/k": "d-kept"}, + tests: map[string]bool{"x/pkg/a": true, "x/pkg/b": false}, + } + out, err := RunAsk(context.Background(), r.steps(), ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit, sdkstep.LevelIntegration}, Kept: true, + Runner: "workspace", RunnerWhen: "modules/mesh-build-go/", Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit, Base: runCommit}})) + if err != nil { + t.Fatal(err) + } + got := strings.Join(r.calls, "\n") + want := `fetch {"base":"` + runCommit + `","commit":"` + runCommit + `","repository":"novox/x"} +digest {"level":"unit","workspace":"/w"} +test {"level":"unit","packages":["x/pkg/b"],"workspace":"/w"} +test {"level":"unit","packages":["x/pkg/a"],"workspace":"/w"} +digest {"level":"integration","workspace":"/w"} +test {"level":"integration","packages":["x/pkg/b"],"workspace":"/w"} +test {"level":"integration","packages":["x/pkg/a"],"workspace":"/w"}` + if got != want { + t.Fatalf("calls:\n%s\nwant:\n%s", got, want) + } + a := out.(sdkstep.CheckAnswer) + if a.Fetch.Workspace != "/w" || !slices.Equal(a.Fetch.Changed, []string{"pkg/b/b_test.go"}) { + t.Fatalf("the answer's fetch is the tool's whole answer, typed: %+v", a.Fetch) + } + if len(a.Levels) != 2 { + t.Fatalf("levels %+v, want both levels", a.Levels) + } + u := a.Levels[0] + if u.Level != sdkstep.LevelUnit || len(u.Kept) != 1 || u.Kept[0].Package != "x/pkg/k" || u.Kept[0].Tests != 7 || len(u.Tests) != 2 || u.Digest == nil { + t.Fatalf("the unit level %+v", u) + } + + // ADR 0567 §12: a check's node names reach the digest and test tools, for the names check (a kept verdict misses when + // they change). + r.calls = nil + if _, err := RunAsk(context.Background(), r.steps(), ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, NodeNames: []string{"anchor"}, + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})); err != nil || !strings.Contains(strings.Join(r.calls, "\n"), `digest {"level":"unit","node-names":["anchor"]`) || + !strings.Contains(strings.Join(r.calls, "\n"), `test {"level":"unit","node-names":["anchor"]`) { + t.Fatalf("the node names are not handed to the digest and test tools: %v, %v", r.calls, err) + } + + // Issue 890/AC2: a package declaring node-build-node is not tested on a node that lacks it but named unmet, and is + // tested on a node that has it. + for _, has := range []bool{false, true} { + r.calls, r.tests["x/pkg/b"] = nil, true + r.needs = []sdkstep.PackageNeeds{{Package: "x/pkg/a", Needs: []string{sdkstep.NeedNodeBuildNode}}} + steps := r.steps() + if has { + steps.Has = func(n string) bool { return n == sdkstep.NeedNodeBuildNode } + } + out, err := RunAsk(context.Background(), steps, ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, Kept: true, + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})) + if err != nil { + t.Fatal(err) + } + u := out.(sdkstep.CheckAnswer).Levels[0] + tested := strings.Contains(strings.Join(r.calls, "\n"), `"x/pkg/a"`) + if tested != has || (len(u.Unmet) == 0) == !has || (!has && (u.Unmet[0].Package != "x/pkg/a" || sdkstep.UnmetNeeds([]sdkstep.LevelAnswer{u})[0] != sdkstep.NeedNodeBuildNode)) { + t.Fatalf("has %v: tested x/pkg/a %v, unmet %+v, calls %v", has, tested, u.Unmet, r.calls) + } + } + // A placed ask naming its packages tests those alone and takes no other's kept verdict, also when the level would + // run whole (ADR 0552 §4). + for _, digests := range []map[string]string{r.digests, nil} { + r.calls, r.digests = nil, digests + steps := r.steps() + steps.Has = func(string) bool { return true } + out, err := RunAsk(context.Background(), steps, ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, Kept: true, Packages: []string{"x/pkg/a"}, + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})) + if err != nil { + t.Fatal(err) + } + u := out.(sdkstep.CheckAnswer).Levels[0] + if last := r.calls[len(r.calls)-1]; !strings.HasSuffix(last, `"packages":["x/pkg/a"],"workspace":"/w"}`) || len(u.Kept) != 0 || len(u.Tests) != 1 { + t.Fatalf("digests %v: calls %v, kept %+v: want x/pkg/a alone tested, nothing taken kept", digests != nil, r.calls, u.Kept) + } + } +} + +// ADR 0535 §2, §4: a merge that changes the build module's own code is judged by the candidate's runner: its digest says +// the candidate ran, and every package runs with nothing kept; an installed module that ignores the runner is planned as +// any other, the runner dropped. A digest that does not cover the fetch's siblings runs the level whole too. +func TestRunAskRunsWholeUnderTheRunnerOrWithoutTheSiblings(t *testing.T) { + for _, tc := range []struct{ judged, want string }{ + {"candidate 999", `digest {"level":"unit","runner":"workspace","workspace":"/w"} +test {"level":"unit","runner":"workspace","workspace":"/w"}`}, + {"installed", `digest {"level":"unit","runner":"workspace","workspace":"/w"}`}, + } { + r := &recorder{fetch: map[string]any{"workspace": "/w", "changed": []string{"modules/mesh-build-go/x.go"}}, + digests: map[string]string{"x/pkg/a": "d-kept"}, tests: map[string]bool{}} + steps := r.steps() + digest := steps.Digest + steps.Digest = func(ctx context.Context, args map[string]any) (any, error) { + _, _ = digest(ctx, args) + return map[string]any{"level": "unit", "packages": r.digests, "judged_by": tc.judged}, nil + } + out, err := RunAsk(context.Background(), steps, ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, Kept: true, + Runner: "workspace", RunnerWhen: "modules/mesh-build-go/", Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})) + if err != nil { + t.Fatal(err) + } + if got := strings.Join(r.calls[1:], "\n"); got != tc.want { + t.Errorf("judged by %s: calls\n%s\nwant\n%s", tc.judged, got, tc.want) + } + l := out.(sdkstep.CheckAnswer).Levels[0] + if tc.judged == "installed" && (len(l.Kept) != 1 || l.Judged != "") { + t.Errorf("an installed module's level %+v, want the kept verdict taken", l) + } + if tc.judged != "installed" && (len(l.Kept) != 0 || l.Digest != nil || l.Judged != tc.judged) { + t.Errorf("the candidate's level %+v, want nothing kept and the program named", l) + } + } + r := &recorder{fetch: map[string]any{"workspace": "/w"}, digests: map[string]string{"x/pkg/a": "d-kept"}, tests: map[string]bool{}} + out, err := RunAsk(context.Background(), r.steps(), ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, Kept: true, + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit, Beside: []sdkstep.FetchBeside{{Repository: "novox/mesh-sdk", Commit: runCommit}}}})) + if err != nil { + t.Fatal(err) + } + if l := out.(sdkstep.CheckAnswer).Levels[0]; len(l.Kept) != 0 || l.Digest != nil { + t.Fatalf("a digest without the siblings kept %+v", l) + } +} + +// A Node check tests each module directory, the one whose tests changed first; a conflict ends the ask with the fetch +// alone, a verdict for the asker. +func TestRunAskChecksNodeModulesAndConflicts(t *testing.T) { + r := &recorder{fetch: map[string]any{"workspace": "/w", "modules": []string{"a", "b"}, "changed": []string{"b/test/x.test.ts"}}, + tests: map[string]bool{"a": true, "b": true}} + s := r.steps() + s.Digest = nil + if _, err := RunAsk(context.Background(), s, ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})); err != nil { + t.Fatal(err) + } + if fmt.Sprint(r.calls[1:]) != `[test {"level":"unit","module":"b","workspace":"/w"} test {"level":"unit","module":"a","workspace":"/w"}]` { + t.Fatalf("calls %v", r.calls) + } + r = &recorder{fetch: map[string]any{"workspace": "/w", "conflicts": []string{"go.mod"}}} + out, err := RunAsk(context.Background(), r.steps(), ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})) + if err != nil || len(r.calls) != 1 || len(out.(sdkstep.CheckAnswer).Levels) != 0 { + t.Fatalf("a conflict: %v %v", err, r.calls) + } +} + +// Issue 1289: the packages whose tests changed run first. Since 2026-11-02 (the operator: "A failed check shows only its +// first fault") a failure among them ends nothing: every package of the level and every level still runs, so one check +// names every failing test (issue 1921). A Node check does the same with its module directories. +func TestRunAskRunsEveryPackageAndLevelAfterAFailure(t *testing.T) { + for _, row := range []struct { + name string + changed []string + tests map[string]bool + want []string // the packages tested at each level, in order + }{ + {"the change's own test fails: the rest still runs", []string{"pkg/b/b_test.go"}, map[string]bool{"x/pkg/a": false, "x/pkg/b": false}, []string{"x/pkg/b", "x/pkg/a"}}, + {"the change's own test passes: the rest runs, also after a failure", []string{"pkg/b/b_test.go"}, map[string]bool{"x/pkg/a": false, "x/pkg/b": true, "x/pkg/c": false}, []string{"x/pkg/b", "x/pkg/a x/pkg/c"}}, + {"no test changed: every failure is named", nil, map[string]bool{"x/pkg/a": false, "x/pkg/b": false}, []string{"x/pkg/a x/pkg/b"}}, + } { + r := &recorder{fetch: map[string]any{"workspace": "/w", "changed": row.changed}, tests: row.tests, + digests: map[string]string{"x/pkg/a": "d-a", "x/pkg/b": "d-b"}} + if _, ok := row.tests["x/pkg/c"]; ok { + r.digests["x/pkg/c"] = "d-c" + } + out, err := RunAsk(context.Background(), r.steps(), ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit, sdkstep.LevelIntegration}, + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})) + if err != nil { + t.Fatal(err) + } + var got []string + for _, c := range r.calls[1:] { + if strings.HasPrefix(c, "test ") { + var a struct{ Packages []string } + _ = json.Unmarshal([]byte(strings.TrimPrefix(c, "test ")), &a) + got = append(got, strings.Join(a.Packages, " ")) + } + } + if want := append(slices.Clone(row.want), row.want...); fmt.Sprint(got) != fmt.Sprint(want) { + t.Errorf("%s: tested %v, want %v", row.name, got, want) + } + if a := out.(sdkstep.CheckAnswer); len(a.Levels) != 2 || len(a.Levels[0].Tests) != len(row.want) { + t.Errorf("%s: levels %+v, want both, each with every test result", row.name, a.Levels) + } + } + + r := &recorder{fetch: map[string]any{"workspace": "/w", "modules": []string{"a", "b"}, "changed": []string{"b/test/x.test.ts"}}, + tests: map[string]bool{"a": true, "b": false}} + s := r.steps() + s.Digest = nil + out, err := RunAsk(context.Background(), s, ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit, sdkstep.LevelIntegration}, + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})) + if err != nil { + t.Fatal(err) + } + if a := out.(sdkstep.CheckAnswer); len(r.calls) != 5 || len(a.Levels) != 2 || len(a.Levels[0].Tests) != 2 { + t.Fatalf("calls %v, levels %+v: want b then a at each of the two levels", r.calls, a.Levels) + } +} + +// A seat's own ask type (the generated one of any of the three build seats) is the neutral ask through the form's one +// conversion (sdkstep.AskOf), reads for its step description through the same conversion (askRead), and reaches the +// fetch tool as the fetch's arguments alone: no layout version, nothing of the ask's. +func TestASeatsAskTypeRunsAsTheNeutralAsk(t *testing.T) { + at := time.Now().UTC() + fetch := &nodebuildgo.Fetch{Commit: runCommit, Repository: "novox/x", Dir: "modules/m", Paths: []string{"src"}} + goAsk := nodebuildgo.StepAsk{V: sdkstep.StepAskVersion, ID: sdkstep.NewID(), Kind: sdkstep.AskDelivery, Language: sdkstep.AskGo, Asker: "mesh-delivery-builder", At: &at, + Build: &nodebuildgo.StepAskBuild{Module: "m", Path: "modules/m", Fetch: fetch, Artifacts: []nodebuildgo.AskArtifact{{Artifact: "bundle"}}}, + Packages: map[string]string{"git.novox.be/novox/mesh-sdk/go": runCommit}} + a, err := sdkstep.AskOf(goAsk) + if err != nil { + t.Fatal(err) + } + if read := askRead(a); read.Kind != sdkstep.AskDelivery || read.Build == nil || read.Build.Module != "m" { + t.Errorf("the step description reads %+v", read) + } + r := &recorder{fetch: map[string]any{"workspace": "/w"}} + if _, err := RunAsk(context.Background(), r.steps(), a); err != nil { + t.Fatal(err) + } + want := `fetch {"commit":"` + runCommit + `","dir":"modules/m","packages":{"git.novox.be/novox/mesh-sdk/go":"` + runCommit + `"},"paths":["src"],"repository":"novox/x"}` + if len(r.calls) == 0 || r.calls[0] != want { + t.Errorf("the fetch tool was called with %v, want %s", r.calls, want) + } + if back, err := sdkstep.AskAs[nodebuildnode.StepAsk](a); err != nil || back.Build == nil || back.Build.Module != "m" { + t.Errorf("the ask as another seat's type: %+v, %v", back, err) + } +} + +// 086 A-C2 (ADR 0666 §7, §8, §21; design 47 *Asked on a work queue, ended by an event*, test 65): a pipeline step ask +// runs its one level as a check of it, carries the packages the runner kept at their digest, keeps what it passed, says +// its counts, and says its end once on its own node; a level with no tests ends nothing to run, a fault of the source +// could not run, and a transport fault or an end that could not be said is handed back unsaid, to be given again. +func TestRunAskRunsAPipelineStepAndSaysItsEnd(t *testing.T) { + type said struct{ ends []sdkstep.StepEnded } + stepOf := func(step string, kept ...sdkstep.KeptResult) sdkstep.StepAsk { + return sdkstep.StepAsk{ID: sdkstep.NewID(), Kind: sdkstep.AskStep, Language: sdkstep.AskGo, Asker: "mesh-delivery-pipeline", At: time.Now(), + Step: &sdkstep.StepRun{Pipeline: "main.12.m", Step: step, Module: "m", Artifact: "m:program", Commit: runCommit, Fingerprint: "fp-1", + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit, Dir: "modules/m"}, Kept: kept}} + } + for _, row := range []struct { + name string + ask sdkstep.StepAsk + digests map[string]string + tests map[string]bool + lint StepFunc + fetchErr error + sayErr error + outcome string // "" when nothing is said + counts int + carried []string + kept []string + passing bool // the error is a transport fault + noTests bool // the level holds no test, as the test body says it + }{ + {name: "unit: the kept package carried, the other tested and kept", ask: stepOf(sdkstep.StepUnit, sdkstep.KeptResult{Package: "x/a", Digest: "d-a", Level: "unit"}), + digests: map[string]string{"x/a": "d-a", "x/b": "d-b"}, tests: map[string]bool{"x/b": true}, outcome: sdkstep.OutcomePassed, counts: 1, carried: []string{"x/a"}, kept: []string{"x/b"}}, + {name: "unit failed: said with why, nothing kept", ask: stepOf(sdkstep.StepUnit), digests: map[string]string{"x/b": "d-b"}, tests: map[string]bool{"x/b": false}, + outcome: sdkstep.OutcomeFailed, counts: 1}, + {name: "integration with no tests: nothing to run", ask: stepOf(sdkstep.StepIntegration), digests: map[string]string{}, noTests: true, outcome: sdkstep.OutcomeNothingToRun}, + {name: "lint failed", ask: stepOf(sdkstep.StepLint), lint: func(context.Context, map[string]any) (any, error) { + return LintAnswer{Failed: []sdkstep.Failure{{Package: "modules/m", Test: "gofmt", Cause: "not as gofmt writes them"}}}, nil + }, outcome: sdkstep.OutcomeFailed}, + {name: "lint passed", ask: stepOf(sdkstep.StepLint), lint: func(context.Context, map[string]any) (any, error) { return LintAnswer{}, nil }, outcome: sdkstep.OutcomePassed}, + {name: "no lint body: nothing to run", ask: stepOf(sdkstep.StepLint), outcome: sdkstep.OutcomeNothingToRun}, + {name: "the source cannot be fetched: could not run", ask: stepOf(sdkstep.StepUnit), fetchErr: Refuse("no commit %s", runCommit), outcome: sdkstep.OutcomeCouldNotRun}, + {name: "a transport fault: unsaid, given again", ask: stepOf(sdkstep.StepUnit), fetchErr: &sdkstep.Passing{Err: errors.New("no responders")}, passing: true}, + {name: "the end cannot be said: given again", ask: stepOf(sdkstep.StepLint), sayErr: errors.New("bus down"), passing: true}, + } { + r := &recorder{fetch: map[string]any{"workspace": "/w"}, tests: row.tests, digests: row.digests} + s := r.steps() + if row.fetchErr != nil { + s.Fetch = func(context.Context, map[string]any) (any, error) { return nil, row.fetchErr } + } + s.Lint, s.Node = row.lint, "ace" + if row.noTests { + s.Test = func(context.Context, map[string]any) (any, error) { + return map[string]any{"passed": true, "tests": 0, "no_tests": true}, nil + } + } + var got said + s.SayStep = func(e sdkstep.StepEnded) error { + if row.sayErr != nil { + return row.sayErr + } + got.ends = append(got.ends, e) + return nil + } + out, err := RunAsk(context.Background(), s, row.ask) + if row.passing { + if !sdkstep.IsPassing(err) || len(got.ends) != 0 { + t.Errorf("%s: %v, said %+v; want a transport fault, nothing said", row.name, err, got.ends) + } + continue + } + if err != nil || len(got.ends) != 1 { + t.Fatalf("%s: %v, said %+v; want one end", row.name, err, got.ends) + } + e := got.ends[0] + if e.Outcome != row.outcome || e.Node != "ace" || e.ID != row.ask.ID || e.Fingerprint != "fp-1" || out.(StepAnswer).Ended.Outcome != row.outcome { + t.Errorf("%s: said %+v, want %s on ace for the ask", row.name, e, row.outcome) + } + if (row.outcome == sdkstep.OutcomeFailed || row.outcome == sdkstep.OutcomeCouldNotRun) && e.Said == "" { + t.Errorf("%s: %s and not why", row.name, row.outcome) + } + if n := 0; e.Tests != nil { + n = e.Tests.Unit + e.Tests.Integration + if n != row.counts { + t.Errorf("%s: counts %+v, want %d", row.name, e.Tests, row.counts) + } + } else if row.counts != 0 { + t.Errorf("%s: no counts, want %d", row.name, row.counts) + } + pkgs := func(ks []sdkstep.KeptResult) (out []string) { + for _, k := range ks { + out = append(out, k.Package) + } + return out + } + if !slices.Equal(pkgs(e.Carried), row.carried) || !slices.Equal(pkgs(e.Kept), row.kept) { + t.Errorf("%s: carried %v kept %v, want %v and %v", row.name, pkgs(e.Carried), pkgs(e.Kept), row.carried, row.kept) + } + if _, err := sdkstep.EncodeStepEnded(e); err != nil { + t.Errorf("%s: the end does not encode: %v", row.name, err) + } + } +} diff --git a/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu.go b/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu.go new file mode 100644 index 00000000..dcd2f364 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu.go @@ -0,0 +1,215 @@ +// Package buildcpu is how much of a build node's processors its builds may take, and how they yield to everything else +// there (novox/hq ADR 0553, issue 1806; the operator, 2026-10-26: "limit CPU usage on our build nodes so the total cpu +// usage never impacts the normal workings of our nodes ... We have 3 build agents so they should share the cpu power"). +// +// Three parts, each with one owner: +// +// - **Priority.** A build seat's holder (catalogue.Seat.Yields) runs at the lowest priority there is: the composer +// gives its runtime process declaration.Yields, and the node-engine places every yielding process of the node in +// one slice (declaration.YieldSlice) whose CPU weight is idle, with Nice=19 for every process it starts. +// Interactive and service work always comes first; builds take the cycles nothing else wants. +// - **One cap per node, shared.** The node's share of its processors is one value, the node-engine's own config +// `build-cpu-share` (ShareSetting), set per node through the node's settings layer. The node-engine writes it as the +// slice's CPUQuota: one bound the kernel holds for all the node's build modules together, never one per module. +// - **Threads.** The quota bounds the total; threads only size each step. A step gets the share divided by its own +// module's capacity (Threads), from the share the composer hands as a word (ShareWord): GOMAXPROCS sets every go +// command's -p, the compiler's concurrency, a test binary's processors and -parallel. A module given no word sets +// no thread limit at all: without the slice there is nothing to size a step to, and a limit then would only slow +// builds. +package buildcpu + +import ( + "os" + "runtime" + "strconv" + "strings" +) + +// ShareSetting is the node-engine's config value of the node's processor share for its builds, in percent of the +// machine's processors, 1 to 100: one value per node, set through the node's settings layer (novox/hq ADR 0553 §3). +const ShareSetting = "build-cpu-share" + +// DefaultPercent is the share where nothing sets one: half the machine, so a desktop keeps half its processors for +// itself whatever builds. +const DefaultPercent = 50 + +// ShareWord is the word the composer gives every yielding module (novox/hq ADR 0553 §4): the node's share, in percent. +const ShareWord = "MESH_BUILD_CPU_SHARE" + +// Quota is a CPUQuota for a share of a machine with cores processors: systemd counts a quota in percent of one +// processor, so half of 24 is 1200%. At least 100%, one processor, so a share on a small machine never stops a step. +func Quota(percent, cores int) int { + q := percent * cores + if q < 100 { + q = 100 + } + return q +} + +// Threads is how many threads one step may run at once: its part of the share when its own module runs slots steps at +// once, at least one. The slice's quota bounds the steps of all the node's build modules together; this only sizes one. +func Threads(percent, cores, slots int) int { + if slots < 1 { + slots = 1 + } + if percent < 1 || percent > 100 { + percent = DefaultPercent + } + t := cores * percent / 100 / slots + if t < 1 { + t = 1 + } + return t +} + +// Limits is what one step is held to on this node, as a status tool says it. +type Limits struct { + // Percent is the node's share in percent of its processors, and From where it was read: ShareWord, or "none" when + // the composer gave no share and a step runs without a thread limit. + Percent int `json:"share-percent,omitempty"` + From string `json:"share-from"` + // Cores is the machine's processor count. + Cores int `json:"cores"` + // Slots is this module's own capacity on the node: steps at once. + Slots int `json:"slots"` + // Threads is what each step is given (Threads); 0 is no limit. + Threads int `json:"threads-per-step"` +} + +// FromWords is the limits of a step from the share the composer gave this process (ShareWord) and the module's own +// capacity. Without a usable share there is no limit: Threads is 0. +func FromWords(getenv func(string) string, own int) Limits { + if own < 1 { + own = 1 + } + l := Limits{From: "none", Cores: runtime.NumCPU(), Slots: own} + if n, err := strconv.Atoi(strings.TrimSpace(getenv(ShareWord))); err == nil && n >= 1 && n <= 100 { + l.Percent, l.From = n, ShareWord + l.Threads = Threads(n, l.Cores, own) + } + return l +} + +// Env is the environment a step's commands are given so they start no more threads than they may: GOMAXPROCS for every +// Go program (the compiler, a test binary, esbuild, buildah), UV_THREADPOOL_SIZE for Node's worker pool. Returned as +// KEY=value words to append to a command's environment; nothing for 0 threads, no limit. +func Env(threads int) []string { + if threads < 1 { + return nil + } + t := strconv.Itoa(threads) + return []string{"GOMAXPROCS=" + t, "UV_THREADPOOL_SIZE=" + t} +} + +// InForce is what the kernel holds this process to, read rather than assumed (evidence over assertion): its nice +// level, its cgroup (the unit) and the cgroup's parent (the slice the node-engine placed it in), each one's CPU weight, +// idle mark and quota. A field the machine does not answer is left empty and Unread says which. +// +// The IO weight is read but binds only where the disk's scheduler honours it (bfq, or the io.cost controller); under +// the scheduler `none`, the usual one for NVMe, it does nothing, and the CPU bound is what holds. +type InForce struct { + Nice int `json:"nice"` + Cgroup string `json:"cgroup,omitempty"` + Unit Group `json:"unit"` + Slice Group `json:"slice"` + // Quota is the tighter of the two groups' cpu.max as a percent of one processor, 0 with none. + Quota int `json:"quota-percent,omitempty"` + Unread []string `json:"unread,omitempty"` +} + +// Group is one cgroup's controls. +type Group struct { + Path string `json:"path,omitempty"` + CPUIdle string `json:"cpu-idle,omitempty"` + CPUWeight string `json:"cpu-weight,omitempty"` + // CPUMax is the cgroup's cpu.max: " ", or "max" with no quota. + CPUMax string `json:"cpu-max,omitempty"` + IOWeight string `json:"io-weight,omitempty"` +} + +// cgroupRoot is where the unified hierarchy is mounted. A variable so a test can point it elsewhere. +var cgroupRoot = "/sys/fs/cgroup" + +// procSelfCgroup is this process's cgroup file. A variable so a test can point it elsewhere. +var procSelfCgroup = "/proc/self/cgroup" + +// procSelfStat is this process's stat file. A variable so a test can point it elsewhere. +var procSelfStat = "/proc/self/stat" + +// ReadInForce reads what the kernel holds this process to. +func ReadInForce() InForce { + var f InForce + f.Nice = nice() + raw, err := os.ReadFile(procSelfCgroup) + if err != nil { + f.Unread = append(f.Unread, "cgroup: "+err.Error()) + return f + } + for _, line := range strings.Split(strings.TrimSpace(string(raw)), "\n") { + if strings.HasPrefix(line, "0::") { + f.Cgroup = strings.TrimPrefix(line, "0::") + } + } + if f.Cgroup == "" { + f.Unread = append(f.Unread, "cgroup: not on the unified hierarchy") + return f + } + read := func(path string) Group { + g := Group{Path: path} + value := func(name string) string { + b, err := os.ReadFile(cgroupRoot + path + "/" + name) + if err != nil { + f.Unread = append(f.Unread, path+"/"+name+": "+err.Error()) + return "" + } + return strings.TrimSpace(string(b)) + } + g.CPUIdle, g.CPUWeight, g.CPUMax, g.IOWeight = value("cpu.idle"), value("cpu.weight"), value("cpu.max"), value("io.weight") + return g + } + f.Unit = read(f.Cgroup) + if i := strings.LastIndex(f.Cgroup, "/"); i > 0 { + f.Slice = read(f.Cgroup[:i]) + } + for _, q := range []int{quotaOf(f.Unit.CPUMax), quotaOf(f.Slice.CPUMax)} { + if q > 0 && (f.Quota == 0 || q < f.Quota) { + f.Quota = q + } + } + return f +} + +// quotaOf is a cpu.max value as a percent of one processor: "1200000 100000" is 1200; "max ..." or nothing is 0. +func quotaOf(cpuMax string) int { + fields := strings.Fields(cpuMax) + if len(fields) != 2 || fields[0] == "max" { + return 0 + } + q, err1 := strconv.Atoi(fields[0]) + p, err2 := strconv.Atoi(fields[1]) + if err1 != nil || err2 != nil || p <= 0 { + return 0 + } + return q * 100 / p +} + +// nice is this process's nice level from its stat file (the 19th field, counted after the command's closing +// parenthesis, which may itself hold spaces); 0 when it cannot be read. +func nice() int { + raw, err := os.ReadFile(procSelfStat) + if err != nil { + return 0 + } + s := string(raw) + i := strings.LastIndex(s, ")") + if i < 0 { + return 0 + } + fields := strings.Fields(s[i+1:]) + // After the command: state is field 3, so nice (field 19) is index 16. + if len(fields) < 17 { + return 0 + } + n, _ := strconv.Atoi(fields[16]) + return n +} diff --git a/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_agree_test.go b/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_agree_test.go new file mode 100644 index 00000000..bf61988d --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_agree_test.go @@ -0,0 +1,14 @@ +package buildcpu + +import ( + "testing" + + "git.novox.be/novox/mesh-sdk/go/catalogue" +) + +// The share's names the composer gives are the build modules' (catalogue writes them too, so it does not import this). +func TestTheShareNamesAgreeWithTheCatalogues(t *testing.T) { + if ShareSetting != catalogue.BuildCPUShareSetting || ShareWord != catalogue.BuildCPUShareWord || DefaultPercent != catalogue.BuildCPUDefaultPercent { + t.Fatal("buildcpu's share names differ from catalogue's") + } +} diff --git a/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_test.go b/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_test.go new file mode 100644 index 00000000..67406870 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/buildcpu/buildcpu_test.go @@ -0,0 +1,90 @@ +package buildcpu + +import ( + "os" + "path/filepath" + "reflect" + "runtime" + "testing" +) + +// The node's share as a quota, the threads one step is given for its own module's capacity, and the word the composer +// hands, in one table (ADR 0553, issue 1806). +func TestShareQuotaAndThreads(t *testing.T) { + for _, c := range []struct { + name string + percent, cores, slots int + quota, threads int + }{ + {"shanks: half of 24, three slots", 50, 24, 3, 1200, 4}, + {"ace: three quarters of 24, two slots", 75, 24, 2, 1800, 9}, + {"g14: half of 16, one slot", 50, 16, 1, 800, 8}, + {"one processor at least", 10, 2, 4, 100, 1}, + {"no slots counts as one", 100, 4, 0, 400, 4}, + {"a share out of range is the default", 0, 8, 1, 0, 4}, + } { + if c.quota != 0 { + if q := Quota(c.percent, c.cores); q != c.quota { + t.Errorf("%s: Quota = %d, want %d", c.name, q, c.quota) + } + } + if th := Threads(c.percent, c.cores, c.slots); th != c.threads { + t.Errorf("%s: Threads = %d, want %d", c.name, th, c.threads) + } + } + l := FromWords(func(k string) string { return map[string]string{ShareWord: "75"}[k] }, 2) + if l.Percent != 75 || l.From != ShareWord || l.Slots != 2 || l.Threads != Threads(75, runtime.NumCPU(), 2) { + t.Errorf("from the word: %+v", l) + } + // Told nothing usable, a step has no thread limit: nothing in its environment. + for _, word := range []string{"", "250", "lots"} { + l := FromWords(func(string) string { return word }, 3) + if l.Threads != 0 || l.From != "none" || Env(l.Threads) != nil { + t.Errorf("share %q: %+v, env %v", word, l, Env(l.Threads)) + } + } + if got := Env(3); !reflect.DeepEqual(got, []string{"GOMAXPROCS=3", "UV_THREADPOOL_SIZE=3"}) { + t.Errorf("Env = %q", got) + } +} + +// What the kernel holds a process to is read from its unit's and its slice's cgroup and its stat file, not assumed. +func TestReadInForce(t *testing.T) { + dir := t.TempDir() + cg := filepath.Join(dir, "cg") + slice := filepath.Join(cg, "meshyield.slice") + unit := filepath.Join(slice, "mesh-build-go-runtime.service") + if err := os.MkdirAll(unit, 0o755); err != nil { + t.Fatal(err) + } + for at, files := range map[string]map[string]string{ + slice: {"cpu.idle": "1\n", "cpu.weight": "0\n", "cpu.max": "1200000 100000\n", "io.weight": "default 1\n"}, + unit: {"cpu.idle": "0\n", "cpu.weight": "100\n", "cpu.max": "max 100000\n", "io.weight": "default 100\n"}, + } { + for name, v := range files { + if err := os.WriteFile(filepath.Join(at, name), []byte(v), 0o644); err != nil { + t.Fatal(err) + } + } + } + self := filepath.Join(dir, "cgroup") + stat := filepath.Join(dir, "stat") + _ = os.WriteFile(self, []byte("0::/meshyield.slice/mesh-build-go-runtime.service\n"), 0o644) + // A command with a space and a parenthesis in it, then nice 19 in field 19. + _ = os.WriteFile(stat, []byte("42 (mesh (build) go) S 1 42 42 0 -1 4194560 1 0 0 0 0 0 0 0 39 19 8 0 1 2 3\n"), 0o644) + cgroupRoot, procSelfCgroup, procSelfStat = cg, self, stat + t.Cleanup(func() { + cgroupRoot, procSelfCgroup, procSelfStat = "/sys/fs/cgroup", "/proc/self/cgroup", "/proc/self/stat" + }) + + got := ReadInForce() + want := InForce{Nice: 19, Cgroup: "/meshyield.slice/mesh-build-go-runtime.service", + Unit: Group{Path: "/meshyield.slice/mesh-build-go-runtime.service", CPUIdle: "0", CPUWeight: "100", + CPUMax: "max 100000", IOWeight: "default 100"}, + Slice: Group{Path: "/meshyield.slice", CPUIdle: "1", CPUWeight: "0", CPUMax: "1200000 100000", + IOWeight: "default 1"}, + Quota: 1200} + if !reflect.DeepEqual(got, want) { + t.Fatalf("ReadInForce = %+v\nwant %+v", got, want) + } +} diff --git a/modules/mesh-delivery-sdk/steprun/buildhours.go b/modules/mesh-delivery-sdk/steprun/buildhours.go new file mode 100644 index 00000000..fcb9a8f4 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/buildhours.go @@ -0,0 +1,129 @@ +package steprun + +import ( + "encoding/json" + "fmt" + "os" + "strings" + "time" +) + +// **A node may build only within its build hours** (the operator, 2026-10-26 21:18: the laptop builds only outside +// office hours, "from 18 o'clock until 6 in the morning"). A build module's `build-hours` setting is the node's window +// in its local time, a config value set on each node's layer of mesh-config (ADR 0567 §12: no repository names a node); +// outside it the capacity judged by is 0: steps running finish, no new one is taken. An empty value builds at any hour. +// The puller judges it at every judgement and wakes on one timer to the window's next edge (a clock edge, not a poll of +// another part). + +// BuildHoursSetting is the build modules' setting of the node's build window: HH:MM-HH:MM in the node's local time; an +// end before its start crosses midnight (18:00-06:00). +const BuildHoursSetting = "build-hours" + +// BuildWindow is one node's build hours: minutes after local midnight, Start inclusive, End exclusive. +type BuildWindow struct { + Start, End int +} + +// String is the window as the setting writes it. +func (w BuildWindow) String() string { + return fmt.Sprintf("%02d:%02d-%02d:%02d", w.Start/60, w.Start%60, w.End/60, w.End%60) +} + +// Open says whether t, in its own location, falls in the window. +func (w BuildWindow) Open(t time.Time) bool { + m := t.Hour()*60 + t.Minute() + if w.Start < w.End { + return m >= w.Start && m < w.End + } + return m >= w.Start || m < w.End +} + +// NextEdge is the first time after t, in t's location, at which the window opens or closes. +func (w BuildWindow) NextEdge(t time.Time) time.Time { + var next time.Time + for day := 0; day <= 1; day++ { + for _, m := range []int{w.Start, w.End} { + e := time.Date(t.Year(), t.Month(), t.Day()+day, m/60, m%60, 0, 0, t.Location()) + if e.After(t) && (next.IsZero() || e.Before(next)) { + next = e + } + } + } + return next +} + +// ParseBuildWindow reads a build-hours value, HH:MM-HH:MM: nil when it is empty. +func ParseBuildWindow(setting string) (*BuildWindow, error) { + setting = strings.TrimSpace(setting) + if setting == "" { + return nil, nil + } + from, to, ok := strings.Cut(setting, "-") + if !ok { + return nil, fmt.Errorf("the build hours %q are not HH:MM-HH:MM", setting) + } + start, err := minuteOf(from) + if err != nil { + return nil, fmt.Errorf("the build hours %q: %v", setting, err) + } + end, err := minuteOf(to) + if err != nil { + return nil, fmt.Errorf("the build hours %q: %v", setting, err) + } + if start == end { + return nil, fmt.Errorf("the build hours %q open and close at the same minute", setting) + } + return &BuildWindow{Start: start, End: end}, nil +} + +// minuteOf reads HH:MM as minutes after midnight. +func minuteOf(s string) (int, error) { + var h, m int + s = strings.TrimSpace(s) + if n, err := fmt.Sscanf(s, "%d:%d", &h, &m); err != nil || n != 2 || h < 0 || h > 23 || m < 0 || m > 59 || len(s) != 5 { + return 0, fmt.Errorf("%q is not a time HH:MM", s) + } + return h*60 + m, nil +} + +// NodeBuildHours is the node's build window, read from the module's settings file at path at every call, and why it is +// none when the value cannot be read. No path, no file value or an empty one is no window and no fault. A value that +// cannot be read is no window too, so the node builds at any hour; the setting is a preference of hours, not a safety +// bound (a node that must never build has capacity 0). It is loud: the fault is said once per distinct fault through +// logf, and the puller writes it in the capacity record that build_usage shows. +func NodeBuildHours(path, node string, logf func(string, ...any)) func() (*BuildWindow, string) { + said := "" + say := func(why string) { + if logf != nil && why != said { + said = why + logf("%s, so %s builds at any hour", why, node) + } + } + fault := func(why string) (*BuildWindow, string) { + say(why) + return nil, why + } + return func() (*BuildWindow, string) { + if path == "" { + return nil, "" + } + raw, err := os.ReadFile(path) + if err != nil { + return fault(fmt.Sprintf("the setting %s cannot be read: %v", BuildHoursSetting, err)) + } + var s map[string]json.RawMessage + if err := json.Unmarshal(raw, &s); err != nil { + return fault(fmt.Sprintf("the settings file %s is not JSON: %v", path, err)) + } + setting := "" + if v, ok := s[BuildHoursSetting]; ok && json.Unmarshal(v, &setting) != nil { + return fault(fmt.Sprintf("the setting %s %s is not a string", BuildHoursSetting, v)) + } + w, err := ParseBuildWindow(setting) + if err != nil { + return fault(err.Error()) + } + said = "" + return w, "" + } +} diff --git a/modules/mesh-delivery-sdk/steprun/capacity.go b/modules/mesh-delivery-sdk/steprun/capacity.go new file mode 100644 index 00000000..8e61cca5 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/capacity.go @@ -0,0 +1,57 @@ +package steprun + +import ( + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + + "encoding/json" + "fmt" + "os" +) + +// NodeCapacity is the node's build capacity, read from the module's settings file at path at every call, so a change +// takes effect at the next pull. No path, no file value, or a value that is not a whole number of at least 0 gives 0 and +// a value that cannot be read says why: pulling on a setting nobody can read could build on a node that must not. +func NodeCapacity(path, node string, logf func(string, ...any)) func() int { + say := func(format string, args ...any) { + if logf != nil { + logf(format, args...) + } + } + return func() int { + n, err := ReadCapacity(path) + if err != nil { + say("%v, so %s pulls nothing", err, node) + return 0 + } + return n + } +} + +// ReadCapacity is the capacity the settings file at path holds, and why it cannot be read when it cannot (then 0). +func ReadCapacity(path string) (int, error) { + if path == "" { + return 0, nil + } + raw, err := os.ReadFile(path) + if err != nil { + return 0, fmt.Errorf("the build capacity cannot be read: %w", err) + } + var s map[string]json.RawMessage + if err := json.Unmarshal(raw, &s); err != nil { + return 0, fmt.Errorf("the settings file %s is not JSON: %w", path, err) + } + return capacityOf(s[sdkstep.CapacitySetting]) +} + +// capacityOf is the capacity a config value holds: absent or null is 0; anything but a whole number of at least 0 is +// refused, naming it. +func capacityOf(value json.RawMessage) (int, error) { + if len(value) == 0 || string(value) == "null" { + return 0, nil + } + var n int + if err := json.Unmarshal(value, &n); err != nil || n < 0 { + return 0, fmt.Errorf("the build capacity %s is not a whole number of asks at once, 0 or more", value) + } + return n, nil +} diff --git a/modules/mesh-delivery-sdk/steprun/capacity_cpu.go b/modules/mesh-delivery-sdk/steprun/capacity_cpu.go new file mode 100644 index 00000000..ca9df216 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/capacity_cpu.go @@ -0,0 +1,141 @@ +package steprun + +import ( + "encoding/json" + "fmt" + "math" + "os" + "runtime" + "strconv" + "strings" + + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun/buildcpu" +) + +// **A build seat's capacity follows the CPU its node gives builds** (issue 1806's follow-up; issue 1890, 2026-10-26 +// 19:41: under the 50 % cap the workstation's mesh-build-go kept capacity 3, three full mesh-catalog checks shared 12 cores, and +// each step ran past the 30-minute step bound with no test run). The configured capacity is an upper bound; the node's +// build slice bounds it again by the cores a step needs: floor(the slice's quota in cores / cores-per-step), one at +// least. The quota is read live from the cgroup at every judgement, so a changed cap is followed at the next take +// without a restart, and the result is said (the seat's current verb, the status tools, `capacity.` in the pauses +// state that the delivery view's build_usage reads). + +// CoresPerStepSetting is a build module's setting of the processors one of its steps needs: a number above zero, the +// same on every node (a step's need is the module's, not the node's). Each build module declares it with its own default +// (DefaultCoresPerStep). +const CoresPerStepSetting = "cores-per-step" + +// DefaultCoresPerStep are the build modules' defaults by language, from measured steps (2026-10-26): a full mesh-catalog +// check on mesh-build-go takes what it is given (three at once took 965 % of the workstation's 1200 % slice, about 4 cores each, +// and ran past the 30-minute step bound), so a Go step is given 6, half again what starved; a Node step (tsc, esbuild, a +// test runner: median 15 s) and an image build (buildah, its RUN lines mostly fetches) need 2. +var DefaultCoresPerStep = map[string]float64{sdkstep.AskGo: 6, sdkstep.AskNode: 2, sdkstep.AskImage: 2} + +// Quota is the build slice's CPU quota as this process's cgroup holds it, in percent of one processor (1200 is 12 +// cores), and where it was read: the cgroup's cpu.max (buildcpu.ReadInForce, the tighter of its unit's and its slice's), +// else the share the composer gave (buildcpu.ShareWord) over the machine's processors, else 0 and why none is known. +func Quota() (percent int, from string) { + f := buildcpu.ReadInForce() + if f.Quota > 0 { + path := f.Slice.Path + if path == "" { + path = f.Cgroup + } + return f.Quota, "the cpu.max of " + path + } + if n, err := strconv.Atoi(strings.TrimSpace(os.Getenv(buildcpu.ShareWord))); err == nil && n >= 1 && n <= 100 { + return buildcpu.Quota(n, runtime.NumCPU()), fmt.Sprintf("the share %d%% the composer gave (%s), of %d processors; no cpu.max is read", n, buildcpu.ShareWord, runtime.NumCPU()) + } + return 0, "no CPU quota: neither a cpu.max on its cgroup nor a share from the composer" +} + +// EffectiveCapacity is the capacity a seat's holder judges by, from its configured capacity, its node's quota (percent of +// one processor, 0 when none is known) and the cores one of its steps needs. Without a quota it is the configured one; +// with one, min(configured, floor(quota cores / coresPerStep)), and one at least while the configured one is above +// zero. A coresPerStep of zero or less is taken as 1. +func EffectiveCapacity(configured, quotaPercent int, quotaFrom string, coresPerStep float64) sdkstep.Capacity { + if coresPerStep <= 0 || math.IsNaN(coresPerStep) || math.IsInf(coresPerStep, 0) { + coresPerStep = 1 + } + c := sdkstep.Capacity{Configured: configured, Effective: configured, QuotaFrom: quotaFrom, CoresPerStep: coresPerStep} + switch { + case configured <= 0: + c.Effective = 0 + c.Why = fmt.Sprintf("its configured capacity is %d, so it pulls nothing", configured) + return c + case quotaPercent <= 0: + c.Why = fmt.Sprintf("its configured capacity %d; %s, so the CPU bounds nothing", configured, quotaFrom) + return c + } + c.QuotaCores = float64(quotaPercent) / 100 + c.ByCPU = int(math.Floor(c.QuotaCores/coresPerStep + 1e-9)) + if c.ByCPU < 1 { + c.ByCPU = 1 + } + byCPU := fmt.Sprintf("%g cores of the build slice (%s) / %g cores a step = %d", c.QuotaCores, quotaFrom, coresPerStep, c.ByCPU) + if c.ByCPU < configured { + c.Effective = c.ByCPU + c.Why = fmt.Sprintf("%d, bounded by the CPU: %s, under its configured %d", c.Effective, byCPU, configured) + } else { + c.Why = fmt.Sprintf("%d, its configured capacity; the CPU allows %s", configured, byCPU) + } + return c +} + +// NodeCoresPerStep is the module's cores-per-step, read from its settings file at path at every call so a change is +// followed at the next judgement; fallback when there is no path, no value or one that is not a number above zero, said +// once per distinct fault through logf. +func NodeCoresPerStep(path string, fallback float64, logf func(string, ...any)) func() float64 { + said := "" + say := func(why string) { + if logf != nil && why != said { + said = why + logf("%s, so a step is taken to need %g cores", why, fallback) + } + } + return func() float64 { + if path == "" { + return fallback + } + raw, err := os.ReadFile(path) + if err != nil { + say(fmt.Sprintf("the setting %s cannot be read: %v", CoresPerStepSetting, err)) + return fallback + } + var s map[string]json.RawMessage + if err := json.Unmarshal(raw, &s); err != nil { + say(fmt.Sprintf("the settings file %s is not JSON: %v", path, err)) + return fallback + } + v, ok := s[CoresPerStepSetting] + if !ok { + return fallback // not declared yet (a module before its manifest names it): the default, nothing to say + } + n, err := coresOf(v) + if err != nil { + say(fmt.Sprintf("the setting %s %s: %v", CoresPerStepSetting, v, err)) + return fallback + } + said = "" + return n + } +} + +// coresOf reads a cores-per-step value: a JSON number or a string holding one, above zero. +func coresOf(v json.RawMessage) (float64, error) { + var n float64 + if err := json.Unmarshal(v, &n); err != nil { + var s string + if err := json.Unmarshal(v, &s); err != nil { + return 0, fmt.Errorf("is neither a number nor a string") + } + if n, err = strconv.ParseFloat(strings.TrimSpace(s), 64); err != nil { + return 0, fmt.Errorf("is not a number") + } + } + if n <= 0 || math.IsNaN(n) || math.IsInf(n, 0) { + return 0, fmt.Errorf("is not above zero") + } + return n, nil +} diff --git a/modules/mesh-delivery-sdk/steprun/capacity_test.go b/modules/mesh-delivery-sdk/steprun/capacity_test.go new file mode 100644 index 00000000..f2f18ee3 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/capacity_test.go @@ -0,0 +1,135 @@ +package steprun + +import ( + "os" + "path/filepath" + "strings" + "testing" + "time" +) + +// 1887/A7: the node's build capacity is the build module's setting, read at every pull: the control-node at 0 pulls +// nothing, a change takes effect at the next read, and a setting that cannot be read pulls nothing. +// ADR 0553 §4: a step's threads are the composer's share over the module's own capacity; without the word, none. And +// issue 1806's follow-up: the capacity judged by is the configured one bounded by the build slice's cores over the cores +// a step needs (the three build nodes as they stand on 2026-10-26), and cores-per-step is read from the settings file. +func TestNodeCapacityAndLimits(t *testing.T) { + // ADR 0567 §12: the capacity is the node's integer, its default 0, and no default names a node. + if got := NodeCapacity("", "laptop", nil)(); got != 0 { + t.Errorf("no settings file = %d, want 0", got) + } + file := filepath.Join(t.TempDir(), "settings.json") + capacity := NodeCapacity(file, "anchor", nil) + for value, want := range map[string]int{`{"capacity":1}`: 1, `{"capacity":4}`: 4, `{}`: 0, `{"capacity":null}`: 0, + `{"capacity":"anchor=3"}`: 0, `{"capacity":-1}`: 0, `{"capacity":1.5}`: 0} { + os.WriteFile(file, []byte(value), 0o600) + if got := capacity(); got != want { + t.Errorf("%s = %d, want %d", value, got, want) + } + } + if got := NodeCapacity(filepath.Join(t.TempDir(), "none"), "anchor", nil)(); got != 0 { + t.Errorf("a missing file = %d, want 0", got) + } + t.Setenv("MESH_BUILD_CPU_SHARE", "") + if l := NodeLimits(3); l.Threads != 0 || l.Slots != 3 { + t.Errorf("without the word: %+v", l) + } + t.Setenv("MESH_BUILD_CPU_SHARE", "75") + if l := NodeLimits(3); l.Percent != 75 || l.Slots != 3 || l.Threads < 1 { + t.Errorf("from the word: %+v", l) + } + for _, c := range []struct { + name string + configured, quota int + cores float64 + effective, byCPU int + }{ + {"shanks: 12 cores, configured 3", 3, 1200, 6, 2, 2}, + {"ace: 18 cores, configured 2", 2, 1800, 6, 2, 3}, + {"g14: 8 cores, configured 2", 2, 800, 6, 1, 1}, + {"node on shanks: 12 cores at 2", 3, 1200, 2, 3, 6}, + {"no quota: the configured one", 3, 0, 6, 3, 0}, + {"configured 0 pulls nothing", 0, 1200, 6, 0, 0}, + {"a quota under one step still builds one", 2, 100, 6, 1, 1}, + {"no cores a step is one", 2, 150, 0, 1, 1}, + } { + got := EffectiveCapacity(c.configured, c.quota, "test", c.cores) + if got.Effective != c.effective || got.ByCPU != c.byCPU || got.Why == "" { + t.Errorf("%s: %+v, want effective %d, by CPU %d", c.name, got, c.effective, c.byCPU) + } + } + file = filepath.Join(t.TempDir(), "settings.json") + var said []string + cores := NodeCoresPerStep(file, 6, func(f string, a ...any) { said = append(said, f) }) + for _, c := range []struct { + file string + want float64 + }{{`{"capacity":2}`, 6}, {`{"cores-per-step":4}`, 4}, {`{"cores-per-step":"3.5"}`, 3.5}, {`{"cores-per-step":0}`, 6}, {`{"cores-per-step":0}`, 6}} { + os.WriteFile(file, []byte(c.file), 0o600) + if got := cores(); got != c.want { + t.Errorf("cores-per-step from %s = %g, want %g", c.file, got, c.want) + } + } + if len(said) != 1 { + t.Errorf("a value not above zero is said once, said %d times", len(said)) + } + + // The operator, 2026-10-26 21:18: g14 builds only from 18:00 to 06:00, its local time. Outside its build hours the + // capacity judged by is 0, said with the window and when it opens; a node not named, or a bad value, builds at any hour. + // And a node its module proves cannot build (ace without /dev/net/tun, 2026-10-28) judges by 0 at every hour, saying + // why, so its asks go to a node that can. + cet := time.FixedZone("CET", 3600) + day := func(hh, mm int) time.Time { return time.Date(2026, 10, 26, hh, mm, 0, 0, cet) } + was := now + defer func() { now = was }() + for _, c := range []struct { + name, setting, node string + at time.Time + effective int + edge string // the window's next edge, HH:MM; "" for no window + bad bool + ineligible string // what the module's Eligible says; "" for eligible + }{ + {"the laptop in the office", "18:00-06:00", "laptop", day(10, 0), 0, "18:00", false, ""}, + {"the laptop in the evening", "18:00-06:00", "laptop", day(18, 0), 2, "06:00", false, ""}, + {"the laptop past midnight", "18:00-06:00", "laptop", day(5, 59), 2, "06:00", false, ""}, + {"the laptop at the close", "18:00-06:00", "laptop", day(6, 0), 0, "18:00", false, ""}, + {"a day window", "09:00-17:30", "anchor", day(17, 29), 2, "17:30", false, ""}, + {"no window", "", "anchor", day(10, 0), 2, "", false, ""}, + {"a bad time", "18:00-6", "laptop", day(10, 0), 2, "", true, ""}, + {"no span", "18:00-18:00", "laptop", day(10, 0), 2, "", true, ""}, + {"the old form naming a node", "laptop=18:00-06:00", "laptop", day(10, 0), 2, "", true, ""}, + {"a node without /dev/net/tun", "", "anchor", day(10, 0), 0, "", false, "/dev/net/tun cannot be opened: no such device"}, + {"not eligible within its hours", "18:00-06:00", "laptop", day(19, 0), 0, "06:00", false, "/dev/net/tun cannot be opened: no such device"}, + } { + w, err := ParseBuildWindow(c.setting) + if (err != nil) != c.bad { + t.Errorf("%s: parse %v", c.name, err) + } + if edge := ""; w != nil { + edge = w.NextEdge(c.at).Format("15:04") + if edge != c.edge { + t.Errorf("%s: next edge %s, want %s", c.name, edge, c.edge) + } + } else if c.edge != "" { + t.Errorf("%s: no window, want one", c.name) + } + file := filepath.Join(t.TempDir(), "settings.json") + os.WriteFile(file, []byte(`{"build-hours":"`+c.setting+`"}`), 0o600) + now = func() time.Time { return c.at } + p := &Puller{Language: "go", Node: c.node, Capacity: func() int { return 2 }, BuildHours: NodeBuildHours(file, c.node, nil), + Eligible: func() string { return c.ineligible }} + got := p.CapacityDetail() + outside := c.effective == 0 && c.ineligible == "" + if got.Effective != c.effective || got.OutsideHours != outside || (outside && !strings.Contains(got.Why, "outside its build hours 18:00-06:00 CET until 18:00")) { + t.Errorf("%s: %+v, want capacity %d", c.name, got, c.effective) + } + if got.Ineligible != c.ineligible || (c.ineligible != "" && !strings.HasPrefix(got.Why, "0, not eligible: "+c.ineligible+" (otherwise ")) { + t.Errorf("%s: not eligible is not said: %+v", c.name, got) + } + // A value that cannot be read builds at any hour, loudly: the record names the value and says why. + if c.bad && (!strings.Contains(got.BuildHoursFault, c.setting) || !strings.Contains(got.Why, "at any hour, because its build hours cannot be read")) { + t.Errorf("%s: a bad value is not said in the record: %+v", c.name, got) + } + } +} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/README.md b/modules/mesh-delivery-sdk/steprun/conformance/captured/README.md new file mode 100644 index 00000000..3e1456c5 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/README.md @@ -0,0 +1,81 @@ +# The conformance kit's captured runner output + +Every file here is the real output of a test runner, never written by hand (issue 1901: a fixture that agrees with the +mistake proves the mistake). The toolchains are the build nodes' own, as `mesh-build-go.build_go_toolchains` and +`mesh-build-node.build_node_toolchains` reported them on 2026-10-26: go1.27.3-X:nodwarf5 on every build node, node +v26.12.1 (npm 12.2.1) on shanks, novox and g14, and typescript 5.9.3 from mesh-build-node's toolchain/package.json. +To capture a case again, make its tiny project in a fresh directory as below and run the command shown; the kit's case +table (conformance.go) says what each failure must say. + +## go/ — `go test -json` + +- `passfirst.jsonl` and `subtests.jsonl` (2026-10-26, go1.27.3-X:nodwarf5, for issue 1901's thorough fix): in + `/tmp/1901k/go/`, `GOTOOLCHAIN=local GOFLAGS=-mod=mod go test -json -count=1 ./... > ../.jsonl 2>&1`. + - passfirst: module `example.com/passfirst`, `go 1.26`. Package `a` has `TestTheFirstPackagePasses` (empty). Package `b` + has `TestTheSecondPackagePassesFirst` (empty) and `TestTheSecondPackageFails`, which calls + `t.Logf("judged against the seat as it stands")` then `t.Fatalf("the seat has 2 holders, want 1")`: a passing package + and a passing test before the failing one. + - subtests: module `example.com/subtests`; `TestTheTable` runs `t.Run("passes", func(t *testing.T) {})` and + `t.Run("fails", func(t *testing.T) { t.Errorf("got 3 machines, want 4") })`: the parent fails only by its subtest. +- `subpanic.jsonl` (2026-10-26, go1.27.3-X:nodwarf5, review round 1 of issue 1901's fix), the same way: module + `example.com/subpanic`; `TestTable` runs `t.Run("passes", func(t *testing.T) {})` and `t.Run("panics", ...)`, which + writes to a nil map. go test -json files the subtest's panic under the parent `TestTable`. +- `logthenfatal.jsonl`, `panicking`, `timeout`, `deeptimeout`, `buildfail`, `exiting`, `killed`, `passthenfail`, + `mainexit`, `race`, `racemain` were captured for issue 1901's first and third meetings (2026-10-23 and 2026-10-25, + go1.27.3) in mesh-catalog's mesh-build-go (`testdata/captured/go-test-json-*.jsonl`, named there `go-test-json-pkg-` + and `go-test-json-log-then-fatal`) and moved here unchanged. From that README: each is the standard output and error of + `go test -json -count=1 ./...` (the timeouts with `-timeout 2s`; race and racemain with `-race`, CGO_ENABLED=1) in a + throwaway one-file module that fails without a test's own assertion: panicking (a nil map write in TestPanics), timeout + (TestWaitsForever sleeps past the timeout), deeptimeout (two parallel tests and sixty blocked goroutines past the + timeout, so the goroutine dump pushes the panic line out of the last 4 KB), buildfail (a type error in a test file), + exiting (os.Exit(3) in TestExits), killed (TestKilled sends itself SIGKILL), passthenfail (TestMain panics in a + goroutine after m.Run passed), mainexit (TestMain exits 2 after m.Run passed: go test prints "PASS" and then + "FAIL "), race (TestRacesOnTheSeat writes a package variable from itself and a goroutine), racemain (TestMain does + so after m.Run passed). logthenfatal is a test `TestThree` in package `x` that logs a line with t.Logf and then fails + with a multi-line t.Fatalf naming three subscriptions. + +## node/ — `npm test` running `node --test` under the TAP reporter + +Captured 2026-10-26 with node v26.12.1 and npm 12.2.1 (`/usr/bin/node`, `/usr/bin/npm`), in `/tmp/1901k/node/`, the +way mesh-build-node runs a test script: + + PATH=/usr/bin:$PATH NODE_OPTIONS="--test-reporter=tap --test-reporter-destination=/tmp/1901k/node/.tap" \ + npm test > ../.stdout 2> ../.stderr + +`.tap` is the report file, `.console` the stdout followed by the stderr. Each project's package.json is +`{"name":"","private":true,"type":"module","scripts":{"test":"node --test --experimental-strip-types 'test/*.test.ts'"}}` +(the script every TypeScript package of the catalogue and the SDK runs), with these test files: + +- two-files: `test/a.test.ts` holds `test('passes in the first file', () => {})`; `test/b.test.ts` holds + `test('passes in the second file first', () => {})` and `test('fails in the second file', ...)`, which logs + `judged against the seat as it stands` and asserts `assert.strictEqual(1 + 1, 3, 'one plus one is not three')`. +- suite: `test/a.test.ts` has `describe('the seat', ...)` with `it('passes inside', () => {})` and `it('fails inside', ...)` + asserting `assert.deepStrictEqual({ holders: 2 }, { holders: 1 })`. +- crash: `test/a.test.ts` holds `test('passes before the crash', () => {})`; `test/b.test.ts` holds + `test('throws after it returned', ...)`, which throws `new Error('the bus closed under the test')` in a `setTimeout` of + 1 ms, and `test('waits after the throw', ...)`, which waits 50 ms: node fails the file with an uncaught exception. +- logcrash (review round 1): `test/a.test.ts` holds `test('passes and logs', ...)`, which logs + `retrying after Error: the store was not ready yet`; `test/b.test.ts` is crash's. A passing test's console line + holding "Error" comes before the crash's own. +- timeout: `test/a.test.ts` holds `test('passes before the wait', () => {})` and + `test('waits for an answer that never comes', { timeout: 200 }, async () => { await new Promise(() => {}); })`. +- syntax: `test/a.test.ts` holds `test('passes in the first file', () => {})`; `test/b.test.ts` is + `import test from 'node:test';` and `test('never loads', () => {` (cut off): the file does not load. + +## tsc/ — the type-check + +`typeerror.console` (2026-10-26, typescript 5.9.3 under node v26.12.1): in `/tmp/1901k/tsc/typeerror`, `ok.ts` is +`export const holders: number = 1;` and `seat.ts` is `import { holders } from './ok.js'; export const name: string = holders;`; +the command is mesh-build-node's type-check line without a tsconfig.json: + + node /bin/tsc --noEmit --module NodeNext --moduleResolution NodeNext --target ES2022 --rootDir . ok.ts seat.ts + +and the file is its stdout followed by its stderr. + +## passing/ — a runner's words when the network did not answer (novox/hq issue 1748, ADR 0664 §1) + +Not captured by running: a network cannot be cut on demand in a test. Each file holds the words a runner wrote when a +build step met the fault on the mesh (the journal of ace on 2026-11-09 for ssh and go, the forge's sshd penalty; npm's +error codes and buildah's pull failure as those programs print them), and for each a negative case, a failure of the +source whose words are never a network's (an unknown revision, a checksum, a missing package, a failed RUN). Name: +`-.txt`; the kit's table (conformance.go, PassingCases) says which are transport faults. diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/buildfail.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/buildfail.jsonl new file mode 100644 index 00000000..2b7967da --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/buildfail.jsonl @@ -0,0 +1,6 @@ +{"ImportPath":"example.com/buildfail [example.com/buildfail.test]","Action":"build-output","Output":"# example.com/buildfail [example.com/buildfail.test]\n"} +{"ImportPath":"example.com/buildfail [example.com/buildfail.test]","Action":"build-output","Output":"./p_test.go:5:40: cannot use \"seat\" (untyped string constant) as int value in variable declaration\n"} +{"ImportPath":"example.com/buildfail [example.com/buildfail.test]","Action":"build-fail"} +{"Time":"2026-10-25T15:34:33.261137737+01:00","Action":"start","Package":"example.com/buildfail"} +{"Time":"2026-10-25T15:34:33.261255019+01:00","Action":"output","Package":"example.com/buildfail","Output":"FAIL\texample.com/buildfail [build failed]\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.261268099+01:00","Action":"fail","Package":"example.com/buildfail","Elapsed":0,"FailedBuild":"example.com/buildfail [example.com/buildfail.test]"} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/deeptimeout.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/deeptimeout.jsonl new file mode 100644 index 00000000..40182508 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/deeptimeout.jsonl @@ -0,0 +1,417 @@ +{"Time":"2026-10-25T15:35:18.991630993+01:00","Action":"start","Package":"example.com/deeptimeout"} +{"Time":"2026-10-25T15:35:18.993895188+01:00","Action":"run","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat"} +{"Time":"2026-10-25T15:35:18.993963909+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat","Output":"=== RUN TestHoldsTheSeat\n","OutputType":"frame"} +{"Time":"2026-10-25T15:35:18.99399484+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat","Output":"=== PAUSE TestHoldsTheSeat\n","OutputType":"frame"} +{"Time":"2026-10-25T15:35:18.9939982+01:00","Action":"pause","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat"} +{"Time":"2026-10-25T15:35:18.99400173+01:00","Action":"run","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus"} +{"Time":"2026-10-25T15:35:18.99400456+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"=== RUN TestWaitsForTheBus\n","OutputType":"frame"} +{"Time":"2026-10-25T15:35:18.99400838+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"=== PAUSE TestWaitsForTheBus\n","OutputType":"frame"} +{"Time":"2026-10-25T15:35:18.99401133+01:00","Action":"pause","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus"} +{"Time":"2026-10-25T15:35:18.99401441+01:00","Action":"cont","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat"} +{"Time":"2026-10-25T15:35:18.99401704+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat","Output":"=== CONT TestHoldsTheSeat\n","OutputType":"frame"} +{"Time":"2026-10-25T15:35:18.994074141+01:00","Action":"cont","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus"} +{"Time":"2026-10-25T15:35:18.994102612+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"=== CONT TestWaitsForTheBus\n","OutputType":"frame"} +{"Time":"2026-10-25T15:35:21.00935195+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"panic: test timed out after 2s\n"} +{"Time":"2026-10-25T15:35:21.00938383+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\trunning tests:\n"} +{"Time":"2026-10-25T15:35:21.009394391+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t\tTestHoldsTheSeat (2s)\n"} +{"Time":"2026-10-25T15:35:21.009398021+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t\tTestWaitsForTheBus (2s)\n"} +{"Time":"2026-10-25T15:35:21.009401801+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009406481+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 81 [running]:\n"} +{"Time":"2026-10-25T15:35:21.009409911+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"testing.(*M).startAlarm.func1()\n"} +{"Time":"2026-10-25T15:35:21.009413361+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2961 +0x34a\n"} +{"Time":"2026-10-25T15:35:21.009418341+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by time.goFunc\n"} +{"Time":"2026-10-25T15:35:21.009421781+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/time/sleep.go:182 +0x2d\n"} +{"Time":"2026-10-25T15:35:21.009424991+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009428341+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 1 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009431721+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"testing.tRunner.func1()\n"} +{"Time":"2026-10-25T15:35:21.009441811+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2144 +0x425\n"} +{"Time":"2026-10-25T15:35:21.009445511+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"testing.tRunner(0x282e9702008, 0x282e9646bc8)\n"} +{"Time":"2026-10-25T15:35:21.009449641+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2201 +0x123\n"} +{"Time":"2026-10-25T15:35:21.009453471+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"testing.runTests({0x55a45d, 0x17}, {0x55a45d, 0x17}, 0x282e95940f0, {0x6f19f0, 0x2, 0x2}, {0xc2afa2ca3b3c0c8d, 0x7737f168, ...})\n"} +{"Time":"2026-10-25T15:35:21.009462092+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2742 +0x510\n"} +{"Time":"2026-10-25T15:35:21.009467222+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"testing.(*M).Run(0x282e96581e0)\n"} +{"Time":"2026-10-25T15:35:21.009470662+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2602 +0x6af\n"} +{"Time":"2026-10-25T15:35:21.009473692+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"main.main()\n"} +{"Time":"2026-10-25T15:35:21.009476942+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t_testmain.go:48 +0x9b\n"} +{"Time":"2026-10-25T15:35:21.009480092+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009483242+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 7 [sleep]:\n"} +{"Time":"2026-10-25T15:35:21.009486502+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"time.Sleep(0xdf8475800)\n"} +{"Time":"2026-10-25T15:35:21.009490682+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/runtime/time.go:368 +0x165\n"} +{"Time":"2026-10-25T15:35:21.009493812+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat(0x282e9702248?)\n"} +{"Time":"2026-10-25T15:35:21.009498842+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:14 +0x9e\n"} +{"Time":"2026-10-25T15:35:21.009502242+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"testing.tRunner(0x282e9702248, 0x6d5e78)\n"} +{"Time":"2026-10-25T15:35:21.009505742+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2195 +0xea\n"} +{"Time":"2026-10-25T15:35:21.009509292+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by testing.(*T).Run in goroutine 1\n"} +{"Time":"2026-10-25T15:35:21.009512752+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2260 +0x4d4\n"} +{"Time":"2026-10-25T15:35:21.009515792+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009518623+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 8 [sleep]:\n"} +{"Time":"2026-10-25T15:35:21.009521303+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"time.Sleep(0xdf8475800)\n"} +{"Time":"2026-10-25T15:35:21.009524423+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/runtime/time.go:368 +0x165\n"} +{"Time":"2026-10-25T15:35:21.009531403+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestWaitsForTheBus(0x282e9702488?)\n"} +{"Time":"2026-10-25T15:35:21.009534943+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:19 +0x25\n"} +{"Time":"2026-10-25T15:35:21.009538403+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"testing.tRunner(0x282e9702488, 0x6d5e80)\n"} +{"Time":"2026-10-25T15:35:21.009541953+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2195 +0xea\n"} +{"Time":"2026-10-25T15:35:21.009545233+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by testing.(*T).Run in goroutine 1\n"} +{"Time":"2026-10-25T15:35:21.009548323+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/usr/lib/go/src/testing/testing.go:2260 +0x4d4\n"} +{"Time":"2026-10-25T15:35:21.009551343+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009554263+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 9 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009557523+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009561063+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009564513+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009571113+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009574233+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009577433+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 10 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009580823+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009584174+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009587504+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009590974+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009594004+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009597184+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 11 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009600394+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009603874+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009610954+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009614714+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009618104+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009621364+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 12 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009624704+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009628324+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009631954+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009635404+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009638734+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009641904+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 13 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009645325+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009648645+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009652065+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009655625+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009658885+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009663385+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 14 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009666735+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009670235+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009676385+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009680205+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009683315+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009686475+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 15 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009689785+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009697235+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009700795+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009704985+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009708085+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009711346+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 16 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009714586+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009717946+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009721676+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009725626+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009728866+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009732106+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 17 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009735376+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009738956+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009742326+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009746436+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009750666+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009754126+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 18 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009758286+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009761846+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009765776+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009769816+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009773167+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009780507+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 19 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009784207+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009788007+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009791627+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009796347+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009799427+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009802937+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 20 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009806667+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009809987+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009813827+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009818087+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009821397+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009824227+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 21 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009827607+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009831307+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009835167+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009839528+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009842728+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009845888+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 22 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009849168+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009852548+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009855958+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009863648+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009866938+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009870088+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 23 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009879828+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009883728+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009887608+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009891548+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009895238+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009898748+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 24 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009902349+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009907109+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009911519+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009915609+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009918939+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009922329+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 25 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009928329+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009931909+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.009935489+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.009939429+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.009942699+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.009946019+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 26 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.009949559+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.009953489+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.00996244+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.00996647+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.00996987+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.00997314+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 27 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.00997664+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.00998035+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.00998418+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.00998793+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.00999131+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.00999534+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 28 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.00999894+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.01000268+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.0100087+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.01001258+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.01001605+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.01002007+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 29 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.01002393+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010027531+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010031351+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010035521+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010038781+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010042281+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 30 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010046091+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010054261+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010057881+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010061781+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010064931+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010068261+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 31 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010072151+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010075981+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010079841+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010098802+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010103202+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010106382+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 32 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010109852+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010113242+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010116952+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010120672+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010124112+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010127162+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 33 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010130662+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010134442+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010138142+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010141972+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010145362+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010152262+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 34 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010156353+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010159913+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010163533+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010167403+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010170533+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010173953+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 35 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010177453+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010181033+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010184693+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010188583+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010191753+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010195033+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 36 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010198603+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010202393+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010206123+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010210583+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010213503+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010216914+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 37 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010220134+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010223644+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010227154+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010235154+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010238354+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010241754+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 38 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010270284+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010275144+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010278714+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010282825+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010285795+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010288935+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 39 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010292405+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010295915+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010299545+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010311835+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010315565+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010318975+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 40 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010322655+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010326225+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010329815+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010333745+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010337095+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010340515+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 41 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010344066+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010347706+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010355596+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010359046+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010362036+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010365076+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 42 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010367956+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010370906+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010375366+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010378386+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010381006+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010383666+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 43 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010386676+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010389786+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010392636+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010395746+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010398466+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010401166+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 44 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010404226+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010407186+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010410117+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010413237+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010416157+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010418897+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 45 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010423157+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010430107+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010433197+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010451207+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010454217+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010456967+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 46 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010459877+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010463967+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010467067+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010470597+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010473418+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010476108+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 47 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010478998+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010481958+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010484978+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010488258+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010490888+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010493628+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 48 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010496588+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010499498+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010502498+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010505768+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010508558+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010514148+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 49 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010517178+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010520238+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010523478+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010526818+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010529718+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010532508+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 50 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010535639+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010538749+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010541939+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010546689+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010549869+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010552989+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 51 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010556299+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010560079+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010563479+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010567189+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010570299+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010573079+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 52 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010576319+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010579599+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010583099+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010590519+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010594029+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010596989+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 53 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.01059986+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.01060433+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.01060789+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.01061136+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.01061393+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.01061667+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 54 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.01061984+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.0106227+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.01062566+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.01062876+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.01063131+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.01063428+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 55 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.01063719+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.01063997+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.01064278+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.01064582+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.01064836+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.01065114+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 56 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.01065437+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.01065724+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010671481+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010675671+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010678431+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010691171+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 57 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010694531+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010697641+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010700781+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010704001+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010706611+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010709421+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 58 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010712331+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010715351+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010718431+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010721691+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010724371+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010727362+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 59 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010730592+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010733662+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010736712+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010740162+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010742922+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010745772+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 60 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010752222+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010755402+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010758542+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010761822+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010764592+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010767992+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 61 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010771062+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010774282+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010779382+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010782942+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010785722+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010788573+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 62 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010791893+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010794943+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010798083+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010801683+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010804293+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010807283+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 63 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010810443+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010813553+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010816793+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010820233+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010823063+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010829493+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 64 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010832683+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010835953+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010839223+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010842463+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010845333+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010848423+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 65 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010851663+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010854964+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010858364+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010861714+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010864914+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010867984+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 66 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010870944+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010874114+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010877464+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010880504+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010883144+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010886194+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 67 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010889154+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010892234+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010895524+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010902154+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.010904984+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\n"} +{"Time":"2026-10-25T15:35:21.010907984+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"goroutine 68 [chan receive]:\n"} +{"Time":"2026-10-25T15:35:21.010911064+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"example.com/deeptimeout.TestHoldsTheSeat.func1()\n"} +{"Time":"2026-10-25T15:35:21.010914074+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x19\n"} +{"Time":"2026-10-25T15:35:21.010917365+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"created by example.com/deeptimeout.TestHoldsTheSeat in goroutine 7\n"} +{"Time":"2026-10-25T15:35:21.010920505+01:00","Action":"output","Package":"example.com/deeptimeout","Test":"TestWaitsForTheBus","Output":"\t/tmp/fix-1901b/deeptimeout/p_test.go:12 +0x37\n"} +{"Time":"2026-10-25T15:35:21.013209581+01:00","Action":"output","Package":"example.com/deeptimeout","Output":"FAIL\texample.com/deeptimeout\t2.021s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:35:21.013258851+01:00","Action":"fail","Package":"example.com/deeptimeout","Elapsed":2.022} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/exiting.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/exiting.jsonl new file mode 100644 index 00000000..ec4ce02f --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/exiting.jsonl @@ -0,0 +1,10 @@ +{"Time":"2026-10-25T15:34:33.768742837+01:00","Action":"start","Package":"example.com/exiting"} +{"Time":"2026-10-25T15:34:33.773822287+01:00","Action":"run","Package":"example.com/exiting","Test":"TestFine"} +{"Time":"2026-10-25T15:34:33.773896608+01:00","Action":"output","Package":"example.com/exiting","Test":"TestFine","Output":"=== RUN TestFine\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.773940319+01:00","Action":"output","Package":"example.com/exiting","Test":"TestFine","Output":"--- PASS: TestFine (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.773945359+01:00","Action":"pass","Package":"example.com/exiting","Test":"TestFine","Elapsed":0} +{"Time":"2026-10-25T15:34:33.773952529+01:00","Action":"run","Package":"example.com/exiting","Test":"TestExits"} +{"Time":"2026-10-25T15:34:33.773956439+01:00","Action":"output","Package":"example.com/exiting","Test":"TestExits","Output":"=== RUN TestExits\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.773959829+01:00","Action":"output","Package":"example.com/exiting","Test":"TestExits","Output":" p_test.go:11: closing the store\n"} +{"Time":"2026-10-25T15:34:33.775158538+01:00","Action":"output","Package":"example.com/exiting","Output":"FAIL\texample.com/exiting\t0.006s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.775186509+01:00","Action":"fail","Package":"example.com/exiting","Elapsed":0.006} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/killed.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/killed.jsonl new file mode 100644 index 00000000..f4ba5258 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/killed.jsonl @@ -0,0 +1,7 @@ +{"Time":"2026-10-25T15:34:34.328258934+01:00","Action":"start","Package":"example.com/killed"} +{"Time":"2026-10-25T15:34:34.331465435+01:00","Action":"run","Package":"example.com/killed","Test":"TestKilled"} +{"Time":"2026-10-25T15:34:34.331699248+01:00","Action":"output","Package":"example.com/killed","Test":"TestKilled","Output":"=== RUN TestKilled\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:34.331853111+01:00","Action":"output","Package":"example.com/killed","Test":"TestKilled","Output":" p_test.go:10: the kernel is about to kill this\n"} +{"Time":"2026-10-25T15:34:34.334563213+01:00","Action":"output","Package":"example.com/killed","Test":"TestKilled","Output":"signal: killed\n"} +{"Time":"2026-10-25T15:34:34.334611114+01:00","Action":"output","Package":"example.com/killed","Output":"FAIL\texample.com/killed\t0.006s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:34.334627134+01:00","Action":"fail","Package":"example.com/killed","Elapsed":0.006} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/logthenfatal.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/logthenfatal.jsonl new file mode 100644 index 00000000..c59fba2f --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/logthenfatal.jsonl @@ -0,0 +1,13 @@ +{"Action":"start","Package":"x"} +{"Action":"run","Package":"x","Test":"TestThree"} +{"Action":"output","Package":"x","Test":"TestThree","Output":"=== RUN TestThree\n","OutputType":"frame"} +{"Action":"output","Package":"x","Test":"TestThree","Output":" a_test.go:4: judged against /var/lib/mesh-build-go-work/id/beside/mesh-catalog as cloned\n"} +{"Action":"output","Package":"x","Test":"TestThree","Output":" a_test.go:5: 3 subscription(s) derive to a subject no emitter owns:\n","OutputType":"error"} +{"Action":"output","Package":"x","Test":"TestThree","Output":" a.b.c\n","OutputType":"error-continue"} +{"Action":"output","Package":"x","Test":"TestThree","Output":" d.e.f\n","OutputType":"error-continue"} +{"Action":"output","Package":"x","Test":"TestThree","Output":" g.h.i\n","OutputType":"error-continue"} +{"Action":"output","Package":"x","Test":"TestThree","Output":"--- FAIL: TestThree (0.00s)\n","OutputType":"frame"} +{"Action":"fail","Package":"x","Test":"TestThree","Elapsed":0} +{"Action":"output","Package":"x","Output":"FAIL\n","OutputType":"frame"} +{"Action":"output","Package":"x","Output":"FAIL\tx\t0.002s\n","OutputType":"frame"} +{"Action":"fail","Package":"x","Elapsed":0.002} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/mainexit.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/mainexit.jsonl new file mode 100644 index 00000000..5f106bad --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/mainexit.jsonl @@ -0,0 +1,8 @@ +{"Time":"2026-10-25T15:34:35.274953775+01:00","Action":"start","Package":"example.com/mainexit"} +{"Time":"2026-10-25T15:34:35.278129565+01:00","Action":"run","Package":"example.com/mainexit","Test":"TestFine"} +{"Time":"2026-10-25T15:34:35.278191516+01:00","Action":"output","Package":"example.com/mainexit","Test":"TestFine","Output":"=== RUN TestFine\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:35.278341979+01:00","Action":"output","Package":"example.com/mainexit","Test":"TestFine","Output":"--- PASS: TestFine (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:35.278351739+01:00","Action":"pass","Package":"example.com/mainexit","Test":"TestFine","Elapsed":0} +{"Time":"2026-10-25T15:34:35.278359039+01:00","Action":"output","Package":"example.com/mainexit","Output":"PASS\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:35.279516487+01:00","Action":"output","Package":"example.com/mainexit","Output":"FAIL\texample.com/mainexit\t0.004s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:35.279539298+01:00","Action":"fail","Package":"example.com/mainexit","Elapsed":0.005} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/panicking.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/panicking.jsonl new file mode 100644 index 00000000..7609d5d2 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/panicking.jsonl @@ -0,0 +1,27 @@ +{"Time":"2026-10-25T15:34:33.031091436+01:00","Action":"start","Package":"example.com/panicking"} +{"Time":"2026-10-25T15:34:33.036353279+01:00","Action":"run","Package":"example.com/panicking","Test":"TestBefore"} +{"Time":"2026-10-25T15:34:33.036441781+01:00","Action":"output","Package":"example.com/panicking","Test":"TestBefore","Output":"=== RUN TestBefore\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.036568163+01:00","Action":"output","Package":"example.com/panicking","Test":"TestBefore","Output":"--- PASS: TestBefore (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.036609863+01:00","Action":"pass","Package":"example.com/panicking","Test":"TestBefore","Elapsed":0} +{"Time":"2026-10-25T15:34:33.036641304+01:00","Action":"run","Package":"example.com/panicking","Test":"TestPanics"} +{"Time":"2026-10-25T15:34:33.036645914+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"=== RUN TestPanics\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.036698995+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":" p_test.go:8: about to look up the seat\n"} +{"Time":"2026-10-25T15:34:33.036773996+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"--- FAIL: TestPanics (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.03897418+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"panic: assignment to entry in nil map [recovered, repanicked]\n"} +{"Time":"2026-10-25T15:34:33.040332172+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"\n"} +{"Time":"2026-10-25T15:34:33.040414493+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"goroutine 8 [running]:\n"} +{"Time":"2026-10-25T15:34:33.040521475+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"testing.tRunner.func1.2({0x6b8120, 0x6eff80})\n"} +{"Time":"2026-10-25T15:34:33.040601826+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"\t/usr/lib/go/src/testing/testing.go:2125 +0x232\n"} +{"Time":"2026-10-25T15:34:33.040641947+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"testing.tRunner.func1()\n"} +{"Time":"2026-10-25T15:34:33.040720648+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"\t/usr/lib/go/src/testing/testing.go:2128 +0x329\n"} +{"Time":"2026-10-25T15:34:33.04083286+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"panic({0x6b8120?, 0x6eff80?})\n"} +{"Time":"2026-10-25T15:34:33.040912921+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"\t/usr/lib/go/src/runtime/panic.go:859 +0x125\n"} +{"Time":"2026-10-25T15:34:33.040981652+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"example.com/panicking.TestPanics(0x228226cd0488?)\n"} +{"Time":"2026-10-25T15:34:33.041059903+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"\t/tmp/fix-1901b/panicking/p_test.go:10 +0x53\n"} +{"Time":"2026-10-25T15:34:33.041132704+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"testing.tRunner(0x228226cd0488, 0x6d5bc8)\n"} +{"Time":"2026-10-25T15:34:33.041215586+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"\t/usr/lib/go/src/testing/testing.go:2195 +0xea\n"} +{"Time":"2026-10-25T15:34:33.041221966+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"created by testing.(*T).Run in goroutine 1\n"} +{"Time":"2026-10-25T15:34:33.041225556+01:00","Action":"output","Package":"example.com/panicking","Test":"TestPanics","Output":"\t/usr/lib/go/src/testing/testing.go:2260 +0x4d4\n"} +{"Time":"2026-10-25T15:34:33.041984088+01:00","Action":"fail","Package":"example.com/panicking","Test":"TestPanics","Elapsed":0} +{"Time":"2026-10-25T15:34:33.041996638+01:00","Action":"output","Package":"example.com/panicking","Output":"FAIL\texample.com/panicking\t0.010s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:33.042044079+01:00","Action":"fail","Package":"example.com/panicking","Elapsed":0.011} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/passfirst.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/passfirst.jsonl new file mode 100644 index 00000000..a8286d9c --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/passfirst.jsonl @@ -0,0 +1,22 @@ +{"Time":"2026-10-26T19:40:29.574068887+01:00","Action":"start","Package":"example.com/passfirst/a"} +{"Time":"2026-10-26T19:40:29.574347185+01:00","Action":"start","Package":"example.com/passfirst/b"} +{"Time":"2026-10-26T19:40:29.576503518+01:00","Action":"run","Package":"example.com/passfirst/a","Test":"TestTheFirstPackagePasses"} +{"Time":"2026-10-26T19:40:29.576557657+01:00","Action":"output","Package":"example.com/passfirst/a","Test":"TestTheFirstPackagePasses","Output":"=== RUN TestTheFirstPackagePasses\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.576589367+01:00","Action":"output","Package":"example.com/passfirst/a","Test":"TestTheFirstPackagePasses","Output":"--- PASS: TestTheFirstPackagePasses (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.576594637+01:00","Action":"pass","Package":"example.com/passfirst/a","Test":"TestTheFirstPackagePasses","Elapsed":0} +{"Time":"2026-10-26T19:40:29.576602487+01:00","Action":"output","Package":"example.com/passfirst/a","Output":"PASS\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.576614477+01:00","Action":"run","Package":"example.com/passfirst/b","Test":"TestTheSecondPackagePassesFirst"} +{"Time":"2026-10-26T19:40:29.576626897+01:00","Action":"output","Package":"example.com/passfirst/b","Test":"TestTheSecondPackagePassesFirst","Output":"=== RUN TestTheSecondPackagePassesFirst\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.576631187+01:00","Action":"output","Package":"example.com/passfirst/b","Test":"TestTheSecondPackagePassesFirst","Output":"--- PASS: TestTheSecondPackagePassesFirst (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.576635567+01:00","Action":"pass","Package":"example.com/passfirst/b","Test":"TestTheSecondPackagePassesFirst","Elapsed":0} +{"Time":"2026-10-26T19:40:29.576638427+01:00","Action":"run","Package":"example.com/passfirst/b","Test":"TestTheSecondPackageFails"} +{"Time":"2026-10-26T19:40:29.576640647+01:00","Action":"output","Package":"example.com/passfirst/b","Test":"TestTheSecondPackageFails","Output":"=== RUN TestTheSecondPackageFails\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.576643477+01:00","Action":"output","Package":"example.com/passfirst/b","Test":"TestTheSecondPackageFails","Output":" b_test.go:8: judged against the seat as it stands\n"} +{"Time":"2026-10-26T19:40:29.576646497+01:00","Action":"output","Package":"example.com/passfirst/b","Test":"TestTheSecondPackageFails","Output":" b_test.go:9: the seat has 2 holders, want 1\n","OutputType":"error"} +{"Time":"2026-10-26T19:40:29.576650087+01:00","Action":"output","Package":"example.com/passfirst/b","Test":"TestTheSecondPackageFails","Output":"--- FAIL: TestTheSecondPackageFails (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.576652797+01:00","Action":"fail","Package":"example.com/passfirst/b","Test":"TestTheSecondPackageFails","Elapsed":0} +{"Time":"2026-10-26T19:40:29.576655177+01:00","Action":"output","Package":"example.com/passfirst/b","Output":"FAIL\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.577365541+01:00","Action":"output","Package":"example.com/passfirst/a","Output":"ok \texample.com/passfirst/a\t0.003s\n"} +{"Time":"2026-10-26T19:40:29.577382561+01:00","Action":"pass","Package":"example.com/passfirst/a","Elapsed":0.003} +{"Time":"2026-10-26T19:40:29.577380641+01:00","Action":"output","Package":"example.com/passfirst/b","Output":"FAIL\texample.com/passfirst/b\t0.003s\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.5774131+01:00","Action":"fail","Package":"example.com/passfirst/b","Elapsed":0.003} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/passthenfail.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/passthenfail.jsonl new file mode 100644 index 00000000..55fa9309 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/passthenfail.jsonl @@ -0,0 +1,15 @@ +{"Time":"2026-10-25T15:34:34.919624192+01:00","Action":"start","Package":"example.com/passthenfail"} +{"Time":"2026-10-25T15:34:34.922861224+01:00","Action":"run","Package":"example.com/passthenfail","Test":"TestFine"} +{"Time":"2026-10-25T15:34:34.922932965+01:00","Action":"output","Package":"example.com/passthenfail","Test":"TestFine","Output":"=== RUN TestFine\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:34.922969205+01:00","Action":"output","Package":"example.com/passthenfail","Test":"TestFine","Output":"--- PASS: TestFine (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:34.922979956+01:00","Action":"pass","Package":"example.com/passthenfail","Test":"TestFine","Elapsed":0} +{"Time":"2026-10-25T15:34:34.922989416+01:00","Action":"output","Package":"example.com/passthenfail","Output":"PASS\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:34.925022528+01:00","Action":"output","Package":"example.com/passthenfail","Output":"panic: the bus closed after the tests: nats: connection closed\n"} +{"Time":"2026-10-25T15:34:34.925043388+01:00","Action":"output","Package":"example.com/passthenfail","Output":"\n"} +{"Time":"2026-10-25T15:34:34.925046848+01:00","Action":"output","Package":"example.com/passthenfail","Output":"goroutine 20 [running]:\n"} +{"Time":"2026-10-25T15:34:34.925051338+01:00","Action":"output","Package":"example.com/passthenfail","Output":"example.com/passthenfail.TestMain.func1()\n"} +{"Time":"2026-10-25T15:34:34.925055878+01:00","Action":"output","Package":"example.com/passthenfail","Output":"\t/tmp/fix-1901b/passthenfail/p_test.go:13 +0x25\n"} +{"Time":"2026-10-25T15:34:34.925061428+01:00","Action":"output","Package":"example.com/passthenfail","Output":"created by example.com/passthenfail.TestMain in goroutine 1\n"} +{"Time":"2026-10-25T15:34:34.925065028+01:00","Action":"output","Package":"example.com/passthenfail","Output":"\t/tmp/fix-1901b/passthenfail/p_test.go:13 +0x25\n"} +{"Time":"2026-10-25T15:34:34.925390203+01:00","Action":"output","Package":"example.com/passthenfail","Output":"FAIL\texample.com/passthenfail\t0.005s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:34.925402904+01:00","Action":"fail","Package":"example.com/passthenfail","Elapsed":0.006} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/race.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/race.jsonl new file mode 100644 index 00000000..93e9ac17 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/race.jsonl @@ -0,0 +1,53 @@ +{"Time":"2026-10-25T15:50:42.908557309+01:00","Action":"start","Package":"example.com/race"} +{"Time":"2026-10-25T15:50:42.924298679+01:00","Action":"run","Package":"example.com/race","Test":"TestBefore"} +{"Time":"2026-10-25T15:50:42.92438195+01:00","Action":"output","Package":"example.com/race","Test":"TestBefore","Output":"=== RUN TestBefore\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.924648842+01:00","Action":"output","Package":"example.com/race","Test":"TestBefore","Output":"--- PASS: TestBefore (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.924685133+01:00","Action":"pass","Package":"example.com/race","Test":"TestBefore","Elapsed":0} +{"Time":"2026-10-25T15:50:42.924728573+01:00","Action":"run","Package":"example.com/race","Test":"TestRacesOnTheSeat"} +{"Time":"2026-10-25T15:50:42.924733573+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"=== RUN TestRacesOnTheSeat\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.92637298+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"==================\n"} +{"Time":"2026-10-25T15:50:42.92641567+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"WARNING: DATA RACE\n"} +{"Time":"2026-10-25T15:50:42.926444061+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"Write at 0x000000833468 by goroutine 10:\n"} +{"Time":"2026-10-25T15:50:42.926462621+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" example.com/race.TestRacesOnTheSeat.func1()\n"} +{"Time":"2026-10-25T15:50:42.926467121+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /tmp/fix-1901b/race/p_test.go:13 +0x24\n"} +{"Time":"2026-10-25T15:50:42.926483061+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"\n"} +{"Time":"2026-10-25T15:50:42.926509741+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"Previous write at 0x000000833468 by goroutine 9:\n"} +{"Time":"2026-10-25T15:50:42.926530142+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" example.com/race.TestRacesOnTheSeat()\n"} +{"Time":"2026-10-25T15:50:42.926534952+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /tmp/fix-1901b/race/p_test.go:14 +0x30\n"} +{"Time":"2026-10-25T15:50:42.926550462+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.tRunner()\n"} +{"Time":"2026-10-25T15:50:42.926554612+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2195 +0x21c\n"} +{"Time":"2026-10-25T15:50:42.926571142+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.(*T).Run.gowrap1()\n"} +{"Time":"2026-10-25T15:50:42.926575812+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2260 +0x38\n"} +{"Time":"2026-10-25T15:50:42.926592202+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"\n"} +{"Time":"2026-10-25T15:50:42.926607792+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"Goroutine 10 (running) created at:\n"} +{"Time":"2026-10-25T15:50:42.926624292+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" example.com/race.TestRacesOnTheSeat()\n"} +{"Time":"2026-10-25T15:50:42.926628923+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /tmp/fix-1901b/race/p_test.go:13 +0x24\n"} +{"Time":"2026-10-25T15:50:42.926643853+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.tRunner()\n"} +{"Time":"2026-10-25T15:50:42.926648103+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2195 +0x21c\n"} +{"Time":"2026-10-25T15:50:42.926674843+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.(*T).Run.gowrap1()\n"} +{"Time":"2026-10-25T15:50:42.926680673+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2260 +0x38\n"} +{"Time":"2026-10-25T15:50:42.926695433+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"\n"} +{"Time":"2026-10-25T15:50:42.926711063+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"Goroutine 9 (running) created at:\n"} +{"Time":"2026-10-25T15:50:42.926726614+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.(*T).Run()\n"} +{"Time":"2026-10-25T15:50:42.926730814+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2260 +0xb12\n"} +{"Time":"2026-10-25T15:50:42.926746484+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.runTests.func1()\n"} +{"Time":"2026-10-25T15:50:42.926750764+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2744 +0x84\n"} +{"Time":"2026-10-25T15:50:42.926765354+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.tRunner()\n"} +{"Time":"2026-10-25T15:50:42.926769844+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2195 +0x21c\n"} +{"Time":"2026-10-25T15:50:42.926791794+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.runTests()\n"} +{"Time":"2026-10-25T15:50:42.926796704+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2742 +0x9e9\n"} +{"Time":"2026-10-25T15:50:42.926811544+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.(*M).Run()\n"} +{"Time":"2026-10-25T15:50:42.926816694+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" /usr/lib/go/src/testing/testing.go:2602 +0xf44\n"} +{"Time":"2026-10-25T15:50:42.926831695+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" main.main()\n"} +{"Time":"2026-10-25T15:50:42.926835935+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" _testmain.go:50 +0x164\n"} +{"Time":"2026-10-25T15:50:42.926850905+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"==================\n"} +{"Time":"2026-10-25T15:50:42.935320241+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":" testing.go:1867: race detected during execution of test\n","OutputType":"error"} +{"Time":"2026-10-25T15:50:42.935520113+01:00","Action":"output","Package":"example.com/race","Test":"TestRacesOnTheSeat","Output":"--- FAIL: TestRacesOnTheSeat (0.01s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.935592973+01:00","Action":"fail","Package":"example.com/race","Test":"TestRacesOnTheSeat","Elapsed":0.01} +{"Time":"2026-10-25T15:50:42.935722225+01:00","Action":"run","Package":"example.com/race","Test":"TestAfter"} +{"Time":"2026-10-25T15:50:42.935728845+01:00","Action":"output","Package":"example.com/race","Test":"TestAfter","Output":"=== RUN TestAfter\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.935995928+01:00","Action":"output","Package":"example.com/race","Test":"TestAfter","Output":"--- PASS: TestAfter (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.936006328+01:00","Action":"pass","Package":"example.com/race","Test":"TestAfter","Elapsed":0} +{"Time":"2026-10-25T15:50:42.936009978+01:00","Action":"output","Package":"example.com/race","Output":"FAIL\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.937730745+01:00","Action":"output","Package":"example.com/race","Output":"FAIL\texample.com/race\t0.028s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:42.937802066+01:00","Action":"fail","Package":"example.com/race","Elapsed":0.029} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/racemain.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/racemain.jsonl new file mode 100644 index 00000000..8a2a5c07 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/racemain.jsonl @@ -0,0 +1,27 @@ +{"Time":"2026-10-25T15:50:43.551701745+01:00","Action":"start","Package":"example.com/racemain"} +{"Time":"2026-10-25T15:50:43.570709708+01:00","Action":"run","Package":"example.com/racemain","Test":"TestFine"} +{"Time":"2026-10-25T15:50:43.570806059+01:00","Action":"output","Package":"example.com/racemain","Test":"TestFine","Output":"=== RUN TestFine\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:43.57085525+01:00","Action":"output","Package":"example.com/racemain","Test":"TestFine","Output":"--- PASS: TestFine (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:43.57086149+01:00","Action":"pass","Package":"example.com/racemain","Test":"TestFine","Elapsed":0} +{"Time":"2026-10-25T15:50:43.57086974+01:00","Action":"output","Package":"example.com/racemain","Output":"PASS\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:43.572155623+01:00","Action":"output","Package":"example.com/racemain","Output":"==================\n"} +{"Time":"2026-10-25T15:50:43.572168083+01:00","Action":"output","Package":"example.com/racemain","Output":"WARNING: DATA RACE\n"} +{"Time":"2026-10-25T15:50:43.572171933+01:00","Action":"output","Package":"example.com/racemain","Output":"Write at 0x000000836428 by goroutine 9:\n"} +{"Time":"2026-10-25T15:50:43.572176703+01:00","Action":"output","Package":"example.com/racemain","Output":" example.com/racemain.TestMain.func1()\n"} +{"Time":"2026-10-25T15:50:43.572180053+01:00","Action":"output","Package":"example.com/racemain","Output":" /tmp/fix-1901b/racemain/p_test.go:15 +0x24\n"} +{"Time":"2026-10-25T15:50:43.572184923+01:00","Action":"output","Package":"example.com/racemain","Output":"\n"} +{"Time":"2026-10-25T15:50:43.572189613+01:00","Action":"output","Package":"example.com/racemain","Output":"Previous write at 0x000000836428 by main goroutine:\n"} +{"Time":"2026-10-25T15:50:43.572192993+01:00","Action":"output","Package":"example.com/racemain","Output":" example.com/racemain.TestMain()\n"} +{"Time":"2026-10-25T15:50:43.572198573+01:00","Action":"output","Package":"example.com/racemain","Output":" /tmp/fix-1901b/racemain/p_test.go:16 +0x44\n"} +{"Time":"2026-10-25T15:50:43.572202433+01:00","Action":"output","Package":"example.com/racemain","Output":" main.main()\n"} +{"Time":"2026-10-25T15:50:43.572205623+01:00","Action":"output","Package":"example.com/racemain","Output":" _testmain.go:48 +0x171\n"} +{"Time":"2026-10-25T15:50:43.572208443+01:00","Action":"output","Package":"example.com/racemain","Output":"\n"} +{"Time":"2026-10-25T15:50:43.572211573+01:00","Action":"output","Package":"example.com/racemain","Output":"Goroutine 9 (running) created at:\n"} +{"Time":"2026-10-25T15:50:43.572214803+01:00","Action":"output","Package":"example.com/racemain","Output":" example.com/racemain.TestMain()\n"} +{"Time":"2026-10-25T15:50:43.572218043+01:00","Action":"output","Package":"example.com/racemain","Output":" /tmp/fix-1901b/racemain/p_test.go:15 +0x37\n"} +{"Time":"2026-10-25T15:50:43.572225414+01:00","Action":"output","Package":"example.com/racemain","Output":" main.main()\n"} +{"Time":"2026-10-25T15:50:43.572228654+01:00","Action":"output","Package":"example.com/racemain","Output":" _testmain.go:48 +0x171\n"} +{"Time":"2026-10-25T15:50:43.572231664+01:00","Action":"output","Package":"example.com/racemain","Output":"==================\n"} +{"Time":"2026-10-25T15:50:44.581262249+01:00","Action":"output","Package":"example.com/racemain","Output":"Found 1 data race(s)\n"} +{"Time":"2026-10-25T15:50:44.584693204+01:00","Action":"output","Package":"example.com/racemain","Output":"FAIL\texample.com/racemain\t1.031s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:50:44.584737425+01:00","Action":"fail","Package":"example.com/racemain","Elapsed":1.033} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/subpanic.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/subpanic.jsonl new file mode 100644 index 00000000..ec85af78 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/subpanic.jsonl @@ -0,0 +1,30 @@ +{"Time":"2026-10-26T20:15:37.791161045+01:00","Action":"start","Package":"example.com/subpanic"} +{"Time":"2026-10-26T20:15:37.793205666+01:00","Action":"run","Package":"example.com/subpanic","Test":"TestTable"} +{"Time":"2026-10-26T20:15:37.793257158+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"=== RUN TestTable\n","OutputType":"frame"} +{"Time":"2026-10-26T20:15:37.793288149+01:00","Action":"run","Package":"example.com/subpanic","Test":"TestTable/passes"} +{"Time":"2026-10-26T20:15:37.793290669+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable/passes","Output":"=== RUN TestTable/passes\n","OutputType":"frame"} +{"Time":"2026-10-26T20:15:37.793298009+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable/passes","Output":"--- PASS: TestTable/passes (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T20:15:37.793311679+01:00","Action":"pass","Package":"example.com/subpanic","Test":"TestTable/passes","Elapsed":0} +{"Time":"2026-10-26T20:15:37.79331977+01:00","Action":"run","Package":"example.com/subpanic","Test":"TestTable/panics"} +{"Time":"2026-10-26T20:15:37.79332377+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable/panics","Output":"=== RUN TestTable/panics\n","OutputType":"frame"} +{"Time":"2026-10-26T20:15:37.79332773+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable/panics","Output":"--- FAIL: TestTable/panics (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T20:15:37.79333111+01:00","Action":"fail","Package":"example.com/subpanic","Test":"TestTable/panics","Elapsed":0} +{"Time":"2026-10-26T20:15:37.79333383+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"--- FAIL: TestTable (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T20:15:37.795322529+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"panic: assignment to entry in nil map [recovered, repanicked]\n"} +{"Time":"2026-10-26T20:15:37.795331489+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"\n"} +{"Time":"2026-10-26T20:15:37.795340579+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"goroutine 9 [running]:\n"} +{"Time":"2026-10-26T20:15:37.79534387+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"testing.tRunner.func1.2({0x6b7010, 0x6eef80})\n"} +{"Time":"2026-10-26T20:15:37.79534657+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"\t/usr/lib/go/src/testing/testing.go:2125 +0x232\n"} +{"Time":"2026-10-26T20:15:37.79534907+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"testing.tRunner.func1()\n"} +{"Time":"2026-10-26T20:15:37.79535172+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"\t/usr/lib/go/src/testing/testing.go:2128 +0x329\n"} +{"Time":"2026-10-26T20:15:37.79535625+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"panic({0x6b7010?, 0x6eef80?})\n"} +{"Time":"2026-10-26T20:15:37.79535879+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"\t/usr/lib/go/src/runtime/panic.go:859 +0x125\n"} +{"Time":"2026-10-26T20:15:37.79536129+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"example.com/subpanic.TestTable.func2(0x3b39436666c8?)\n"} +{"Time":"2026-10-26T20:15:37.79536452+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"\t/tmp/1901k/go/subpanic/p_test.go:7 +0x28\n"} +{"Time":"2026-10-26T20:15:37.79536782+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"testing.tRunner(0x3b39436666c8, 0x6d4b58)\n"} +{"Time":"2026-10-26T20:15:37.7953704+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"\t/usr/lib/go/src/testing/testing.go:2195 +0xea\n"} +{"Time":"2026-10-26T20:15:37.79537289+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"created by testing.(*T).Run in goroutine 7\n"} +{"Time":"2026-10-26T20:15:37.795381681+01:00","Action":"output","Package":"example.com/subpanic","Test":"TestTable","Output":"\t/usr/lib/go/src/testing/testing.go:2260 +0x4d4\n"} +{"Time":"2026-10-26T20:15:37.795731441+01:00","Action":"fail","Package":"example.com/subpanic","Test":"TestTable","Elapsed":0} +{"Time":"2026-10-26T20:15:37.795759332+01:00","Action":"output","Package":"example.com/subpanic","Output":"FAIL\texample.com/subpanic\t0.004s\n","OutputType":"frame"} +{"Time":"2026-10-26T20:15:37.795783503+01:00","Action":"fail","Package":"example.com/subpanic","Elapsed":0.005} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/subtests.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/subtests.jsonl new file mode 100644 index 00000000..b12cb5ac --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/subtests.jsonl @@ -0,0 +1,17 @@ +{"Time":"2026-10-26T19:40:29.768101399+01:00","Action":"start","Package":"example.com/subtests"} +{"Time":"2026-10-26T19:40:29.770109733+01:00","Action":"run","Package":"example.com/subtests","Test":"TestTheTable"} +{"Time":"2026-10-26T19:40:29.770152272+01:00","Action":"output","Package":"example.com/subtests","Test":"TestTheTable","Output":"=== RUN TestTheTable\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770189372+01:00","Action":"run","Package":"example.com/subtests","Test":"TestTheTable/passes"} +{"Time":"2026-10-26T19:40:29.770191882+01:00","Action":"output","Package":"example.com/subtests","Test":"TestTheTable/passes","Output":"=== RUN TestTheTable/passes\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770197442+01:00","Action":"output","Package":"example.com/subtests","Test":"TestTheTable/passes","Output":"--- PASS: TestTheTable/passes (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770204352+01:00","Action":"pass","Package":"example.com/subtests","Test":"TestTheTable/passes","Elapsed":0} +{"Time":"2026-10-26T19:40:29.770209622+01:00","Action":"run","Package":"example.com/subtests","Test":"TestTheTable/fails"} +{"Time":"2026-10-26T19:40:29.770211832+01:00","Action":"output","Package":"example.com/subtests","Test":"TestTheTable/fails","Output":"=== RUN TestTheTable/fails\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770214722+01:00","Action":"output","Package":"example.com/subtests","Test":"TestTheTable/fails","Output":" s_test.go:7: got 3 machines, want 4\n","OutputType":"error"} +{"Time":"2026-10-26T19:40:29.770218032+01:00","Action":"output","Package":"example.com/subtests","Test":"TestTheTable/fails","Output":"--- FAIL: TestTheTable/fails (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770220732+01:00","Action":"fail","Package":"example.com/subtests","Test":"TestTheTable/fails","Elapsed":0} +{"Time":"2026-10-26T19:40:29.770223522+01:00","Action":"output","Package":"example.com/subtests","Test":"TestTheTable","Output":"--- FAIL: TestTheTable (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770226292+01:00","Action":"fail","Package":"example.com/subtests","Test":"TestTheTable","Elapsed":0} +{"Time":"2026-10-26T19:40:29.770228582+01:00","Action":"output","Package":"example.com/subtests","Output":"FAIL\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770561979+01:00","Action":"output","Package":"example.com/subtests","Output":"FAIL\texample.com/subtests\t0.002s\n","OutputType":"frame"} +{"Time":"2026-10-26T19:40:29.770581629+01:00","Action":"fail","Package":"example.com/subtests","Elapsed":0.002} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/go/timeout.jsonl b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/timeout.jsonl new file mode 100644 index 00000000..12a2c12f --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/go/timeout.jsonl @@ -0,0 +1,43 @@ +{"Time":"2026-10-25T15:34:36.049580618+01:00","Action":"start","Package":"example.com/timeout"} +{"Time":"2026-10-25T15:34:36.053250986+01:00","Action":"run","Package":"example.com/timeout","Test":"TestQuick"} +{"Time":"2026-10-25T15:34:36.053354018+01:00","Action":"output","Package":"example.com/timeout","Test":"TestQuick","Output":"=== RUN TestQuick\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:36.053459789+01:00","Action":"output","Package":"example.com/timeout","Test":"TestQuick","Output":"--- PASS: TestQuick (0.00s)\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:36.05348499+01:00","Action":"pass","Package":"example.com/timeout","Test":"TestQuick","Elapsed":0} +{"Time":"2026-10-25T15:34:36.0535114+01:00","Action":"run","Package":"example.com/timeout","Test":"TestWaitsForever"} +{"Time":"2026-10-25T15:34:36.05351549+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"=== RUN TestWaitsForever\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:36.053567451+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":" p_test.go:11: waiting for the bus\n"} +{"Time":"2026-10-25T15:34:38.064693307+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"panic: test timed out after 2s\n"} +{"Time":"2026-10-25T15:34:38.06487122+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\trunning tests:\n"} +{"Time":"2026-10-25T15:34:38.06491684+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t\tTestWaitsForever (2s)\n"} +{"Time":"2026-10-25T15:34:38.065034382+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\n"} +{"Time":"2026-10-25T15:34:38.065108573+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"goroutine 33 [running]:\n"} +{"Time":"2026-10-25T15:34:38.065154754+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"testing.(*M).startAlarm.func1()\n"} +{"Time":"2026-10-25T15:34:38.065386208+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2961 +0x34a\n"} +{"Time":"2026-10-25T15:34:38.065431878+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"created by time.goFunc\n"} +{"Time":"2026-10-25T15:34:38.0655151+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/time/sleep.go:182 +0x2d\n"} +{"Time":"2026-10-25T15:34:38.06553471+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\n"} +{"Time":"2026-10-25T15:34:38.065847805+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"goroutine 1 [chan receive]:\n"} +{"Time":"2026-10-25T15:34:38.066038298+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"testing.(*T).Run(0x3a0209bc8008, {0x5580aa?, 0x3a0209a9caa0?}, 0x6d5b10)\n"} +{"Time":"2026-10-25T15:34:38.066047488+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2268 +0x4f2\n"} +{"Time":"2026-10-25T15:34:38.066051368+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"testing.runTests.func1(0x3a0209bc8008)\n"} +{"Time":"2026-10-25T15:34:38.066056128+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2744 +0x37\n"} +{"Time":"2026-10-25T15:34:38.066059478+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"testing.tRunner(0x3a0209bc8008, 0x3a0209a9cbc8)\n"} +{"Time":"2026-10-25T15:34:38.066064958+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2195 +0xea\n"} +{"Time":"2026-10-25T15:34:38.066069599+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"testing.runTests({0x559017, 0x13}, {0x559017, 0x13}, 0x3a0209b8e0d8, {0x6f19f0, 0x2, 0x2}, {0xc2afa2bf832a3f56, 0x773908b5, ...})\n"} +{"Time":"2026-10-25T15:34:38.066083309+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2742 +0x510\n"} +{"Time":"2026-10-25T15:34:38.066086879+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"testing.(*M).Run(0x3a0209b8c1e0)\n"} +{"Time":"2026-10-25T15:34:38.066090269+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2602 +0x6af\n"} +{"Time":"2026-10-25T15:34:38.066093429+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"main.main()\n"} +{"Time":"2026-10-25T15:34:38.066097569+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t_testmain.go:48 +0x9b\n"} +{"Time":"2026-10-25T15:34:38.066100639+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\n"} +{"Time":"2026-10-25T15:34:38.066103769+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"goroutine 20 [sleep]:\n"} +{"Time":"2026-10-25T15:34:38.066106969+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"time.Sleep(0xdf8475800)\n"} +{"Time":"2026-10-25T15:34:38.066110279+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/runtime/time.go:368 +0x165\n"} +{"Time":"2026-10-25T15:34:38.066113639+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"example.com/timeout.TestWaitsForever(0x3a0209bc8488?)\n"} +{"Time":"2026-10-25T15:34:38.066117109+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/tmp/fix-1901b/timeout/p_test.go:12 +0x48\n"} +{"Time":"2026-10-25T15:34:38.066120239+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"testing.tRunner(0x3a0209bc8488, 0x6d5b10)\n"} +{"Time":"2026-10-25T15:34:38.066123509+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2195 +0xea\n"} +{"Time":"2026-10-25T15:34:38.066126839+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"created by testing.(*T).Run in goroutine 1\n"} +{"Time":"2026-10-25T15:34:38.066129989+01:00","Action":"output","Package":"example.com/timeout","Test":"TestWaitsForever","Output":"\t/usr/lib/go/src/testing/testing.go:2260 +0x4d4\n"} +{"Time":"2026-10-25T15:34:38.066986453+01:00","Action":"output","Package":"example.com/timeout","Output":"FAIL\texample.com/timeout\t2.017s\n","OutputType":"frame"} +{"Time":"2026-10-25T15:34:38.067002113+01:00","Action":"fail","Package":"example.com/timeout","Elapsed":2.017} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.console b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.console new file mode 100644 index 00000000..90a8ef65 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.console @@ -0,0 +1,2 @@ +npm notice run test +npm notice run node --test --experimental-strip-types 'test/*.test.ts' diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.tap b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.tap new file mode 100644 index 00000000..bea3c651 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/crash.tap @@ -0,0 +1,41 @@ +TAP version 13 +# Subtest: passes before the crash +ok 1 - passes before the crash + --- + duration_ms: 0.746694 + type: 'test' + ... +# Subtest: throws after it returned +ok 2 - throws after it returned + --- + duration_ms: 0.763364 + type: 'test' + ... +# Subtest: waits after the throw +ok 3 - waits after the throw + --- + duration_ms: 49.953893 + type: 'test' + ... +# Error: Test "throws after it returned" at test/b.test.ts:2:1 generated asynchronous activity after the test ended. This activity created the error "Error: the bus closed under the test" and would have caused the test to fail, but instead triggered an uncaughtException event. +# Subtest: test/b.test.ts +not ok 2 - test/b.test.ts + --- + duration_ms: 155.864774 + type: 'test' + location: '/tmp/1901k/node/crash/test/b.test.ts:1:1' + failureType: 'testCodeFailure' + exitCode: 1 + signal: ~ + error: 'test failed' + code: 'ERR_TEST_FAILURE' + ... +1..4 +# tests 4 +# suites 0 +# pass 3 +# fail 1 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 168.479173 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.console b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.console new file mode 100644 index 00000000..90a8ef65 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.console @@ -0,0 +1,2 @@ +npm notice run test +npm notice run node --test --experimental-strip-types 'test/*.test.ts' diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.tap b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.tap new file mode 100644 index 00000000..89dbfb8f --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/logcrash.tap @@ -0,0 +1,42 @@ +TAP version 13 +# retrying after Error: the store was not ready yet +# Subtest: passes and logs +ok 1 - passes and logs + --- + duration_ms: 1.184595 + type: 'test' + ... +# Subtest: throws after it returned +ok 2 - throws after it returned + --- + duration_ms: 0.748862 + type: 'test' + ... +# Subtest: waits after the throw +ok 3 - waits after the throw + --- + duration_ms: 51.019875 + type: 'test' + ... +# Error: Test "throws after it returned" at test/b.test.ts:2:1 generated asynchronous activity after the test ended. This activity created the error "Error: the bus closed under the test" and would have caused the test to fail, but instead triggered an uncaughtException event. +# Subtest: test/b.test.ts +not ok 2 - test/b.test.ts + --- + duration_ms: 172.91715 + type: 'test' + location: '/tmp/1901k/node/logcrash/test/b.test.ts:1:1' + failureType: 'testCodeFailure' + exitCode: 1 + signal: ~ + error: 'test failed' + code: 'ERR_TEST_FAILURE' + ... +1..4 +# tests 4 +# suites 0 +# pass 3 +# fail 1 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 185.744334 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.console b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.console new file mode 100644 index 00000000..90a8ef65 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.console @@ -0,0 +1,2 @@ +npm notice run test +npm notice run node --test --experimental-strip-types 'test/*.test.ts' diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.tap b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.tap new file mode 100644 index 00000000..06e97611 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/suite.tap @@ -0,0 +1,61 @@ +TAP version 13 +# Subtest: the seat + # Subtest: passes inside + ok 1 - passes inside + --- + duration_ms: 0.577396 + type: 'test' + ... + # Subtest: fails inside + not ok 2 - fails inside + --- + duration_ms: 1.621198 + type: 'test' + location: '/tmp/1901k/node/suite/test/a.test.ts:5:3' + failureType: 'testCodeFailure' + error: |- + Expected values to be strictly deep-equal: + + actual - expected + +  { + + holders: 2 + - holders: 1 +  } + + code: 'ERR_ASSERTION' + name: 'AssertionError' + expected: + holders: 1 + actual: + holders: 2 + operator: 'deepStrictEqual' + stack: |- + TestContext. (file:///tmp/1901k/node/suite/test/a.test.ts:5:37) + Test.runInAsyncScope (node:async_hooks:226:14) + Test.run (node:internal/test_runner/test:1402:25) + Suite.processPendingSubtests (node:internal/test_runner/test:974:18) + Test.postRun (node:internal/test_runner/test:1542:19) + Test.run (node:internal/test_runner/test:1467:12) + async Promise.all (index 0) + async Suite.run (node:internal/test_runner/test:1905:7) + async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) + ... + 1..2 +not ok 1 - the seat + --- + duration_ms: 3.295664 + type: 'suite' + location: '/tmp/1901k/node/suite/test/a.test.ts:3:1' + failureType: 'subtestsFailed' + error: '1 subtest failed' + code: 'ERR_TEST_FAILURE' + ... +1..1 +# tests 2 +# suites 1 +# pass 1 +# fail 1 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 115.948112 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.console b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.console new file mode 100644 index 00000000..90a8ef65 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.console @@ -0,0 +1,2 @@ +npm notice run test +npm notice run node --test --experimental-strip-types 'test/*.test.ts' diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.tap b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.tap new file mode 100644 index 00000000..ceadd12c --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/syntax.tap @@ -0,0 +1,47 @@ +TAP version 13 +# Subtest: passes in the first file +ok 1 - passes in the first file + --- + duration_ms: 0.637465 + type: 'test' + ... +# node:internal/modules/run_main:111 +# triggerUncaughtException( +# ^ +# file:///tmp/1901k/node/syntax/test/b.test.ts:2 +# test('never loads', () => { +# SyntaxError [ERR_INVALID_TYPESCRIPT_SYNTAX]: Expected ',', got '' +#  at parseTypeScript (node:internal/modules/typescript:61:36) +#  at processTypeScriptCode (node:internal/modules/typescript:129:37) +#  at Object.stripTypeScriptModuleTypes (node:internal/modules/typescript:172:22) +#  at stripTypeScriptModuleTypes (node:internal/modules/esm/translators:35:49) +#  at ModuleLoader. (node:internal/modules/esm/translators:688:29) +#  at \#translate (node:internal/modules/esm/loader:441:20) +#  at afterLoad (node:internal/modules/esm/loader:509:29) +#  at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:514:12) +#  at \#getOrCreateModuleJobAfterResolve (node:internal/modules/esm/loader:567:36) +#  at afterResolve (node:internal/modules/esm/loader:614:52) { +# code: 'ERR_INVALID_TYPESCRIPT_SYNTAX' +# } +# Node.js v26.12.1 +# Subtest: test/b.test.ts +not ok 2 - test/b.test.ts + --- + duration_ms: 87.629815 + type: 'test' + location: '/tmp/1901k/node/syntax/test/b.test.ts:1:1' + failureType: 'testCodeFailure' + exitCode: 1 + signal: ~ + error: 'test failed' + code: 'ERR_TEST_FAILURE' + ... +1..2 +# tests 2 +# suites 0 +# pass 1 +# fail 1 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 106.551435 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.console b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.console new file mode 100644 index 00000000..90a8ef65 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.console @@ -0,0 +1,2 @@ +npm notice run test +npm notice run node --test --experimental-strip-types 'test/*.test.ts' diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.tap b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.tap new file mode 100644 index 00000000..dd87e171 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/timeout.tap @@ -0,0 +1,26 @@ +TAP version 13 +# Subtest: passes before the wait +ok 1 - passes before the wait + --- + duration_ms: 0.683015 + type: 'test' + ... +# Subtest: waits for an answer that never comes +not ok 2 - waits for an answer that never comes + --- + duration_ms: 201.103775 + type: 'test' + location: '/tmp/1901k/node/timeout/test/a.test.ts:3:1' + failureType: 'testTimeoutFailure' + error: 'test timed out after 200ms' + code: 'ERR_TEST_FAILURE' + ... +1..2 +# tests 2 +# suites 0 +# pass 1 +# fail 0 +# cancelled 1 +# skipped 0 +# todo 0 +# duration_ms 308.920061 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.console b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.console new file mode 100644 index 00000000..90a8ef65 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.console @@ -0,0 +1,2 @@ +npm notice run test +npm notice run node --test --experimental-strip-types 'test/*.test.ts' diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.tap b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.tap new file mode 100644 index 00000000..8e0a85b8 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/node/two-files.tap @@ -0,0 +1,49 @@ +TAP version 13 +# Subtest: passes in the first file +ok 1 - passes in the first file + --- + duration_ms: 0.740124 + type: 'test' + ... +# judged against the seat as it stands +# Subtest: passes in the second file first +ok 2 - passes in the second file first + --- + duration_ms: 0.916463 + type: 'test' + ... +# Subtest: fails in the second file +not ok 3 - fails in the second file + --- + duration_ms: 1.719236 + type: 'test' + location: '/tmp/1901k/node/two-files/test/b.test.ts:4:1' + failureType: 'testCodeFailure' + error: |- + one plus one is not three + + 2 !== 3 + + code: 'ERR_ASSERTION' + name: 'AssertionError' + expected: 3 + actual: 2 + operator: 'strictEqual' + stack: |- + TestContext. (file:///tmp/1901k/node/two-files/test/b.test.ts:6:10) + Test.runInAsyncScope (node:async_hooks:226:14) + Test.run (node:internal/test_runner/test:1402:25) + Test.processPendingSubtests (node:internal/test_runner/test:974:18) + Test.postRun (node:internal/test_runner/test:1542:19) + Test.run (node:internal/test_runner/test:1467:12) + async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) + ... +1..3 +# tests 3 +# suites 0 +# pass 2 +# fail 1 +# cancelled 0 +# skipped 0 +# todo 0 +# duration_ms 135.931121 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-run.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-run.txt new file mode 100644 index 00000000..2bac81e5 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-run.txt @@ -0,0 +1 @@ +Error: building at STEP "RUN false": exit status 1 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-timeout.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-timeout.txt new file mode 100644 index 00000000..8fb9a99f --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/buildah-bud-timeout.txt @@ -0,0 +1 @@ +Error: creating build container: initializing source docker://alpine: pinging container registry registry-1.docker.io: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 10.10.0.3:53: i/o timeout diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-closed.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-closed.txt new file mode 100644 index 00000000..259bd3a5 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-closed.txt @@ -0,0 +1,2 @@ +Connection closed by 10.10.0.1 port 222 +fatal: Could not read from remote repository. diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-kex.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-kex.txt new file mode 100644 index 00000000..50a6d9b0 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-kex.txt @@ -0,0 +1,6 @@ +kex_exchange_identification: read: Connection reset by peer +Connection reset by 10.10.0.1 port 222 +fatal: Could not read from remote repository. + +Please make sure you have the correct access rights +and the repository exists. diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-noref.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-noref.txt new file mode 100644 index 00000000..8f5ec1a6 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-noref.txt @@ -0,0 +1 @@ +fatal: couldn't find remote ref 0123456789abcdef0123456789abcdef01234567 diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-resolve.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-resolve.txt new file mode 100644 index 00000000..3c1742f8 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/git-fetch-resolve.txt @@ -0,0 +1,2 @@ +ssh: Could not resolve hostname mesh-forge: Temporary failure in name resolution +fatal: Could not read from remote repository. diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-checksum.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-checksum.txt new file mode 100644 index 00000000..a40e5896 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-checksum.txt @@ -0,0 +1 @@ +{"Path":"git.novox.be/novox/mesh-sdk/go","Error":"verifying module: checksum mismatch"} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-dial.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-dial.txt new file mode 100644 index 00000000..568886be --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-dial.txt @@ -0,0 +1 @@ +{"Path":"git.novox.be/novox/mesh-sdk/go","Error":"git.novox.be/novox/mesh-sdk/go@abc: dial tcp 10.10.0.1:5100: i/o timeout"} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-lookup.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-lookup.txt new file mode 100644 index 00000000..4d523f91 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-lookup.txt @@ -0,0 +1 @@ +{"Path":"git.novox.be/novox/mesh-sdk/go","Error":"git.novox.be/novox/mesh-sdk/go@abc: dial tcp: lookup git.novox.be on 10.10.0.3:53: read udp 10.10.0.3:42292->10.10.0.3:53: i/o timeout"} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-unknown.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-unknown.txt new file mode 100644 index 00000000..1603ebfe --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/go-download-unknown.txt @@ -0,0 +1 @@ +{"Path":"git.novox.be/novox/mesh-sdk/go","Error":"invalid version: unknown revision abc"} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-404.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-404.txt new file mode 100644 index 00000000..53e44d28 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-404.txt @@ -0,0 +1,2 @@ +npm error code E404 +npm error 404 Not Found - GET https://git.novox.be/api/packages/novox/npm/@novox%2fx diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-eaiagain.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-eaiagain.txt new file mode 100644 index 00000000..c47a4856 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-eaiagain.txt @@ -0,0 +1,3 @@ +npm error code EAI_AGAIN +npm error syscall getaddrinfo +npm error errno EAI_AGAIN diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-econnreset.txt b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-econnreset.txt new file mode 100644 index 00000000..1657f055 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/passing/npm-ci-econnreset.txt @@ -0,0 +1,4 @@ +npm error code ECONNRESET +npm error syscall read +npm error errno -104 +npm error network aborted diff --git a/modules/mesh-delivery-sdk/steprun/conformance/captured/tsc/typeerror.console b/modules/mesh-delivery-sdk/steprun/conformance/captured/tsc/typeerror.console new file mode 100644 index 00000000..ac7713ed --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/captured/tsc/typeerror.console @@ -0,0 +1 @@ +seat.ts(2,14): error TS2322: Type 'number' is not assignable to type 'string'. diff --git a/modules/mesh-delivery-sdk/steprun/conformance/conformance.go b/modules/mesh-delivery-sdk/steprun/conformance/conformance.go new file mode 100644 index 00000000..f04eadbb --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/conformance.go @@ -0,0 +1,279 @@ +// Package conformance is the kit every build module's tests run (novox/hq issue 1901, its thorough fix): real output of +// the test runners, captured with the build nodes' own toolchains (captured/README.md), and what a build module must say +// of each failure in it under the failure contract (buildstep.Failure). A build module's test calls Run with its own parse +// path, the code that turns a runner's output into the failures of its test result; the kit fails the test when a +// failure is not named, its cause is missing or wrong, or a passing line stands in its place. +// +// A catalogue check (mesh-catalog checks/failurekit) refuses a build module with a test step whose tests do not call Run, +// and any build module whose tests do not call LeftRunning, the kit's case of steps a previous process left running +// (leftrunning.go, issue 1890). +package conformance + +import ( + "embed" + "fmt" + "slices" + "strings" + "testing" + + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" +) + +// The runners the kit holds output of. +const ( + // GoTest is `go test -json -count=1 ./...`: Output.Stdout is its output (go1.27.3). + GoTest = "go test -json" + // NodeTest is a package's `npm test` running `node --test --experimental-strip-types` with + // NODE_OPTIONS=buildstep.NodeTestOptions(): Output.Report is the TAP file, Output.Stdout the script's own output + // and stderr, Output.Dir the package's directory as it was captured (node v26.12.1, npm 12.2.1). + NodeTest = "node --test" + // TypeCheck is tsc's type-check (`tsc --noEmit`, typescript 5.9.3): Output.Stdout is what it wrote; its failure + // names the test "type-check". + TypeCheck = "tsc" +) + +// Output is one captured run of a runner, as a build module's parse path takes it. +type Output struct { + Stdout, Stderr string + // Report is what a runner wrote to a report file of its own (node --test's TAP), "" for the others. + Report string + // Dir is the directory the run was captured in: a node test's file is said relative to it. + Dir string +} + +// Parse is a build module's own parse path: the failures its test result would carry for one run that failed. +type Parse func(Output) []buildstep.Failure + +// Case is one captured run and what its failure must say. +type Case struct { + Name string + Runner string + // Test is the failing test the failure names (for a package that stopped, the tests that were running; "" for none). + Test string + // File, when set, is where the failing test is. + File string + // Cause holds what the failure's cause must contain. + Cause []string + // Passing are the names of tests that passed in the run, and what they logged: no failure's words may hold them. + Passing []string +} + +//go:embed captured +var captured embed.FS + +// Cases are the kit's cases of a runner. +func Cases(runner string) []Case { + var out []Case + for _, c := range cases { + if c.Runner == runner { + out = append(out, c) + } + } + return out +} + +var cases = []Case{ + {Name: "passfirst", Runner: GoTest, Test: "TestTheSecondPackageFails", Cause: []string{"the seat has 2 holders, want 1"}, + Passing: []string{"TestTheFirstPackagePasses", "TestTheSecondPackagePassesFirst"}}, + {Name: "subtests", Runner: GoTest, Test: "TestTheTable/fails", Cause: []string{"got 3 machines, want 4"}, Passing: []string{"TestTheTable/passes"}}, + {Name: "logthenfatal", Runner: GoTest, Test: "TestThree", Cause: []string{"3 subscription(s) derive to a subject no emitter owns:"}}, + {Name: "panicking", Runner: GoTest, Test: "TestPanics", Cause: []string{"panic: assignment to entry in nil map"}}, + {Name: "timeout", Runner: GoTest, Test: "TestWaitsForever", Cause: []string{"panic: test timed out after 2s", "TestWaitsForever"}}, + {Name: "deeptimeout", Runner: GoTest, Test: "TestHoldsTheSeat, TestWaitsForTheBus", Cause: []string{"panic: test timed out after 2s", "TestHoldsTheSeat", "TestWaitsForTheBus"}}, + {Name: "buildfail", Runner: GoTest, Cause: []string{`cannot use "seat" (untyped string constant) as int value`}}, + {Name: "exiting", Runner: GoTest, Test: "TestExits", Cause: []string{"exited", "TestExits"}}, + {Name: "killed", Runner: GoTest, Test: "TestKilled", Cause: []string{"signal: killed"}}, + {Name: "passthenfail", Runner: GoTest, Cause: []string{"panic: the bus closed after the tests: nats: connection closed"}}, + {Name: "mainexit", Runner: GoTest, Cause: []string{"passed", "exited"}}, + {Name: "race", Runner: GoTest, Test: "TestRacesOnTheSeat", Cause: []string{"DATA RACE", "Write at", "example.com/race.TestRacesOnTheSeat.func1()", "p_test.go:13", "created at example.com/race.TestRacesOnTheSeat()"}}, + {Name: "subpanic", Runner: GoTest, Test: "TestTable/panics", Cause: []string{"panic: assignment to entry in nil map"}, Passing: []string{"TestTable/passes"}}, + {Name: "racemain", Runner: GoTest, Cause: []string{"DATA RACE", "Write at", "example.com/racemain.TestMain.func1()", "p_test.go:15", "created at example.com/racemain.TestMain()"}}, + + {Name: "two-files", Runner: NodeTest, Test: "fails in the second file", File: "test/b.test.ts:4:1", Cause: []string{"one plus one is not three"}, + Passing: []string{"passes in the first file", "passes in the second file first"}}, + {Name: "suite", Runner: NodeTest, Test: "fails inside", File: "test/a.test.ts:5:3", Cause: []string{"Expected values to be strictly deep-equal:"}, + Passing: []string{"passes inside"}}, + {Name: "crash", Runner: NodeTest, Test: "test/b.test.ts", File: "test/b.test.ts:1:1", Cause: []string{"the bus closed under the test"}, + Passing: []string{"passes before the crash"}}, + {Name: "logcrash", Runner: NodeTest, Test: "test/b.test.ts", File: "test/b.test.ts:1:1", Cause: []string{"the bus closed under the test"}, + Passing: []string{"passes and logs", "retrying after Error: the store was not ready yet"}}, + {Name: "timeout", Runner: NodeTest, Test: "waits for an answer that never comes", File: "test/a.test.ts:3:1", Cause: []string{"test timed out after 200ms"}, + Passing: []string{"passes before the wait"}}, + {Name: "syntax", Runner: NodeTest, Test: "test/b.test.ts", File: "test/b.test.ts:1:1", Cause: []string{"SyntaxError", "Expected ',', got ''"}, + Passing: []string{"passes in the first file"}}, + + {Name: "typeerror", Runner: TypeCheck, Test: "type-check", Cause: []string{"seat.ts(2,14): error TS2322: Type 'number' is not assignable to type 'string'."}}, +} + +// Load is the captured output of a case. +func Load(c Case) (Output, error) { + switch c.Runner { + case GoTest: + b, err := captured.ReadFile("captured/go/" + c.Name + ".jsonl") + return Output{Stdout: string(b)}, err + case NodeTest: + report, err := captured.ReadFile("captured/node/" + c.Name + ".tap") + if err != nil { + return Output{}, err + } + console, err := captured.ReadFile("captured/node/" + c.Name + ".console") + return Output{Report: string(report), Stdout: string(console), Dir: "/tmp/1901k/node/" + c.Name}, err + default: + b, err := captured.ReadFile("captured/tsc/" + c.Name + ".console") + return Output{Stdout: string(b), Dir: "/tmp/1901k/tsc/" + c.Name}, err + } +} + +// Run runs every case of runner through parse, each as a subtest, and fails a case whose failure does not keep the +// contract: exactly one failure, naming the failing test (and its file, where the runner says it), with a cause that +// holds what the case says and is no passing line, an output that starts with the cause, stays within its bound and +// holds no passing line and no passing test's name. +func Run(t *testing.T, runner string, parse Parse) { + t.Helper() + cs := Cases(runner) + if len(cs) == 0 { + t.Fatalf("the kit holds no case of the runner %q", runner) + } + for _, c := range cs { + t.Run(c.Name, func(t *testing.T) { + out, err := Load(c) + if err != nil { + t.Fatal(err) + } + for _, problem := range Judge(c, parse(out)) { + t.Error(problem) + } + }) + } +} + +// Judge says what is wrong with the failures a parse path made of a case; nothing when they keep the contract. +func Judge(c Case, failed []buildstep.Failure) []string { + var problems []string + say := func(s string) { problems = append(problems, c.Runner+" "+c.Name+": "+s) } + if len(failed) != 1 { + say(fmt.Sprintf("want one failure, got %d: %s", len(failed), describe(failed))) + if len(failed) == 0 { + return problems + } + } + f := failed[0] + if f.Test != c.Test { + say("the failure names the test " + quote(f.Test) + ", want " + quote(c.Test)) + } + if c.File != "" && f.File != c.File { + say("the failure's file is " + quote(f.File) + ", want " + quote(c.File)) + } + if why := buildstep.Hidden(f); why != "" { + say("the failure hides its cause: " + why) + } + for _, want := range c.Cause { + if !strings.Contains(f.Cause, want) { + say("the cause " + quote(f.Cause) + " does not hold " + quote(want)) + } + } + if first := strings.SplitN(f.Output, "\n", 2)[0]; strings.TrimSpace(first) != strings.TrimSpace(f.Cause) { + say("the output starts with " + quote(first) + ", not with the cause") + } + if len(f.Output) > buildstep.OutputBytes+buildstep.LineBytes+64 { + say(fmt.Sprintf("the output holds %d bytes, over its bound", len(f.Output))) + } + for _, l := range strings.Split(f.Output, "\n") { + if buildstep.PassingLine(l) { + say("the output keeps the passing line " + quote(l)) + } + } + for _, p := range c.Passing { + if strings.Contains(f.Output, p+"\n") || strings.HasSuffix(f.Output, p) || strings.Contains(f.Cause, p) || strings.Contains(f.Output, "- "+p) { + say("the failure's words hold the passing test " + quote(p)) + } + } + return problems +} + +func describe(failed []buildstep.Failure) string { + var s []string + for _, f := range failed { + s = append(s, quote(f.Package+" "+f.Test)+" ("+quote(f.Cause)+")") + } + return strings.Join(s, ", ") +} + +func quote(s string) string { return fmt.Sprintf("%q", s) } + +// The runners whose network failures the kit holds words of (Passing). +const ( + GitFetch = "git fetch" + GoDownload = "go mod download" + NpmCI = "npm ci" + BuildahBud = "buildah bud" +) + +// PassingCase is the words of one runner and whether they are a transport fault: a network that did not answer, which the +// bus gives the ask again for (novox/hq ADR 0664 §1), or a failure of the source, which fails the step at once. +type PassingCase struct { + Name, Runner string + Transport bool +} + +// PassingCases are the kit's cases of the network's failures (captured/passing). +var PassingCases = []PassingCase{ + {"git-fetch-kex", GitFetch, true}, {"git-fetch-closed", GitFetch, true}, {"git-fetch-resolve", GitFetch, true}, {"git-fetch-noref", GitFetch, false}, + {"go-download-lookup", GoDownload, true}, {"go-download-dial", GoDownload, true}, {"go-download-unknown", GoDownload, false}, {"go-download-checksum", GoDownload, false}, + {"npm-ci-econnreset", NpmCI, true}, {"npm-ci-eaiagain", NpmCI, true}, {"npm-ci-404", NpmCI, false}, + {"buildah-bud-timeout", BuildahBud, true}, {"buildah-bud-run", BuildahBud, false}, +} + +// Failed is a build module's own path from a runner's words to the error its step ends with: the same code its step runs on +// a failed command, fed the words of a runner's failed run. +type Failed func(runner, words string) error + +// Passing runs every case of the runners through failed, each as a subtest, and fails a build module whose step does not +// say a network's failure as a buildstep.Passing (the bus then gives the ask again) or says a failure of the source as one. +// A build module names the runners its steps use; the case's words are in captured/passing. +func Passing(t *testing.T, runners []string, failed Failed) { + t.Helper() + ran := 0 + for _, c := range PassingCases { + if !slices.Contains(runners, c.Runner) { + continue + } + ran++ + t.Run(c.Name, func(t *testing.T) { + if problem := judgePassing(c, failed); problem != "" { + t.Error(problem) + } + }) + } + if ran == 0 { + t.Fatalf("the kit holds no passing case of the runners %v", runners) + } +} + +// JudgePassing is the problems of failed over every case of the runners: what Passing fails a build module for. +func JudgePassing(runners []string, failed Failed) []string { + var out []string + for _, c := range PassingCases { + if slices.Contains(runners, c.Runner) { + if p := judgePassing(c, failed); p != "" { + out = append(out, p) + } + } + } + return out +} + +func judgePassing(c PassingCase, failed Failed) string { + words, err := captured.ReadFile("captured/passing/" + c.Name + ".txt") + if err != nil { + return err.Error() + } + got := failed(c.Runner, string(words)) + switch { + case got == nil: + return c.Name + ": the step passed on a failed run" + case buildstep.IsPassing(got) != c.Transport: + return fmt.Sprintf("%s: the step ends %q, a transport fault %v, want %v", c.Name, got, buildstep.IsPassing(got), c.Transport) + } + return "" +} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/conformance_test.go b/modules/mesh-delivery-sdk/steprun/conformance/conformance_test.go new file mode 100644 index 00000000..159c5acc --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/conformance_test.go @@ -0,0 +1,183 @@ +package conformance + +import ( + "context" + "encoding/json" + "errors" + "strings" + "testing" + "time" + + buildrun "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrun" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun" +) + +// The failure contract (issue 1901): the SDK's own parsers keep it on every captured case of the kit (1901/AC6); the +// kit refuses what the build modules sent before it; the contract's own rules; and the Go reader's older guarantees. +func TestTheFailureContract(t *testing.T) { + t.Run("the SDK parsers keep it", func(t *testing.T) { + Run(t, GoTest, func(o Output) []sdkstep.Failure { return steprun.ReadGoTest(o.Stdout, ".").Failed }) + Run(t, NodeTest, func(o Output) []sdkstep.Failure { return steprun.ReadTAP(".", "test", o.Dir, o.Report, o.Stdout) }) + Run(t, TypeCheck, func(o Output) []sdkstep.Failure { + return []sdkstep.Failure{sdkstep.ConsoleFailure(".", "type-check", o.Stdout+o.Stderr)} + }) + }) + + // ADR 0664 §1 (issue 1748): the shared wrapper keeps the passing cases; a step that never says a network's failure as a + // transport fault, or says every failure as one, is refused. + t.Run("the passing cases", func(t *testing.T) { + all := []string{GitFetch, GoDownload, NpmCI, BuildahBud} + Passing(t, all, func(_, words string) error { return steprun.Transport(errors.New(words)) }) + if p := JudgePassing(all, func(_, words string) error { return errors.New(words) }); len(p) != 8 { + t.Errorf("a step that wraps nothing: %d problems, want 8 (one per transport case):\n%s", len(p), strings.Join(p, "\n")) + } + if p := JudgePassing(all, func(_, words string) error { return &sdkstep.Passing{Err: errors.New(words)} }); len(p) != 5 { + t.Errorf("a step that wraps everything: %d problems, want 5 (one per source failure):\n%s", len(p), strings.Join(p, "\n")) + } + }) + + // 1890/AC7: the SDK's start sweep keeps the left-running case, and the kit refuses a sweep that ends nothing or ends + // everything. + t.Run("the left-running case", func(t *testing.T) { + LeftRunning(t, func(ctx context.Context, scan buildrun.Scan, node string, before time.Time, logf func(string, ...any)) { + buildrun.EndStaleAtStart(ctx, scan, node, before, logf) + }) + if p := JudgeLeftRunning(func(context.Context, buildrun.Scan, string, time.Time, func(string, ...any)) {}); len(p) != 11 { + t.Errorf("a sweep that ends nothing: %d problems, want 11 (three steps not ended and unsaid, one owner unnamed, two asks not deleted and unsaid):\n%s", len(p), strings.Join(p, "\n")) + } + wrongNode := func(ctx context.Context, scan buildrun.Scan, _ string, before time.Time, logf func(string, ...any)) { + buildrun.EndStaleAtStart(ctx, scan, "kitother", before, logf) + } + if p := JudgeLeftRunning(wrongNode); len(p) == 0 { + t.Error("a sweep of another node's steps is not refused") + } + }) + + // node's output cut to its first fifteen lines with no cause, whose first line was a passing test of the first file + // (mesh-build-node's lines() before the contract), and a Go failure keeping its first line. + t.Run("the kit refuses a failure that hides its cause", func(t *testing.T) { + firstLines := func(s string) string { + var keep []string + for _, l := range strings.Split(s, "\n") { + if l = strings.TrimSpace(l); l != "" && len(keep) < 15 { + keep = append(keep, l) + } + } + return strings.Join(keep, "\n") + } + for _, c := range []struct { + runner, name string + old func(Output) []sdkstep.Failure + }{ + {NodeTest, "two-files", func(o Output) []sdkstep.Failure { + return []sdkstep.Failure{{Package: ".", Test: "test", Output: firstLines(o.Report)}} + }}, + {GoTest, "passfirst", func(o Output) []sdkstep.Failure { + return []sdkstep.Failure{{Package: "example.com/passfirst/b", Test: "TestTheSecondPackageFails", Cause: "ok \texample.com/passfirst/a", Output: "--- PASS: TestTheSecondPackagePassesFirst"}} + }}, + } { + for _, k := range Cases(c.runner) { + if k.Name != c.name { + continue + } + out, err := Load(k) + if err != nil { + t.Fatal(err) + } + if problems := Judge(k, c.old(out)); len(problems) == 0 { + t.Errorf("%s %s: the kit passed a failure that hides its cause", c.runner, c.name) + } + } + } + }) + + // What a passing line is (a test's own line starting "ok " is none), when a failure hides its cause, and that a long + // failure keeps its last lines within the bound and starts with a real line for an older checker, which reads only + // the first line of the output cut to 120 characters (1901/AC1, AC3). + t.Run("its rules", func(t *testing.T) { + for _, c := range []struct { + line string + passing bool + }{ + {"✔ the same merge has the same id (8.0ms)", true}, {"ok 1 - passes", true}, {" ok 3 - inside", true}, + {"ok \texample.com/a\t0.01s", true}, {"PASS", true}, {"--- PASS: TestA (0.00s)", true}, + {" --- PASS: TestA/sub (0.00s)", true}, {"✖ fails (1ms)", false}, {"not ok 2 - fails", false}, + {"okay, the seat moved", false}, {"ok then: the store refused the write", false}, {"ok the seat", false}, {"FAIL", false}, + } { + if sdkstep.PassingLine(c.line) != c.passing { + t.Errorf("PassingLine(%q) = %v, want %v", c.line, !c.passing, c.passing) + } + } + if sdkstep.Hidden(sdkstep.Failure{Cause: "the seat has 2 holders"}) != "" || sdkstep.Hidden(sdkstep.Failure{}) == "" || + sdkstep.Hidden(sdkstep.Failure{Cause: "✔ passes (1ms)"}) == "" { + t.Error("Hidden does not tell a real cause from none and from a passing line") + } + var lines []string + for i := 0; i < 400; i++ { + lines = append(lines, " x_test.go:1: log line "+strings.Repeat("y", 40)) + } + lines = append(lines, " x_test.go:9: the real cause", "--- FAIL: TestX (0.00s)") + oldFirst := func(out string) string { // the older checker's rule (judge.go firstLine before issue 1901) + for _, l := range strings.Split(out, "\n") { + if l = strings.TrimSpace(l); l != "" { + return l[:min(len(l), 120)] + } + } + return "" + } + for _, cause := range []string{"the real cause", ""} { + out := sdkstep.Clip(lines, cause) + if len(out) > sdkstep.OutputBytes+sdkstep.LineBytes { + t.Errorf("1901/AC1: kept %d bytes, bound is %d", len(out), sdkstep.OutputBytes) + } + if !strings.HasSuffix(out, "the real cause\n--- FAIL: TestX (0.00s)") || !strings.Contains(out, "\n... (") { + t.Errorf("1901/AC1: the last lines or the marker are lost: %q...%q", out[:40], out[len(out)-60:]) + } + if got := oldFirst(out); strings.HasPrefix(got, "... (") || got == "" || (cause != "" && got != cause) { + t.Errorf("1901/AC3: cause %q: an older checker would read %q", cause, got) + } + } + }) + + // The Go reader (moved from mesh-build-go): an older checker, which knows no "cause" field, still reads a failure and + // gets at least the lines it kept (1901/AC3); a test's indented log line saying "panic:" is not the cause, go's own at + // column 0 is (1901/AC4); and each package counts its own skipped tests (issue 890). + t.Run("the Go reader", func(t *testing.T) { + read := func(name string) string { + raw, err := captured.ReadFile("captured/go/" + name + ".jsonl") + if err != nil { + t.Fatal(err) + } + return string(raw) + } + b, _ := json.Marshal(steprun.ReadGoTest(read("logthenfatal"), ".").Failed) + var old []struct { + Output string `json:"output,omitempty"` + } + if err := json.Unmarshal(b, &old); err != nil || len(old) != 1 || !strings.Contains(old[0].Output, "judged against") || !strings.Contains(old[0].Output, "3 subscription(s)") { + t.Errorf("1901/AC3: an older checker reads %+v, %v", old, err) + } + lines := strings.SplitAfter(read("deeptimeout"), "\n") + added := `{"Action":"output","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat","Output":" p_test.go:9: the child said:\n"}` + "\n" + + `{"Action":"output","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat","Output":" panic: child retried and recovered\n"}` + "\n" + + `{"Action":"output","Package":"example.com/deeptimeout","Test":"TestHoldsTheSeat","Output":" WARNING: DATA RACE\n"}` + "\n" + if got := steprun.ReadGoTest(strings.Join(lines[:10], "")+added+strings.Join(lines[10:], ""), ".").Failed; len(got) != 1 || !strings.HasPrefix(got[0].Cause, "panic: test timed out after 2s") { + t.Errorf("1901/AC4: failures = %+v, want the timeout's panic as the cause", got) + } + res := steprun.ReadGoTest(`{"Action":"run","Package":"m/a","Test":"TestA"} +{"Action":"skip","Package":"m/a","Test":"TestA","Elapsed":0} +{"Action":"run","Package":"m/b","Test":"TestB"} +{"Action":"pass","Package":"m/b","Test":"TestB","Elapsed":0} +{"Action":"pass","Package":"m/a","Elapsed":0} +{"Action":"pass","Package":"m/b","Elapsed":0} +`, ".") + got := map[string]int{} + for _, p := range res.Packages { + got[p.Package] = p.Skipped + } + if res.Skipped != 1 || got["m/a"] != 1 || got["m/b"] != 0 { + t.Errorf("skipped = %d, per package %v, want 1 with m/a 1 and m/b 0", res.Skipped, got) + } + }) +} diff --git a/modules/mesh-delivery-sdk/steprun/conformance/leftrunning.go b/modules/mesh-delivery-sdk/steprun/conformance/leftrunning.go new file mode 100644 index 00000000..50c58f90 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/conformance/leftrunning.go @@ -0,0 +1,212 @@ +package conformance + +import ( + "context" + "encoding/json" + "fmt" + "sort" + "strings" + "sync" + "testing" + "time" + + buildrun "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildrun" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + stdio "git.novox.be/novox/mesh-sdk/go" +) + +// **A step left running by a previous process** (novox/hq issue 1890, note 21): when a delivery replaced mesh-build-go +// on a node while a check ask ran, the new process's start sweep let the ask's key stand as running, and it held one +// of the node's build slots until a hand end. Every build module runs this case (LeftRunning) through the start sweep +// its main runs: the hand-started steps a previous process left are ended at once and loud, its asks' keys deleted (the +// stream redelivers the ask, novox/hq ADR 0525 §6, and its asker keeps waiting for that), what this process runs kept. A +// catalogue check (mesh-catalog checks/failurekit) refuses a build module whose tests do not call LeftRunning. + +// Sweep is a build module's own start sweep, as its main runs it once at its start: it ends node's steps in scan that +// no process of the module runs any more (buildrun.EndStaleAtStart, here with the runtime already serving), before +// being the start of the process, saying each end with logf. +type Sweep func(ctx context.Context, scan buildrun.Scan, node string, before time.Time, logf func(string, ...any)) + +// LeftNode is the node the case's steps are of. +const LeftNode = "kitnode" + +// leftCase is one step in the steps state before the sweep, and whether the sweep must end it. +type leftCase struct { + id, tool, owner, state string + node string + age time.Duration // started this long before the process began (negative: after it) + ended bool + deleted bool // a gone process's ask: its key is deleted, not ended +} + +// gone is a previous process's owner on the same node. +var gone = "b00t-of-the-kit.4242.mvp0000" + +func leftCases() []leftCase { + return []leftCase{ + {id: "mvpwlkzi7e6ca8", tool: "check ask", owner: gone, age: 5 * time.Minute, deleted: true}, // note 21's ghost + {id: "mvpwlkzi7e6ca9", tool: "delivery ask", owner: gone, age: -time.Second, deleted: true}, + {id: "gonehand1", tool: "build_x_test", owner: gone, age: time.Minute, ended: true}, + {id: "oldhand1", tool: "build_x_fetch", age: time.Hour, ended: true}, // no owner: an older build's + {id: "mvpwlkzi7e6caa", tool: "check ask", age: time.Hour, ended: true}, // no owner, past the bound + {id: "mvpwlkzi7e6cab", tool: "check ask", age: 5 * time.Minute}, // no owner, the stream's still + {id: "mvpwlkzi7e6cac", tool: "check ask", owner: buildrun.Owner, age: time.Minute}, // this process's + {id: "minehand1", tool: "build_x_test", owner: buildrun.Owner, age: -time.Second}, + {id: "donehand1", tool: "build_x_test", owner: gone, age: time.Hour, state: sdkstep.StepPassed}, + {id: "otherhand1", tool: "build_x_test", owner: gone, age: time.Hour, node: "kitother"}, + } +} + +// LeftRunning runs the case through sweep and fails the test for each step the sweep ended or kept wrongly, or ended +// without saying it. +func LeftRunning(t *testing.T, sweep Sweep) { + t.Helper() + for _, problem := range JudgeLeftRunning(sweep) { + t.Error(problem) + } +} + +// JudgeLeftRunning says what is wrong with what sweep did to the case; nothing when it keeps the rule. +func JudgeLeftRunning(sweep Sweep) []string { + st := &steps{vals: map[string][]byte{}, revs: map[string]uint64{}} + before := time.Now() + for _, c := range leftCases() { + node, state := c.node, c.state + if node == "" { + node = LeftNode + } + if state == "" { + state = sdkstep.StepRunning + } + key, _ := sdkstep.StepKey(node, c.id) + raw, err := sdkstep.EncodeStep(sdkstep.Step{ID: c.id, Tool: c.tool, Node: node, State: state, Started: before.Add(-c.age).UTC(), Owner: c.owner}) + if err != nil { + return []string{"the kit's step " + c.id + ": " + err.Error()} + } + st.set(key, raw) + } + served := make(chan struct{}) + close(served) + was := buildrun.StaleServed + buildrun.StaleServed = func() <-chan struct{} { return served } + defer func() { buildrun.StaleServed = was }() + var mu sync.Mutex + var said []string + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + sweep(ctx, st.scan(), LeftNode, before, func(f string, a ...any) { + mu.Lock() + defer mu.Unlock() + said = append(said, fmt.Sprintf(f, a...)) + }) + mu.Lock() + log := strings.Join(said, "\n") + mu.Unlock() + var problems []string + for _, c := range leftCases() { + node := c.node + if node == "" { + node = LeftNode + } + key, _ := sdkstep.StepKey(node, c.id) + raw := st.get(key) + if c.deleted { + if raw != nil { + problems = append(problems, fmt.Sprintf("left running: the ask %s of the gone owner %q is still held after the sweep (%s); "+ + "its key is deleted, never ended: the stream redelivers it (ADR 0525 §6)", key, c.owner, raw)) + } + if !strings.Contains(log, key) || !strings.Contains(log, c.owner) { + problems = append(problems, "left running: the delete of "+key+" is not said with its owner "+c.owner) + } + continue + } + if raw == nil { + problems = append(problems, "left running: the step "+key+" is gone after the sweep, want it kept or ended") + continue + } + s, err := sdkstep.DecodeStep(raw) + if err != nil { + problems = append(problems, key+": "+err.Error()) + continue + } + want := c.state + if want == "" { + want = sdkstep.StepRunning + } + if c.ended { + want = sdkstep.StepFailed + } + if s.State != want { + problems = append(problems, fmt.Sprintf("left running: the step %s (%s, owner %q, %s before the start) is %s after the sweep, want %s", key, c.tool, c.owner, c.age, s.State, want)) + } + if c.ended && !strings.Contains(log, key) { + problems = append(problems, "left running: the end of "+key+" is not said") + } + if c.ended && c.owner != "" && !strings.Contains(log, c.owner) { + problems = append(problems, "left running: the end of "+key+" does not name its owner "+c.owner) + } + } + sort.Strings(problems) + return problems +} + +// steps is a steps state with revisions, whose Update lands only at the revision read (stdio.ErrChanged otherwise). +type steps struct { + mu sync.Mutex + vals map[string][]byte + revs map[string]uint64 +} + +func (s *steps) set(key string, raw []byte) { + s.mu.Lock() + defer s.mu.Unlock() + s.vals[key], s.revs[key] = raw, s.revs[key]+1 +} + +func (s *steps) get(key string) []byte { + s.mu.Lock() + defer s.mu.Unlock() + return s.vals[key] +} + +func (s *steps) scan() buildrun.Scan { + return buildrun.Scan{ + Keys: func() ([]string, error) { + s.mu.Lock() + defer s.mu.Unlock() + var out []string + for k := range s.vals { + out = append(out, k) + } + return out, nil + }, + Get: func(key string) (json.RawMessage, uint64, error) { + s.mu.Lock() + defer s.mu.Unlock() + return s.vals[key], s.revs[key], nil + }, + Delete: func(key string, revision uint64) error { + s.mu.Lock() + defer s.mu.Unlock() + if s.revs[key] != revision { + return stdio.ErrChanged + } + delete(s.vals, key) + s.revs[key]++ + return nil + }, + Update: func(key string, value any, revision uint64) (uint64, error) { + raw, err := json.Marshal(value) + if err != nil { + return 0, err + } + s.mu.Lock() + defer s.mu.Unlock() + if s.revs[key] != revision { + return 0, stdio.ErrChanged + } + s.vals[key], s.revs[key] = raw, revision+1 + return revision + 1, nil + }, + } +} diff --git a/modules/mesh-delivery-sdk/steprun/cpu.go b/modules/mesh-delivery-sdk/steprun/cpu.go new file mode 100644 index 00000000..10fee9fa --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/cpu.go @@ -0,0 +1,14 @@ +package steprun + +import ( + "os" + + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/steprun/buildcpu" +) + +// NodeLimits is what one step of a build module is held to (novox/hq ADR 0553 §4): the node's processor share from the +// word the composer gives the module (buildcpu.ShareWord), divided by the module's own capacity, own, over the machine's +// processors. Without the word, no thread limit: Threads is 0. +func NodeLimits(own int) buildcpu.Limits { + return buildcpu.FromWords(os.Getenv, own) +} diff --git a/modules/mesh-delivery-sdk/steprun/digestshape_test.go b/modules/mesh-delivery-sdk/steprun/digestshape_test.go new file mode 100644 index 00000000..13afe6be --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/digestshape_test.go @@ -0,0 +1,234 @@ +package steprun + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "sort" + "strings" + "sync" + "testing" + "time" + + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" +) + +// credentialField is the node runtime's rule for a state value (mesh-tools node-tools/internal/bus/state.go, novox/hq +// ADR 0201), copied whole: the first field anywhere in the value whose name, lower-cased and without - _ and spaces, ends +// in a credential word, or "". A step's end is refused when it answers a field. +func credentialField(value json.RawMessage) string { + endings := []string{"password", "passwd", "secret", "token", "credential", "credentials", + "authorization", "apikey", "privatekey", "accesskey", "cookie"} + var v any + if json.Unmarshal(value, &v) != nil { + return "" + } + var walk func(any) string + walk = func(v any) string { + switch t := v.(type) { + case map[string]any: + keys := make([]string, 0, len(t)) + for k := range t { + keys = append(keys, k) + } + sort.Strings(keys) + for _, k := range keys { + norm := strings.NewReplacer("-", "", "_", "", " ", "").Replace(strings.ToLower(k)) + for _, end := range endings { + if strings.HasSuffix(norm, end) { + return k + } + } + if found := walk(t[k]); found != "" { + return found + } + } + case []any: + for _, x := range t { + if found := walk(x); found != "" { + return found + } + } + } + return "" + } + return walk(v) +} + +// runtimeState is a steps state that refuses a value as the node runtime does, and keeps every value it took. +type runtimeState struct { + mu sync.Mutex + took map[string][]sdkstep.Step + refused int +} + +func newRuntimeState() *runtimeState { return &runtimeState{took: map[string][]sdkstep.Step{}} } + +func (s *runtimeState) put(key string, value any) (uint64, error) { + raw, _ := value.(json.RawMessage) + if f := credentialField(raw); f != "" { + s.mu.Lock() + s.refused++ + s.mu.Unlock() + return 0, fmt.Errorf("steps.%s carries a field %q, which names a credential", key, f) + } + st, err := sdkstep.DecodeStep(raw) + if err != nil { + return 0, err + } + s.mu.Lock() + defer s.mu.Unlock() + s.took[key] = append(s.took[key], st) + return uint64(len(s.took[key])), nil +} + +func (s *runtimeState) last(key string) (sdkstep.Step, bool) { + s.mu.Lock() + defer s.mu.Unlock() + t := s.took[key] + if len(t) == 0 { + return sdkstep.Step{}, false + } + return t[len(t)-1], true +} + +func fastEnds(t *testing.T) { + attempts, retry := EndAttempts, EndRetry + EndAttempts, EndRetry = 2, time.Millisecond + t.Cleanup(func() { EndAttempts, EndRetry = attempts, retry }) +} + +// 1930/AC1: given a check of a repository with the package .../internal/token, when its ask's answer is stored as the +// step's end, then no field is keyed by a package path: the runtime's credential rule takes the value, and the package +// and its digest read back from the stored end. +func TestADigestOfAPackageNamedTokenIsStoredAsAList(t *testing.T) { + fastEnds(t) + r := &recorder{ + fetch: map[string]any{"workspace": "/w"}, + digests: map[string]string{"x/internal/token": "d-token", "x/pkg/a": "d-a"}, + tests: map[string]bool{"x/internal/token": true, "x/pkg/a": true}, + } + out, err := RunAsk(context.Background(), r.steps(), ask(sdkstep.CheckJob{Levels: []string{sdkstep.LevelUnit}, + Fetch: sdkstep.Fetch{Repository: "novox/x", Commit: runCommit}})) + if err != nil { + t.Fatal(err) + } + old, _ := json.Marshal(map[string]any{"levels": []any{map[string]any{"level": "unit", "digest": map[string]any{"packages": r.digests}}}}) + if credentialField(old) != "x/internal/token" { + t.Fatalf("the rule does not refuse the form before issue 1930 (%s): the test proves nothing", old) + } + st := newRuntimeState() + if err := finish(st.put, "shanks.a1", sdkstep.Step{ID: "a1", Tool: "check ask", Node: "shanks", State: sdkstep.StepRunning, Started: time.Now()}, out, nil, t.Logf); err != nil { + t.Fatal(err) + } + s, ok := st.last("shanks.a1") + if !ok || s.State != sdkstep.StepPassed || st.refused != 0 { + t.Fatalf("the end %+v (written %v, refused %d), want it passed and taken at once", s, ok, st.refused) + } + var a sdkstep.CheckAnswer + if err := json.Unmarshal(s.Result, &a); err != nil { + t.Fatal(err) + } + if len(a.Levels) != 1 || a.Levels[0].Digest == nil { + t.Fatalf("levels %+v, want the unit level with its digest", a.Levels) + } + want := []sdkstep.PackageDigest{{Package: "x/internal/token", Digest: "d-token"}, {Package: "x/pkg/a", Digest: "d-a"}} + if got := a.Levels[0].Digest.Packages; fmt.Sprint(got) != fmt.Sprint(want) { + t.Errorf("packages %v, want %v", got, want) + } + if !strings.Contains(string(s.Result), `"package":"x/internal/token"`) { + t.Errorf("the stored end does not name the package as a value: %s", s.Result) + } +} + +// 1930/AC2: given an end the state refuses every time, when finish writes it, then it logs the refusal and writes a small +// failed end without the result that names the write's error; and when no end can be written at all it answers an error. +func TestARefusedEndIsSaidAndEndsTheStepFailed(t *testing.T) { + fastEnds(t) + big := errors.New("the value carries a field \"x/internal/token\", which names a credential") + var refused int + var stored []sdkstep.Step + put := func(key string, value any) (uint64, error) { + st, _ := sdkstep.DecodeStep(value.(json.RawMessage)) + if len(st.Result) > 0 { + refused++ + return 0, big + } + stored = append(stored, st) + return 1, nil + } + var logged []string + logf := func(format string, args ...any) { logged = append(logged, fmt.Sprintf(format, args...)) } + err := finish(put, "shanks.a2", sdkstep.Step{ID: "a2", Tool: "check ask", Node: "shanks", State: sdkstep.StepRunning, Started: time.Now()}, map[string]any{"levels": 1}, nil, logf) + if err != nil { + t.Fatalf("finish answered %v, want the small end written", err) + } + if refused != EndAttempts || len(stored) != 1 { + t.Fatalf("refused %d, stored %d, want %d refusals and one small end", refused, len(stored), EndAttempts) + } + s := stored[0] + if s.State != sdkstep.StepFailed || len(s.Result) != 0 || !strings.Contains(s.Reason, "could not be written") || + !strings.Contains(s.Reason, big.Error()) || !strings.Contains(s.Reason, "passed") { + t.Errorf("the small end %+v, want failed, no result, naming the write's error and that it passed", s) + } + if len(logged) == 0 || !strings.Contains(logged[0], big.Error()) { + t.Errorf("logged %q, want the refusal said", logged) + } + none := func(string, any) (uint64, error) { return 0, errors.New("the bus is gone") } + if err := finish(none, "shanks.a3", sdkstep.Step{ID: "a3", Tool: "check ask", Node: "shanks", Started: time.Now()}, nil, nil, logf); err == nil || !strings.Contains(err.Error(), "the bus is gone") { + t.Errorf("finish with no write possible answered %v, want the error", err) + } +} + +// 1930/AC2: given an ask whose end the state refuses, when it runs, then the ask is acknowledged only once its small +// failed end is written; when no end can be written at all, it is given back, never acknowledged as done. +func TestAnAskWhoseEndCannotBeWrittenIsNotAcked(t *testing.T) { + fastEnds(t) + for _, tc := range []struct { + name string + smallOK bool + wantAcked bool + }{{"the small end written", true, true}, {"no end written", false, false}} { + t.Run(tc.name, func(t *testing.T) { + src := NewFakeAsks() + a := testAsk(sdkstep.AskCheck) + _ = src.PublishAsk(a) + var mu sync.Mutex + var ends []sdkstep.Step + put := func(key string, value any) (uint64, error) { + st, err := sdkstep.DecodeStep(value.(json.RawMessage)) + if err != nil { + return 0, err + } + if st.State != sdkstep.StepRunning && (len(st.Result) > 0 || !tc.smallOK) { + return 0, errors.New("refused") + } + mu.Lock() + ends = append(ends, st) + mu.Unlock() + return 1, nil + } + p := &Puller{Source: src, Language: sdkstep.AskGo, Node: "shanks", Put: put, Capacity: func() int { return 1 }, + PullWait: 10 * time.Millisecond, Logf: t.Logf, + Run: func(ctx context.Context, a sdkstep.StepAsk) (any, error) { return map[string]any{"ran": true}, nil }} + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + go p.Pull(ctx) + waitFor(t, "the ask's fate", func() bool { ac, tm, nk := src.Fates(); return len(ac)+len(tm)+len(nk) > 0 }) + cancel() + acked, termed, naked := src.Fates() + if tc.wantAcked && (len(acked) != 1 || len(naked) != 0) || !tc.wantAcked && (len(acked) != 0 || len(naked) == 0) || len(termed) != 0 { + t.Fatalf("acked %v naked %v termed %v", acked, naked, termed) + } + mu.Lock() + defer mu.Unlock() + if tc.smallOK { + last := ends[len(ends)-1] + if last.State != sdkstep.StepFailed || !strings.Contains(last.Reason, "refused") { + t.Errorf("the end %+v, want the small failed end", last) + } + } + }) + } +} diff --git a/modules/mesh-delivery-sdk/steprun/dropdetected.go b/modules/mesh-delivery-sdk/steprun/dropdetected.go new file mode 100644 index 00000000..1d5e6751 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/dropdetected.go @@ -0,0 +1,35 @@ +package steprun + +import ( + "errors" + "fmt" + "strings" +) + +// DropDetected is the drop of the build seats' `steps` (design 47 G §463, §480): a person's word deletes the kept key of +// an artifact's detected steps. The act is written in the hand-act log first, with the caller the bus proved; a drop +// whose log write fails deletes nothing and is answered by the text it returns, which names the log. A drop with no +// `why`, or whose call the runtime proved no caller for, is refused (an error, nothing recorded). +// +// record writes the act in the hand-act log of the seat mesh-hand-acts; forget deletes the key (nil where the seat keeps +// none, as an image's). +func DropDetected(artifact, why, caller, key string, record func(what, why string) error, forget func(key string) error) (string, error) { + switch { + case strings.TrimSpace(why) == "": + return "", errors.New("steps: a drop says why") + case caller == "" || caller == "unproven": + return "", errors.New("steps: a drop names who drops it, and the runtime proved no caller") + } + if record == nil { + return "the hand-act log is not served here: nothing was deleted", nil + } + if err := record(fmt.Sprintf("dropped the detected steps of %s (by %s)", artifact, caller), why); err != nil { + return fmt.Sprintf("the hand-act log refused the drop of %s, so nothing was deleted: %v", artifact, err), nil + } + if forget != nil { + if err := forget(key); err != nil { + return fmt.Sprintf("the drop of %s was recorded in the hand-act log and the key could not be deleted: %v", artifact, err), nil + } + } + return "", nil +} diff --git a/modules/mesh-delivery-sdk/steprun/fetch.go b/modules/mesh-delivery-sdk/steprun/fetch.go new file mode 100644 index 00000000..e5118dd6 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/fetch.go @@ -0,0 +1,208 @@ +package steprun + +import ( + "context" + "fmt" + "net/url" + "os" + "path/filepath" + "regexp" + "strings" + + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + dforgekey "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/forgekey" + "git.novox.be/novox/mesh-sdk/go/forgekey" +) + +// Option changes FetchCommit. +type Option func(*fetchOptions) + +type fetchOptions struct { + allowFile bool + mirror string +} + +// AllowFileRemote lets FetchCommit take a file:// remote. It is for a test's local repository; production +// code does not pass it, and FetchCommit then refuses anything but ssh://. +func AllowFileRemote() Option { return func(o *fetchOptions) { o.allowFile = true } } + +// WithMirror makes FetchCommit (and MergeInto) borrow objects from mirror, a bare repository that UpdateMirror keeps +// in the build module's own cache (novox/hq ADR 0536 §2; issue 890): the workspace's .git/objects/info/alternates +// names the mirror's objects directory, so git transfers only the objects the mirror lacks. It is a plain file, never +// a symlink. mirror must be an absolute path of an existing directory; the workspace never writes to it. +func WithMirror(mirror string) Option { return func(o *fetchOptions) { o.mirror = mirror } } + +// useMirror writes the alternates file of the repository in dir, when a mirror is set. +func useMirror(o fetchOptions, dir string) error { + if o.mirror == "" { + return nil + } + info := filepath.Join(dir, ".git", "objects", "info") + if err := os.MkdirAll(info, 0o755); err != nil { + return fmt.Errorf("steprun: the mirror cannot be used: %w", err) + } + line := filepath.Join(o.mirror, "objects") + "\n" + if err := os.WriteFile(filepath.Join(info, "alternates"), []byte(line), 0o644); err != nil { + return fmt.Errorf("steprun: the mirror cannot be used: %w", err) + } + return nil +} + +var ( + commitOK = regexp.MustCompile(`^[0-9a-f]{40}$`) + refOK = regexp.MustCompile(`^refs/[A-Za-z0-9._/-]+$`) +) + +// gitFailure is a failed git command said in git's own words; one whose words are a network's (a lookup, a timeout, ssh's key +// exchange cut by a forge's per-source penalty) is a sdkstep.Passing, so the ask is given again after a delay (ADR 0664 §1). +func gitFailure(verb, said string) error { + err := fmt.Errorf("git %s: %s", verb, said) + if sdkstep.PassingCause(said) { + return &sdkstep.Passing{Err: err} + } + return err +} + +// FetchCommit fetches one commit of a forge repository into dir, an empty directory, and checks it out detached +// (novox/hq ADR 0466 §4, §5; issue 1474). remote is ssh:////.git, the ssh name being the +// one the build module's templates set up (ADR 0409 §1); commit is a full 40-hex sha; ref is optional, and names +// the pull request's head (refs/pull//head) when the commit is only there. Every git command runs through run +// as `git -C dir ...` with GIT_TERMINAL_PROMPT=0 and no credential helper, so nothing is asked for and no +// credential is used. A remote that is not ssh://, or one with user information, and a commit that is not 40 +// hex digits are refused before anything runs. +func FetchCommit(ctx context.Context, run forgekey.Runner, dir, remote, commit, ref string, opts ...Option) error { + var o fetchOptions + for _, opt := range opts { + opt(&o) + } + if err := checkFetch(o, dir, remote, commit, ref); err != nil { + return err + } + env := []string{"GIT_TERMINAL_PROMPT=0"} + git := func(args ...string) (string, error) { + full := append([]string{"-c", "credential.helper=", "-C", dir}, args...) + r := run(ctx, env, "git", full...) + if r.Status != 0 || r.Err != "" { + return "", gitFailure(args[0], dforgekey.Said(r.Err+"\n"+r.Stderr)) + } + return r.Stdout, nil + } + if _, err := git("init", "-q"); err != nil { + return err + } + if err := useMirror(o, dir); err != nil { + return err + } + if _, err := git("remote", "add", "origin", remote); err != nil { + return err + } + if _, err := git("fetch", "--no-tags", "--depth", "1", "origin", commit); err != nil { + if ref == "" { + return err + } + if _, rerr := git("fetch", "--no-tags", "origin", ref); rerr != nil { + return fmt.Errorf("%v; then the ref %s: %w", err, ref, rerr) + } + if _, verr := git("cat-file", "-e", commit+"^{commit}"); verr != nil { + return fmt.Errorf("the commit %s is not in %s: %w", commit, ref, verr) + } + } + if _, err := git("checkout", "-q", "--detach", commit); err != nil { + return err + } + out, err := git("rev-parse", "HEAD") + if err != nil { + return err + } + if head := strings.TrimSpace(out); head != commit { + return fmt.Errorf("the checkout is at %s, not at the commit %s", head, commit) + } + return nil +} + +// UpdateMirror brings the bare repository mirror to commit: it makes the mirror when it is absent (git init --bare, +// origin set to remote), then fetches the commit, or the ref when only the ref holds it, with the same rules as +// FetchCommit (no prompt, no credential helper, ssh:// or an allowed file:// remote, a 40-hex commit). The mirror +// keeps every commit it was brought to, so later fetches through WithMirror transfer only what is new. Callers +// serialise updates of one mirror. +func UpdateMirror(ctx context.Context, run forgekey.Runner, mirror, remote, commit, ref string, opts ...Option) error { + var o fetchOptions + for _, opt := range opts { + opt(&o) + } + if !filepath.IsAbs(mirror) { + return fmt.Errorf("steprun: the mirror %q is not an absolute path", mirror) + } + if err := checkFetch(o, mirror, remote, commit, ref); err != nil { + return err + } + env := []string{"GIT_TERMINAL_PROMPT=0"} + git := func(args ...string) error { + r := run(ctx, env, "git", append([]string{"-c", "credential.helper="}, args...)...) + if r.Status != 0 || r.Err != "" { + verb := args[0] + if verb == "-C" && len(args) > 2 { // the mirror's commands are named by what they do, not by -C + verb = args[2] + } + return gitFailure(verb, dforgekey.Said(r.Err+"\n"+r.Stderr)) + } + return nil + } + in := func(args ...string) error { return git(append([]string{"-C", mirror}, args...)...) } + if _, err := os.Stat(filepath.Join(mirror, "HEAD")); err != nil { + if err := git("init", "-q", "--bare", mirror); err != nil { + return err + } + if err := in("remote", "add", "origin", remote); err != nil { + return err + } + } else if err := in("remote", "set-url", "origin", remote); err != nil { + return err + } + if err := in("fetch", "--no-tags", "origin", commit); err != nil { + if ref == "" { + return err + } + if rerr := in("fetch", "--no-tags", "origin", ref); rerr != nil { + return fmt.Errorf("%v; then the ref %s: %w", err, ref, rerr) + } + } + if err := in("cat-file", "-e", commit+"^{commit}"); err != nil { + return fmt.Errorf("the commit %s is not in the mirror: %w", commit, err) + } + return nil +} + +func checkFetch(o fetchOptions, dir, remote, commit, ref string) error { + if dir == "" { + return fmt.Errorf("steprun: no workspace directory") + } + if o.mirror != "" { + if !filepath.IsAbs(o.mirror) { + return fmt.Errorf("steprun: the mirror %q is not an absolute path", o.mirror) + } + if fi, err := os.Stat(o.mirror); err != nil || !fi.IsDir() { + return fmt.Errorf("steprun: the mirror %q is not an existing directory", o.mirror) + } + } + if !commitOK.MatchString(commit) { + return fmt.Errorf("steprun: %q is not a full commit (40 hex digits)", commit) + } + if ref != "" && !refOK.MatchString(ref) { + return fmt.Errorf("steprun: %q is not a ref (refs/...)", ref) + } + u, err := url.Parse(remote) + if err != nil { + return fmt.Errorf("steprun: the remote is not a URL: %w", err) + } + if u.User != nil { + return fmt.Errorf("steprun: the remote carries user information; the key is the credential") + } + switch { + case u.Scheme == "ssh" && u.Host != "": + case u.Scheme == "file" && o.allowFile: + default: + return fmt.Errorf("steprun: the remote %q is not ssh://", remote) + } + return nil +} diff --git a/modules/mesh-delivery-sdk/steprun/fetch_integration_test.go b/modules/mesh-delivery-sdk/steprun/fetch_integration_test.go new file mode 100644 index 00000000..195c7323 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/fetch_integration_test.go @@ -0,0 +1,59 @@ +//go:build integration + +package steprun + +import ( + "context" + "os" + "os/exec" + "path/filepath" + "strings" + "testing" + + "git.novox.be/novox/mesh-sdk/go/forgekey" +) + +func gitIn(t *testing.T, dir string, args ...string) string { + t.Helper() + cmd := exec.Command("git", append([]string{"-C", dir, "-c", "user.name=t", "-c", "user.email=t@example.invalid"}, args...)...) + out, err := cmd.CombinedOutput() + if err != nil { + t.Fatalf("git %v: %v\n%s", args, err, out) + } + return strings.TrimSpace(string(out)) +} + +// 1474/AC5: a local bare repository with a commit only under refs/pull/1/head (a file:// remote, allowed by the +// test-only option): the workspace's HEAD is the commit. The forge itself is proven live after the build +// modules' delivery (ADR 0466 §5). +func TestFetchCommitFromAPullRefOnly(t *testing.T) { + root := t.TempDir() + bare := filepath.Join(root, "r.git") + work := filepath.Join(root, "work") + for _, d := range []string{bare, work} { + if err := os.MkdirAll(d, 0o755); err != nil { + t.Fatal(err) + } + } + gitIn(t, bare, "init", "-q", "--bare") + gitIn(t, work, "init", "-q") + if err := os.WriteFile(filepath.Join(work, "f"), []byte("x"), 0o644); err != nil { + t.Fatal(err) + } + gitIn(t, work, "add", "f") + gitIn(t, work, "commit", "-q", "-m", "pull request head") + commit := gitIn(t, work, "rev-parse", "HEAD") + gitIn(t, work, "push", "-q", bare, "HEAD:refs/pull/1/head") + + ws := filepath.Join(root, "ws") + if err := os.MkdirAll(ws, 0o755); err != nil { + t.Fatal(err) + } + err := FetchCommit(context.Background(), forgekey.ExecRunner, ws, "file://"+bare, commit, "refs/pull/1/head", AllowFileRemote()) + if err != nil { + t.Fatal(err) + } + if head := gitIn(t, ws, "rev-parse", "HEAD"); head != commit { + t.Errorf("HEAD = %s, want %s", head, commit) + } +} diff --git a/modules/mesh-delivery-sdk/steprun/fetch_test.go b/modules/mesh-delivery-sdk/steprun/fetch_test.go new file mode 100644 index 00000000..b7ea71fb --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/fetch_test.go @@ -0,0 +1,160 @@ +package steprun + +import ( + "context" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "strings" + "testing" + + "git.novox.be/novox/mesh-sdk/go/forgekey" +) + +const sha = "0123456789abcdef0123456789abcdef01234567" + +// fakeGit records every command and answers by a rule. +type fakeGit struct { + calls []string + envs [][]string + rule func(args string) forgekey.Ran +} + +func (f *fakeGit) run(ctx context.Context, env []string, name string, args ...string) forgekey.Ran { + line := name + " " + strings.Join(args, " ") + f.calls = append(f.calls, line) + f.envs = append(f.envs, env) + if f.rule != nil { + if r := f.rule(line); r.Status != 0 || r.Stdout != "" || r.Err != "" { + return r + } + } + if len(args) > 4 && args[4] == "rev-parse" { + return forgekey.Ran{Stdout: sha + "\n"} + } + return forgekey.Ran{} +} + +const pre = "git -c credential.helper= -C /w " + +// 1474/AC1: the git commands are exactly the sequence, none with a credential or an https remote. +func TestFetchCommitRunsTheSequence(t *testing.T) { + f := &fakeGit{} + if err := FetchCommit(context.Background(), f.run, "/w", "ssh://mesh-forge/novox/mesh-sdk.git", sha, ""); err != nil { + t.Fatal(err) + } + want := []string{ + pre + "init -q", + pre + "remote add origin ssh://mesh-forge/novox/mesh-sdk.git", + pre + "fetch --no-tags --depth 1 origin " + sha, + pre + "checkout -q --detach " + sha, + pre + "rev-parse HEAD", + } + if strings.Join(f.calls, "\n") != strings.Join(want, "\n") { + t.Errorf("commands:\n%s\nwant:\n%s", strings.Join(f.calls, "\n"), strings.Join(want, "\n")) + } + for i, c := range f.calls { + if strings.Contains(c, "https://") || strings.Contains(c, "@") || !strings.Contains(c, "credential.helper= ") { + t.Errorf("command %q carries a credential or https", c) + } + if len(f.envs[i]) != 1 || f.envs[i][0] != "GIT_TERMINAL_PROMPT=0" { + t.Errorf("env %v", f.envs[i]) + } + } +} + +// 1474/AC2: the depth-1 fetch fails and a pull ref is given: the ref is fetched and the commit verified; with no +// ref, the fetch's failure is the answer. +func TestFetchCommitFallsBackToThePullRef(t *testing.T) { + f := &fakeGit{rule: func(l string) forgekey.Ran { + if strings.Contains(l, "--depth 1") { + return forgekey.Ran{Status: 128, Stderr: "fatal: couldn't find remote ref " + sha + "\n"} + } + return forgekey.Ran{} + }} + if err := FetchCommit(context.Background(), f.run, "/w", "ssh://mesh-forge/o/r.git", sha, "refs/pull/1/head"); err != nil { + t.Fatal(err) + } + want := []string{pre + "fetch --no-tags origin refs/pull/1/head", pre + "cat-file -e " + sha + "^{commit}", pre + "checkout -q --detach " + sha} + got := strings.Join(f.calls[3:6], "\n") + if got != strings.Join(want, "\n") { + t.Errorf("after the failed fetch:\n%s\nwant:\n%s", got, strings.Join(want, "\n")) + } + + g := &fakeGit{rule: f.rule} + err := FetchCommit(context.Background(), g.run, "/w", "ssh://mesh-forge/o/r.git", sha, "") + if err == nil || !strings.Contains(err.Error(), "couldn't find remote ref") || len(g.calls) != 3 { + t.Errorf("without a ref: %v after %d commands", err, len(g.calls)) + } + + h := &fakeGit{rule: func(l string) forgekey.Ran { + if strings.Contains(l, "--depth 1") || strings.Contains(l, "cat-file") { + return forgekey.Ran{Status: 1, Stderr: "no"} + } + return forgekey.Ran{} + }} + if err := FetchCommit(context.Background(), h.run, "/w", "ssh://mesh-forge/o/r.git", sha, "refs/pull/1/head"); err == nil { + t.Error("a commit that is not in the ref was accepted") + } + + // ADR 0664 §1 (issue 1748): the words a forge's sshd penalty leaves (captured on ace, 2026-11-09) are a transport fault the bus + // gives the ask again for; a missing commit is not. + for _, c := range []struct { + said string + passing bool + }{ + {"kex_exchange_identification: read: Connection reset by peer\nfatal: Could not read from remote repository.", true}, + {"Connection closed by 10.10.0.1 port 222", true}, + {"ssh: Could not resolve hostname mesh-forge: Temporary failure in name resolution", true}, + {"fatal: couldn't find remote ref " + sha, false}, + } { + x := &fakeGit{rule: func(l string) forgekey.Ran { + if strings.Contains(l, " fetch ") { + return forgekey.Ran{Status: 128, Stderr: c.said} + } + return forgekey.Ran{} + }} + if err := FetchCommit(context.Background(), x.run, "/w", "ssh://mesh-forge/o/r.git", sha, ""); err == nil || sdkstep.IsPassing(err) != c.passing { + t.Errorf("%q: %v, passing %v, want %v", c.said, err, err != nil && sdkstep.IsPassing(err), c.passing) + } + } +} + +// 1474/AC3: HEAD differs from the commit after the checkout: an error naming both. +func TestFetchCommitAnswersAHeadThatIsNotTheCommit(t *testing.T) { + other := strings.Repeat("a", 40) + f := &fakeGit{rule: func(l string) forgekey.Ran { + if strings.HasSuffix(l, "rev-parse HEAD") { + return forgekey.Ran{Stdout: other + "\n"} + } + return forgekey.Ran{} + }} + err := FetchCommit(context.Background(), f.run, "/w", "ssh://mesh-forge/o/r.git", sha, "") + if err == nil || !strings.Contains(err.Error(), other) || !strings.Contains(err.Error(), sha) { + t.Errorf("error = %v, want both shas", err) + } +} + +// 1474/AC4: an https remote, user information, a file remote without the option, or a commit that is not 40 +// hex digits is refused before anything runs. +func TestFetchCommitRefusesBeforeRunningAnything(t *testing.T) { + for _, c := range []struct{ remote, commit, ref string }{ + {"https://forge.example/o/r.git", sha, ""}, + {"http://forge.example/o/r.git", sha, ""}, + {"ssh://git@mesh-forge/o/r.git", sha, ""}, + {"ssh://user:pw@mesh-forge/o/r.git", sha, ""}, + {"file:///tmp/r.git", sha, ""}, + {"/tmp/r.git", sha, ""}, + {"ssh://mesh-forge/o/r.git", "abc123", ""}, + {"ssh://mesh-forge/o/r.git", strings.ToUpper(sha), ""}, + {"ssh://mesh-forge/o/r.git", "main", ""}, + {"ssh://mesh-forge/o/r.git", sha, "--upload-pack=x"}, + } { + f := &fakeGit{} + if err := FetchCommit(context.Background(), f.run, "/w", c.remote, c.commit, c.ref); err == nil || len(f.calls) != 0 { + t.Errorf("%+v: err %v, %d commands", c, err, len(f.calls)) + } + } + f := &fakeGit{} + if err := FetchCommit(context.Background(), f.run, "/w", "file:///tmp/r.git", sha, "", AllowFileRemote()); err != nil { + t.Errorf("a file remote with the option: %v", err) + } +} diff --git a/modules/mesh-delivery-sdk/steprun/generated.go b/modules/mesh-delivery-sdk/steprun/generated.go new file mode 100644 index 00000000..d7c12828 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/generated.go @@ -0,0 +1,164 @@ +package steprun + +// **Regenerate and compare** (CAT-BG5, CAT-BN2; novox/hq ADR 0608 §5, design 26 *Contracts modules*). A module whose +// package artifact names `generated-from` holds contracts only: every file under its generated roots is written by the +// seat generator (package seatgen beside this file, command cmd/seatgen) from the definitions in that directory. A build module regenerates them with the generator +// it was built with (its version is this package's requirement, so a new generator is a new build module and a new +// fingerprint of what it builds) and names each file out of step: one that differs, one missing, one under a generated +// root the generator did not write. The test step fails on any; a trunk build's ask answers them in its out-of-step +// (sdkstep.BuildAnswer.OutOfStep), so the builder's build end raises generated-types-out-of-step even where no test +// step runs. Each build module compares its own roots: mesh-build-go `go`, mesh-build-node `ts`. + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "os" + "path/filepath" + "regexp" + "sort" + "strings" + + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatgen" + "git.novox.be/novox/mesh-sdk/go/catalogue" +) + +// GeneratedRootGo and GeneratedRootTS are the generated roots of a contracts module, one per build module. +const ( + GeneratedRootGo = "go" + GeneratedRootTS = "ts" +) + +var goModuleLine = regexp.MustCompile(`(?m)^module\s+(\S+)`) + +// OutOfStep is every file under root, a path from the module's directory, that the generator writes otherwise than the +// module holds it, for each `generated-from` its package artifacts name, sorted and each once; none for a module naming +// none. The generated trees' names are read from the seats already generated in (generatedNames). +func OutOfStep(moduleDir, root string) ([]string, error) { + raw, err := os.ReadFile(filepath.Join(moduleDir, "module.json")) + if errors.Is(err, os.ErrNotExist) { + return nil, nil // no manifest here: nothing names generated-from + } + if err != nil { + return nil, fmt.Errorf("the module's manifest cannot be read for its generated files: %w", err) + } + var m catalogue.Manifest + if err := json.Unmarshal(raw, &m); err != nil { + return nil, fmt.Errorf("the module's manifest does not parse: %w", err) + } + froms := map[string]bool{} + if m.Build != nil { + for _, a := range m.Build.Artifacts { + if a.GeneratedFrom != "" { + froms[filepath.Clean(a.GeneratedFrom)] = true + } + } + } + seen := map[string]bool{} + for from := range froms { + if filepath.IsAbs(from) || from == ".." || strings.HasPrefix(from, "../") { + return nil, fmt.Errorf("generated-from %q is not inside the module", from) + } + dir := filepath.Join(moduleDir, from) + goModule, tsPackage, err := generatedNames(dir) + if err != nil { + return nil, err + } + g, err := seatgen.Load(dir, goModule, tsPackage) + if err != nil { + return nil, fmt.Errorf("the seat definitions in %s do not load: %w", from, err) + } + files, err := seatgen.Generate(g) + if err != nil { + return nil, fmt.Errorf("the seat definitions in %s do not generate: %w", from, err) + } + out, err := seatgen.Compare(dir, files) + if err != nil { + return nil, err + } + for _, line := range out { + p, _, _ := strings.Cut(line, ": ") + if p == root || strings.HasPrefix(p, root+"/") { + seen[filepath.ToSlash(filepath.Join(from, p))] = true + } + } + } + paths := make([]string, 0, len(seen)) + for p := range seen { + paths = append(paths, p) + } + sort.Strings(paths) + return paths, nil +} + +// generatedNames reads the names the generated trees are rooted at from the seats already generated in dir: a seat's Go +// module is `/seats/` and its npm package `-` (a contracts module has no root +// package of either kind, ADR 0635 §1). A module with no seat generated yet gives none, and the generator says so only +// if a seat is defined whole. +func generatedNames(dir string) (goModule, tsPackage string, err error) { + names, _ := filepath.Glob(filepath.Join(dir, "seats", "*", "seat.json")) + for _, p := range names { + seat := filepath.Base(filepath.Dir(p)) + pkg := strings.ReplaceAll(seat, "-", "") + if goModule == "" { + if raw, err := os.ReadFile(filepath.Join(dir, GeneratedRootGo, "seats", pkg, "go.mod")); err == nil { + if m := goModuleLine.FindSubmatch(raw); m != nil { + goModule = strings.TrimSuffix(string(m[1]), "/seats/"+pkg) + } + } + } + if tsPackage == "" { + if raw, err := os.ReadFile(filepath.Join(dir, GeneratedRootTS, "seats", pkg, "package.json")); err == nil { + var p struct { + Name string `json:"name"` + } + if json.Unmarshal(raw, &p) == nil { + tsPackage = strings.TrimSuffix(p.Name, "-"+seat) + } + } + } + } + return goModule, tsPackage, nil +} + +// ModuleDirs is every directory in tree that holds a module.json, in any folder (ADR 0634 §8: a module is found by its +// manifest, whether it lies at the root, under modules/ or in a folder of another module), the tree's own first, then +// sorted. Hidden directories, node_modules and testdata are not entered. +func ModuleDirs(tree string) ([]string, error) { + var out []string + err := filepath.WalkDir(tree, func(p string, e os.DirEntry, err error) error { + if err != nil { + return err + } + if e.IsDir() { + if n := e.Name(); p != tree && (strings.HasPrefix(n, ".") || n == "node_modules" || n == "testdata") { + return filepath.SkipDir + } + return nil + } + if e.Name() == "module.json" { + out = append(out, filepath.Dir(p)) + } + return nil + }) + sort.Strings(out) + return out, err +} + +// CompareStep is AskSteps.Compare for a build module comparing root: it reads {"workspace", "module"}, the workspace's +// tree where tree says it is (the build module's own layout), and answers {"out-of-step": [...]}. +func CompareStep(root string, tree func(workspace string) string) StepFunc { + return func(_ context.Context, args map[string]any) (any, error) { + ws, _ := args["workspace"].(string) + mod, _ := args["module"].(string) + if ws == "" { + return nil, Refuse("the compare names no workspace") + } + paths, err := OutOfStep(filepath.Join(tree(ws), filepath.FromSlash(mod)), root) + if err != nil { + return nil, err + } + return map[string]any{"out-of-step": paths}, nil + } +} diff --git a/modules/mesh-delivery-sdk/steprun/generated_test.go b/modules/mesh-delivery-sdk/steprun/generated_test.go new file mode 100644 index 00000000..9be27bc9 --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/generated_test.go @@ -0,0 +1,133 @@ +package steprun + +import ( + "context" + "errors" + "os" + "path/filepath" + "reflect" + "sort" + "strings" + "testing" + + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/seatgen" +) + +// contracts writes a contracts module of one seat, its generated files as the generator writes them, and answers its +// directory and the generated paths. +func contracts(t *testing.T, manifest string) (string, []string) { + t.Helper() + dir := t.TempDir() + for p, text := range map[string]string{ + "module.json": manifest, + "seats/one-store/seat.json": `{"format":1,"seat":"one-store","scope":"mesh","grain":"whole","domain":"Module","decision":"ADR 1","verbs":[{"name":"query","input":{"type":"object"},"answer":{"type":"object"}}]}`, + // A definition at the seat-list grain is read and generates nothing (ADR 0635 §1, §2). + "seats/other/seat.json": `{"format":1,"seat":"other","scope":"mesh","grain":"seat-list","domain":"Module","decision":"ADR 1","verbs":[{"name":"ask","input":{"type":"object"}}]}`, + } { + writeContract(t, filepath.Join(dir, p), text) + } + m, err := seatgen.Load(dir, "example.org/c/go", "@example/c") + if err != nil { + t.Fatal(err) + } + files, err := seatgen.Generate(m) + if err != nil { + t.Fatal(err) + } + var paths []string + for p, b := range files { + writeContract(t, filepath.Join(dir, p), string(b)) + paths = append(paths, p) + } + return dir, paths +} + +func writeContract(t *testing.T, path, text string) { + t.Helper() + if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(path, []byte(text), 0o644); err != nil { + t.Fatal(err) + } +} + +// **CAT-BG5, CAT-BN2**: a contracts module's generated files are regenerated and compared, each build module its own +// root; a file that differs, one missing and one the generator did not write are each named; a clean tree and a module +// naming no generated-from name none; a build ask answers them in its out-of-step. +func TestAContractsModulesGeneratedFilesAreComparedWithTheGenerator(t *testing.T) { + marked := `{"module":"c","build":{"artifacts":[{"name":"go","kind":"package","language":"go","paths":["go"],"generated-from":"."}]}}` + dir, paths := contracts(t, marked) + var goFile, tsFile string + for _, p := range paths { + if strings.HasPrefix(p, "go/") && strings.HasSuffix(p, ".go") && goFile == "" { + goFile = p + } + if strings.HasPrefix(p, "ts/") && strings.HasSuffix(p, ".ts") && tsFile == "" { + tsFile = p + } + } + for _, p := range paths { + if strings.Contains(p, "other") || p == "go/go.mod" || p == "ts/package.json" { + t.Errorf("%s is generated: a seat-list definition generates nothing and a contracts module has no root package", p) + } + } + if goFile == "" || tsFile == "" { + t.Fatalf("the generator wrote no Go or no TypeScript file: %v", paths) + } + for _, root := range []string{GeneratedRootGo, GeneratedRootTS} { + if got, err := OutOfStep(dir, root); err != nil || len(got) != 0 { + t.Fatalf("a clean tree, root %s: %v %v", root, got, err) + } + } + writeContract(t, filepath.Join(dir, goFile), "package changed\n") + writeContract(t, filepath.Join(dir, "go/extra.go"), "package extra\n") + writeContract(t, filepath.Join(dir, tsFile), "// changed\n") + got, err := OutOfStep(dir, GeneratedRootGo) + if want := sorted(goFile, "go/extra.go"); err != nil || !reflect.DeepEqual(got, want) { + t.Errorf("Go root: %v %v, want %v", got, err, want) + } + if got, _ := OutOfStep(dir, GeneratedRootTS); !reflect.DeepEqual(got, []string{tsFile}) { + t.Errorf("TypeScript root: %v, want %s alone", got, tsFile) + } + _ = os.Remove(filepath.Join(dir, goFile)) + if got, _ := OutOfStep(dir, GeneratedRootGo); !reflect.DeepEqual(got, sorted(goFile, "go/extra.go")) { + t.Errorf("a missing file is not named: %v", got) + } + plain, _ := contracts(t, `{"module":"p","build":{"artifacts":[{"name":"go","kind":"package","language":"go","paths":["go"]}]}}`) + writeContract(t, filepath.Join(plain, "go/extra.go"), "package extra\n") + if got, err := OutOfStep(plain, GeneratedRootGo); err != nil || len(got) != 0 { + t.Errorf("a module naming no generated-from compared: %v %v", got, err) + } + + // The build ask answers them beside what it built, and with a failed build too. + built := 0 + steps := AskSteps{Compare: CompareStep(GeneratedRootGo, func(ws string) string { return ws }), + Fetch: func(context.Context, map[string]any) (any, error) { + return map[string]any{"workspace": filepath.Dir(dir)}, nil + }, + Build: func(context.Context, map[string]any) (any, error) { + if built++; built > 1 { + return nil, errors.New("the second artifact does not build") + } + return map[string]any{"digest": "sha256:aa"}, nil + }} + job := sdkstep.BuildJob{Module: "c", Path: filepath.Base(dir), Fetch: &sdkstep.Fetch{Repository: "novox/c", Commit: "0123456789abcdef0123456789abcdef01234567"}, + Artifacts: []sdkstep.AskArtifact{{Artifact: "go"}}} + out, err := RunAsk(context.Background(), steps, ask(job)) + if a, ok := out.(sdkstep.BuildAnswer); err != nil || !ok || !reflect.DeepEqual(a.OutOfStep, sorted(goFile, "go/extra.go")) || len(a.Artifacts) != 1 { + t.Errorf("the build ask's out-of-step: %+v %v", out, err) + } + job.Artifacts = append(job.Artifacts, sdkstep.AskArtifact{Artifact: "go-other"}) + built = 0 + out, err = RunAsk(context.Background(), steps, ask(job)) + if a, ok := out.(sdkstep.BuildAnswer); err == nil || !ok || len(a.OutOfStep) != 2 { + t.Errorf("a failed build answered no out-of-step: %+v %v", out, err) + } +} + +func sorted(paths ...string) []string { + sort.Strings(paths) + return paths +} diff --git a/modules/mesh-delivery-sdk/steprun/gotest.go b/modules/mesh-delivery-sdk/steprun/gotest.go new file mode 100644 index 00000000..cd6d3aaa --- /dev/null +++ b/modules/mesh-delivery-sdk/steprun/gotest.go @@ -0,0 +1,410 @@ +package steprun + +// The reader of `go test -json` (moved whole from mesh-catalog's mesh-build-go, issue 1901's thorough fix): per package +// what ran and for how long, and each failure under the contract (failure.go), its real cause too when the failure is no +// test's assertion (a panic, a timeout, a build error, an exit, a kill, a race). + +import ( + "bufio" + "encoding/json" + "fmt" + sdkstep "git.novox.be/novox/mesh-delivery/modules/mesh-delivery-sdk/buildstep" + "regexp" + "slices" + "strings" +) + +// GoPackage is one package's part of a Go test level. +type GoPackage struct { + Dir string `json:"dir"` + Package string `json:"package"` + Passed bool `json:"passed"` + Elapsed float64 `json:"elapsed"` + Tests int `json:"tests"` + // Skipped is how many of the package's tests skipped. + Skipped int `json:"skipped,omitempty"` + // NoTests is a package with no test files (at this level: a file with the other level's build tag is none). + NoTests bool `json:"no_tests,omitempty"` +} + +// TestTime is one test and the seconds it took. +type TestTime struct { + Package string `json:"package"` + Test string `json:"test"` + Elapsed float64 `json:"elapsed"` +} + +// GoTest is what one go.mod directory's `go test -json` said. +type GoTest struct { + Packages []GoPackage + Tests int + Skipped int + Times []TestTime + Failed []sdkstep.Failure + // Elapsed is the slowest package's running time in seconds. + Elapsed float64 + // Noise is the lines that were no event: what go said when it could not run the tests at all. + Noise []string +} + +// ReadGoTest reads the output of `go test -json` run in the go.mod directory dir. +func ReadGoTest(out, dir string) GoTest { + r := &goReader{dir: dir, pkgs: map[string]*GoPackage{}, builds: map[string][]string{}, pkgOut: map[string][]string{}, + testOut: map[string][]string{}, causes: map[string]string{}, failedIn: map[string]bool{}, + running: map[string][]string{}, passed: map[string]bool{}, built: map[string]bool{}} + sc := bufio.NewScanner(strings.NewReader(out)) + sc.Buffer(make([]byte, 1<<20), 1<<26) + for sc.Scan() { + var ev goEvent + if err := json.Unmarshal(sc.Bytes(), &ev); err != nil { + if l := strings.TrimSpace(sc.Text()); l != "" { + r.res.Noise = append(r.res.Noise, l) + } + continue + } + r.event(ev) + } + r.finish() + return r.res +} + +// goEvent is one line of `go test -json` (test2json, and the build events go test adds). +type goEvent struct { + Action string + Package string + Test string + Output string + OutputType string // "error" for a t.Error or t.Fatal message, "error-continue" for its further lines + ImportPath string + FailedBuild string + Elapsed float64 +} + +type goReader struct { + res GoTest + dir string + pkgs map[string]*GoPackage + order []string + builds map[string][]string // build output by import path + pkgOut map[string][]string + testOut map[string][]string // by package + "\x00" + test + causes map[string]string // the first error line of a test, by the same key + failedIn map[string]bool // packages with a failed test + // running is the tests that started and have not ended, by package, in the order they started: when a package + // fails with no failed test, these were running when its test program stopped. + running map[string][]string + // passed says a package's test program printed "PASS" before it failed; built says it failed to build. + passed, built map[string]bool +} + +func (r *goReader) pkg(name string) *GoPackage { + p := r.pkgs[name] + if p == nil { + p = &GoPackage{Dir: r.dir, Package: name} + r.pkgs[name] = p + r.order = append(r.order, name) + } + return p +} + +func keepLine(lines []string, out string) []string { + if t := strings.TrimRight(out, "\r\n"); t != "" && !strings.HasPrefix(t, "=== ") { + lines = append(lines, t) + } + return lines +} + +func (r *goReader) event(ev goEvent) { + switch { + case ev.Package == "" && ev.ImportPath != "": + if ev.Action == "build-output" { + r.builds[ev.ImportPath] = keepLine(r.builds[ev.ImportPath], ev.Output) + } + case ev.Package == "": + case ev.Test == "": + p := r.pkg(ev.Package) + switch ev.Action { + case "output": + // go test's own summary of a package is never a failure's words: a "PASS" before a "FAIL " says only + // that the tests passed and the program failed after them. + switch l := strings.TrimRight(ev.Output, "\r\n"); { + case l == "PASS": + r.passed[ev.Package] = true + case goSummaryLine(l): + default: + r.pkgOut[ev.Package] = keepLine(r.pkgOut[ev.Package], ev.Output) + } + case "pass": + p.Passed, p.Elapsed = true, ev.Elapsed + case "fail": + p.Passed, p.Elapsed = false, ev.Elapsed + if ev.FailedBuild != "" { + r.built[ev.Package] = true + r.pkgOut[ev.Package] = append(r.builds[ev.FailedBuild], r.pkgOut[ev.Package]...) + } + case "skip": + p.Passed, p.NoTests = true, true + } + default: + key := ev.Package + "\x00" + ev.Test + switch ev.Action { + case "output": + r.testOut[key] = keepLine(r.testOut[key], ev.Output) + if ev.OutputType == "error" && r.causes[key] == "" { + r.causes[key] = goErrorWords(ev.Output) + } + case "run": + r.running[ev.Package] = append(r.running[ev.Package], ev.Test) + case "pass", "fail", "skip": + r.running[ev.Package] = slices.DeleteFunc(r.running[ev.Package], func(t string) bool { return t == ev.Test }) + p := r.pkg(ev.Package) + p.Tests++ + r.res.Tests++ + if ev.Action == "skip" { + r.res.Skipped++ + p.Skipped++ + } + r.res.Times = append(r.res.Times, TestTime{Package: ev.Package, Test: ev.Test, Elapsed: ev.Elapsed}) + if ev.Action == "fail" { + r.failedIn[ev.Package] = true + if r.subtestFailed(ev.Package, ev.Test) { + return // a parent failed only by its subtest is that subtest's failure, said once + } + if r.subtestTakesTheCause(ev.Package, ev.Test) { + return // a subtest's panic, which go files under its parent, is said on the subtest + } + r.res.Failed = append(r.res.Failed, r.testFailure(ev.Package, ev.Test)) + } + } + } +} + +// subtestFailed says a failure of test under pkg was already reported for one of its subtests (they end first), each with +// a cause of its own, and the test reported no error and no runtime cause (a subtest's panic) of its own. +func (r *goReader) subtestFailed(pkg, test string) bool { + key := pkg + "\x00" + test + if r.causes[key] != "" || goRuntimeCause(r.testOut[key]) != "" { + return false + } + for _, f := range r.res.Failed { + if f.Package == pkg && strings.HasPrefix(f.Test, test+"/") { + return true + } + } + return false +} + +// noMessage is the cause of a test that failed and said nothing of why. +const noMessage = "the test failed without an error message (t.Fail or t.FailNow)" + +// subtestTakesTheCause gives a parent's runtime cause (a subtest's panic: go test -json files its lines under the +// parent) to the subtests of that parent that failed with no message of their own, and says it did. A parent with an +// error line of its own, or whose failed subtests each said why, is reported as itself. +func (r *goReader) subtestTakesTheCause(pkg, test string) bool { + key := pkg + "\x00" + test + if r.causes[key] != "" { + return false + } + cause := goRuntimeCause(r.testOut[key]) + if cause == "" { + return false + } + took := false + for i, f := range r.res.Failed { + if f.Package == pkg && strings.HasPrefix(f.Test, test+"/") && f.Cause == noMessage { + r.res.Failed[i].Cause, r.res.Failed[i].Output = cause, sdkstep.Clip(r.testOut[key], cause) + took = true + } + } + return took +} + +// testFailure is a test that failed: its cause is its first error line, the race it ran into, the runtime's line, or +// words saying it failed without a message. +func (r *goReader) testFailure(pkg, test string) sdkstep.Failure { + key := pkg + "\x00" + test + cause := r.causes[key] + if race := goRaceCause(r.testOut[key]); race != "" && (cause == "" || strings.HasPrefix(cause, "race detected")) { + cause = race // the race itself, not testing's "race detected during execution of test" + } else if cause == "" { + cause = goRuntimeCause(r.testOut[key]) + } + if cause == "" { + cause = noMessage + } + return sdkstep.Failure{Package: pkg, Test: test, Output: sdkstep.Clip(r.testOut[key], cause), Cause: cause} +} + +// goSummaryLine says a line is go test's summary of a package, in go's exact forms only: "PASS" or "FAIL" alone, +// "ok \t\t