mesh/merge-gate head c0726ac2641b merged into trunk 19ecad261cf2 — pass: builds new: modules/dev-tools, sent nowhere; no bus step; every machine composes w…
mesh/repo-check head c0726ac2641b merged into trunk 19ecad261cf2 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-…
mesh/delivery delivered
Every node is a development machine: an agent builds a change and runs its tests there before opening a pull request, and the lab tests it afterwards as QA. No module declared Go or npm, so no node could do the first part.
27 lines
1.3 KiB
Markdown
27 lines
1.3 KiB
Markdown
# dev-tools
|
|
|
|
The tools a machine needs to develop the mesh's own code (novox/hq issue 626). Every node is a development
|
|
machine: an agent working on a change builds it and runs its tests there, with these tools, before it opens a
|
|
pull request. The lab is the QA step after that: it tests the work in a sandbox, through its seat at the mesh
|
|
scope, and is not where development happens.
|
|
|
|
Assign it to every node.
|
|
|
|
## Owns
|
|
|
|
| what | package | class (ADR 0182) |
|
|
|---|---|---|
|
|
| the Go toolchain, for `go build` and `go test` in every Go module | `go` | package |
|
|
| a C compiler, for `go test -race` and cgo | `gcc` | package |
|
|
| make | `make` | package |
|
|
| Node.js and npm, for the TypeScript modules' `npm ci` and `npm test` | `nodejs`, `npm` | package |
|
|
| Python, for the scripts some checks run | `python` | package |
|
|
| git and jq | `git`, `jq` | package |
|
|
|
|
All are in the distribution's official repositories, so the node-engine's package manager installs them on any
|
|
node. The versions are the distribution's: the toolchain images that run `mesh/repo-check` stay the judge of a
|
|
pull request, and a local run is the developer's early answer, not the verdict.
|
|
|
|
Nothing else is placed: no file, no service, no environment. A module's own dependencies come from its lock
|
|
file (`go.mod`, `package-lock.json`), as in the toolchain images.
|