Esc
↑↓ to move↵ to openEsc to close

DocsConcepts

Labels and maturity

What counts as a bad change, and when an outcome is old enough to learn from.

Proposed

A model can only learn what it is shown. The label decides what "a bad change" means, and maturity decides when an outcome is old enough to count.

The target

text
label_bad = revert OR ci_fail OR hotfix
SignalFires whenWindow
revertA later commit reverts the pull request30 days
ci_failRequired checks on the merge commit fail; auxiliary and flaky checks excludedat merge
hotfixA hotfix-labelled pull request touches the same lines7 days

SZZ bug-inducing links and follow-up fixes are mined as well, but are not part of the target; both are reported as ablations.

Maturity

An outcome is only usable once the window for it to happen has closed.

Label sourceMatures after
revert, ci_fail, hotfix30 days
SZZ90 days

Pull requests younger than their window are dropped from training, never counted as good.

What the signal looks like

MeasureRateSource
Revert rate in open source1–5% of commitsShimagaki et al., ICSME 2016
SZZ bug-inducing rateabout 26%ApacheJIT, MSR 2022

Point in time

Features and labels are point-in-time: a pull request only sees data from before it opened, and only labels that were already mature at that moment. null means not declared or not enough history; 0 means measured and found none. The two are never coerced into each other.