How to check a change before merging it
Sidekicks has no CI: the checks run on your machine. This guide shows what to run before merging a branch into main. It assumes the development tools of How to develop the application and a terminal at the root of the repository.
Steps
-
Stage or commit your change, bindings included (
git add -A). The bindings check compares the regenerated bindings with what git has, not with your working tree. -
Run every check:
make verifyIt runs
make check— golangci-lint, svelte-check, the licence headers, then the Go, frontend and shell tests — and thenmake bindings-check: the TypeScript bindings are regenerated and must be identical to the staged ones. A green run ends with:all tag-release tests passedand no
git diffoutput. -
If the bindings check fails: the services or events changed without
make bindings. The regeneration has just updatedfrontend/bindings: stage it (git add frontend/bindings) and runmake verifyagain. -
Check on Linux too, from the Mac, when the change touches the terminals, the workspaces, the shell scripts or the build:
make check-linuxIt runs
make checkin an ubuntu:26.04 container with GTK 4 and WebKitGTK 6 (Docker must be running; the first run builds the image, about 2.6 GB). -
Merge into
main.
Variants
-
The change touches ACP, the agents or the channels: also run the tests against the real agents,
make test-real(needsmmand llmman; see How to run the tests). -
The change shows in the interface:
make devand try it; for a release, the end-to-end scenarios. -
Check automatically before every push: install a git hook once —
printf '#!/bin/sh\nexec make verify\n' > .git/hooks/pre-push && chmod +x .git/hooks/pre-pushgit push --no-verifyskips it when needed (pushing a tag, for instance). -
Linux x86-64 from an Apple Silicon Mac:
LINUX_ARCH=amd64 make check-linux(emulated, so slower). -
On Linux:
make verifyis enough;make check-linuxis for the Mac.
See also
- How to run the tests — one part at a time, real agents, containers
- Reference: commands — every
maketarget - RELEASING.md — once
mainis ready to be released
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|