Repository navigation
2.3.0
What's Changed
A run now describes its own scores.
Added
-
RunResult.graders, a map of grader name tomodels.GraderInfo(category,scale), filled in by the runner from the graders it built.A
Scorenames the grader that emitted it and nothing else, so a run could not previously answer for itself. Arun.jsonwritten by one CI step and published by a later one needed the suite file alongside it; without one, every grader reportedunknownand a suite with a judge could not be published at all. The artifact looked complete and wasn't.Run-grain rather than score-grain: one entry per grader, not two fields repeated across a couple of hundred rows.
-
models.GraderInfo. -
registeralso records the category on the decorated class asgrader_category, so a grader instance can answer for itself. The runner reads it the same way it already collectsjudge_version.
Changed
-
store.score_rowstakes the grader category and judge scale fromrun.graders:exporter.export_scores(run, comparison) # no lookups needed
grader_typesandjudge_scalesstill override it, and are how a run written before this release - whose map is empty - publishes correctly.grader_lookupsis unchanged.
Upgrading: nothing to do. Passing the lookups still works and still wins.