Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

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.

Code

392 commit(s) on main

Merge change request 01M70WES5ZZDJ6RP226WB11BBZ: Let people rename and remove their own passkeys keenan · 53m ago 4b8c9e1d
source preview history blame raw 1.4 KiB
1# Developing Vole
2
3## Build
4
5```sh
6go build -tags libsqlite3,sqlite_fts5 -o vole ./cmd/vole
7```
8
9Vole links SQLite dynamically, so a build needs a C compiler and the SQLite
10development headers (`libsqlite3-dev` on Debian and Ubuntu, `sqlite-devel` on
11Fedora and RHEL). The library must be built with FTS5, which the distributions
12above enable; global search uses it. The binary needs `libsqlite3.so.0` on the
13machine 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
19go test -tags sqlite_fts5 ./...
20```
21
22## Before you push
23
24```sh
25vole workflow run verify
26```
27
28`verify` is everything CI runs: formatting, vet, build, the license and
29vulnerability scans, the packages, the deployment files, Markdown links, and the
30tests. Its steps live in
31[`.vole/workflows/verify.yaml`](.vole/workflows/verify.yaml), so a local run and a
32pushed run execute the same commands in the same image. That means it needs a
33container 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
40Vole is also a Go library. See
41[Architecture § Using Vole as a library](docs/architecture.md#using-vole-as-a-library).
42