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 · 7m ago 4b8c9e1d
source preview history blame raw 1.4 KiB

Developing Vole

Build

go build -tags libsqlite3,sqlite_fts5 -o vole ./cmd/vole

Vole links SQLite dynamically, so a build needs a C compiler and the SQLite development headers (libsqlite3-dev on Debian and Ubuntu, sqlite-devel on Fedora and RHEL). The library must be built with FTS5, which the distributions above enable; global search uses it. The binary needs libsqlite3.so.0 on the machine that runs it. go.mod pins the Go toolchain, so an older go on your PATH fetches the right one on the first build.

Test

go test -tags sqlite_fts5 ./...

Before you push

vole workflow run verify

verify is everything CI runs: formatting, vet, build, the license and vulnerability scans, the packages, the deployment files, Markdown links, and the tests. Its steps live in .vole/workflows/verify.yaml, so a local run and a pushed run execute the same commands in the same image. That means it needs a container runtime (Docker, Podman, or nerdctl) rather than the tools on your PATH, and network access for module downloads: the job declares network: bridge, so the runner that takes it is started with --container-network bridge, and a local run defaults to the same network.

Using Vole as a library

Vole is also a Go library. See Architecture § Using Vole as a library.