27 lines
1.5 KiB
Markdown
27 lines
1.5 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, with the `go` and `nodejs` modules: it requires their provisions `go-toolchain` and `node-toolchain` (novox/hq ADR 0477 clause 4).
|
|
|
|
## Owns
|
|
|
|
| what | package | class (ADR 0182) |
|
|
|---|---|---|
|
|
| the Go toolchain, for `go build` and `go test` in every Go module | the `go` module's package `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` | the `nodejs` module's packages `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.
|