Repository navigation
The facts 2.6.0 added reach a results store.
Shipped as a patch. It changes what published rows contain, so the 1.0.0
policy would call it a minor; it goes out as 2.6.1 as a deliberate exception,
because it completes 2.6.0 rather than adding to it. Same call 2.4.2 made, for
the same reason.
Added
score_rowsexports the direction and range 2.6.0 introduced. That release
gave every metric both and then kept them in memory: the row shape this
module flattens a run into carried neither, so nothing reached a results
store and no consumer downstream could use them. Five columns on every row
shape, including the failed-invocation row that names no metric at all.value_range(none/bounded/unbounded_above/
unbounded_below/unbounded),value_minimumandvalue_maximum.
The discriminator is what makes "declared unbounded" and "never declared"
different answers, which two nullable floats cannot express; it is the
idiommetric_kind = 'none'already uses beside a filled-invalue. All
five members are spelled out becauseMetricRangecan express all five -
range: {max: 5}on a numeric field producesunbounded_below- and a
consumer storing this as an enum pays a migration to add a member later.metric_directionandhigher_is_better.metric_directioncarries the
same four valuesgate_windoes,noneamong them, meaning never
computed: an ungated run has no baseline, andneutralwould report
"measured, and it did not move" about a number nothing was measured
against.higher_is_betteris'true'|'false'|'unknown', andunknown
is narrower than it looks -compare()defaults a metric nothing
mentions to higher-is-better, so it readsunknownonly when a suite
declared the metric neutral or there was no comparison at all.
Changed
_passedis now_tristate, taking the spelling of its third state as an
argument.passedkeeps'null', which it has published since the row
shape existed;higher_is_betteruses'unknown', which reads as "nobody
declared one" rather than as a missing value. Private; no caller outside
this module.