Skip to content

Commit convention

Commits follow Conventional Commits 1.0 in English: an imperative summary and a body with every change. That way the history reads itself and the next version is calculated from it (Releases). Up to version 1.3.0 the messages were in Spanish.

type(scope): imperative summary in lowercase, no trailing period
- area: what changed and why, one bullet per change
- area: …
BREAKING CHANGE: what stops working and how to migrate

The first line is at most 72 characters. The body details every change grouped by area (server, interface, desktop, docs…): what changed and why, never “various fixes”.

Type For Version
feat Something new that people can use minor (1.1.0)
fix A bug fix patch (1.0.1)
perf Faster or less memory, without changing what it does patch
refactor Code reorganized without changing behavior —
style Code formatting (not interface design: that is feat or fix) —
docs Documentation only —
test Tests —
build Dependencies, Dockerfile, packaging —
ci GitHub Actions workflows —
chore Maintenance (includes chore(release)) —
revert Undoes a previous commit —

A ! before the colon (feat(api)!: …) or a BREAKING CHANGE: footer marks an incompatible change: it bumps the major version (2.0.0).

Optional, in English and lowercase: the area of the app that changes.

library · libraries · import · queue · player · voice · translation · recognition · export · access · api · webhooks · youtube · ui · desktop · docker · docs

feat(queue): prioritize from the card
fix(voice): stop trimming reference clips by guessing the text
perf(recognition): cap the CTranslate2 cache at 400 MB
docs(api): add a curl export example
build(docker): use the CUDA 12.8 image
feat(api)!: move the video routes to /api/v2

.githooks/commit-msg rejects a message that does not follow the format, and a feat, fix or perf that changes the app (vt/, web/, Dockerfile, requirements.txt…) without touching the documentation or the changelogs (see Documentation). Enable it once per clone:

Terminal window
git config core.hooksPath .githooks
git config commit.template .gitmessage

The second line sets up a template with the types and scopes when the commit editor opens.