References and milestones
Every result in QA-Board is compared with a reference: the web app shows each run next to the matching run of the
reference, and qa gate and qa check-bit-accuracy fail on the differences. As whoever integrates a project, you
choose the default reference, and the versions worth comparing with. People pick other references
and save milestones in the web app.
Set the default reference
By default, a commit is compared with the latest commit of the project's reference branch that has successful runs:
project:
reference_branch: main
Run your CI on that branch (see CI integration): its latest results are what every other commit is compared with. On a commit page, the reference's Change menu offers the reference branch, the milestones, and to switch the new and reference commits:


Set reference_branch: without it, the commit page compares with the latest commit that has results on any branch,
while the Change menu, qa check-bit-accuracy and qa gate use master.
List reference branches in qaboard.yaml
Release branches and long-lived branches you often compare with can be listed under project.milestones:
project:
reference_branch: main
milestones:
- release/kd-1.3
- quant/int8
They are listed in the Milestones menus under "From qaboard.yaml": picking one compares with the latest commit of that branch. To keep the results of one commit, save a milestone instead.
Use milestones in the CI and in scripts
Milestones are results saved in the web app to compare with later: a commit's batch, with a name like kd-1.2, notes,
and a filter. They're shared with everyone on the project, or private. See
Milestones in the user guide for how people save and find them.


For integrators:
- Gate on a release:
qa gate --reference kd-1.2, orgate.reference: kd-1.2in qaboard.yaml, compares with a shared milestone, by its name (see Quality gate).#12names the milestone whose link is/<project>/milestone/12-..., shared or not. - Read them from scripts:
GET /api/v1/milestones?project=<project>lists the shared milestones (and yours, with your API token): each with itslabel,group,notes,commit,batchandfilter. - Link to them: each milestone has a link,
/<project>/milestone/<id>-<name>, that anyone who can see the project can open. Renaming a milestone keeps its link. - Keep their results: the cleanup of old results keeps the batches that are milestones, and the web app won't delete all their runs.
qa check-bit-accuracy --reference takes a branch, a tag or a commit, not a milestone (see
Bit accuracy).