bots-garden/sidekickspublic Fork
⑂ v1.2.0
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/sidekicks.git
git clone ssh://git@rickub.com/bots-garden/sidekicks.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
📦️ Create a release. f95c2c9 · on v1.2.0 · k33g · 3d ago
check-before-merging.md · 49 lines · 2.5 KBmarkdown
Blame HistoryOpen raw

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

  1. 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.

  2. Run every check:

    make verify
    

    It runs make check — golangci-lint, svelte-check, the licence headers, then the Go, frontend and shell tests — and then make bindings-check: the TypeScript bindings are regenerated and must be identical to the staged ones. A green run ends with:

    all tag-release tests passed
    

    and no git diff output.

  3. If the bindings check fails: the services or events changed without make bindings. The regeneration has just updated frontend/bindings: stage it (git add frontend/bindings) and run make verify again.

  4. Check on Linux too, from the Mac, when the change touches the terminals, the workspaces, the shell scripts or the build:

    make check-linux
    

    It runs make check in 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).

  5. Merge into main.

Variants

  • The change touches ACP, the agents or the channels: also run the tests against the real agents, make test-real (needs mm and llmman; see How to run the tests).

  • The change shows in the interface: make dev and 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-push
    

    git push --no-verify skips 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 verify is enough; make check-linux is for the Mac.

See also

 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
# 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](develop-the-application.md) and a terminal at the root of the repository.

## Steps

1. **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.
2. **Run every check**:

   ```bash
   make verify
   ```

   It runs `make check` — golangci-lint, svelte-check, the licence headers, then the Go, frontend and shell tests — and then `make bindings-check`: the TypeScript bindings are regenerated and must be identical to the staged ones. A green run ends with:

   ```text
   all tag-release tests passed
   ```

   and no `git diff` output.
3. **If the bindings check fails**: the services or events changed without `make bindings`. The regeneration has just updated `frontend/bindings`: stage it (`git add frontend/bindings`) and run `make verify` again.
4. **Check on Linux too**, from the Mac, when the change touches the terminals, the workspaces, the shell scripts or the build:

   ```bash
   make check-linux
   ```

   It runs `make check` in 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).
5. **Merge** into `main`.

## Variants

- **The change touches ACP, the agents or the channels**: also run the tests against the real agents, `make test-real` (needs `mm` and llmman; see [How to run the tests](run-the-tests.md#run-the-tests-against-the-real-agents)).
- **The change shows in the interface**: `make dev` and try it; for a release, the [end-to-end scenarios](run-the-end-to-end-scenarios.md).
- **Check automatically before every push**: install a git hook once —

  ```bash
  printf '#!/bin/sh\nexec make verify\n' > .git/hooks/pre-push && chmod +x .git/hooks/pre-push
  ```

  `git push --no-verify` skips 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 verify` is enough; `make check-linux` is for the Mac.

## See also

- [How to run the tests](run-the-tests.md) — one part at a time, real agents, containers
- [Reference: commands](../reference/commands.md) — every `make` target
- [RELEASING.md](../../../RELEASING.md) — once `main` is ready to be released