vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
|
e73d453f
Keenan Nemetz
2d ago
|
1 | # Developing Vole |
| 2 | ||
| 3 | ## Build | |
| 4 | ||
| 5 | ```sh | |
| 6 | go build -tags libsqlite3,sqlite_fts5 -o vole ./cmd/vole | |
| 7 | ``` | |
| 8 | ||
| 9 | Vole links SQLite dynamically, so a build needs a C compiler and the SQLite | |
| 10 | development headers (`libsqlite3-dev` on Debian and Ubuntu, `sqlite-devel` on | |
| 11 | Fedora and RHEL). The library must be built with FTS5, which the distributions | |
| 12 | above enable; global search uses it. The binary needs `libsqlite3.so.0` on the | |
| 13 | machine that runs it. `go.mod` pins the Go toolchain, so an older `go` on your | |
| 14 | `PATH` fetches the right one on the first build. | |
| 15 | ||
| 16 | ## Test | |
| 17 | ||
| 18 | ```sh | |
| 19 | go test -tags sqlite_fts5 ./... | |
| 20 | ``` | |
| 21 | ||
| 22 | ## Before you push | |
| 23 | ||
| 24 | ```sh | |
| 25 | vole workflow run verify | |
| 26 | ``` | |
| 27 | ||
| 28 | `verify` is everything CI runs: formatting, vet, build, the license and | |
| 29 | vulnerability scans, the packages, the deployment files, Markdown links, and the | |
| 30 | tests. Its steps live in | |
| 31 | [`.vole/workflows/verify.yaml`](.vole/workflows/verify.yaml), so a local run and a | |
| 32 | pushed run execute the same commands in the same image. That means it needs a | |
| 33 | container runtime (Docker, Podman, or nerdctl) rather than the tools on your | |
| 34 | `PATH`, and network access for module downloads: the job declares | |
| 35 | `network: bridge`, so the runner that takes it is started with | |
| 36 | `--container-network bridge`, and a local run defaults to the same network. | |
| 37 | ||
| 38 | ## Using Vole as a library | |
| 39 | ||
| 40 | Vole is also a Go library. See | |
| 41 | [Architecture § Using Vole as a library](docs/architecture.md#using-vole-as-a-library). |