Skip to content

2.3.0

Choose a tag to compare

@scottpmiller scottpmiller released this 08 Aug 17:04
· 13 commits to main since this release
2.3.0
58712f9

What's Changed

A run now describes its own scores.

Added

  • RunResult.graders, a map of grader name to models.GraderInfo (category, scale), filled in by the runner from the graders it built.

    A Score names the grader that emitted it and nothing else, so a run could not previously answer for itself. A run.json written by one CI step and published by a later one needed the suite file alongside it; without one, every grader reported unknown and 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.

  • register also records the category on the decorated class as grader_category, so a grader instance can answer for itself. The runner reads it the same way it already collects judge_version.

Changed

  • store.score_rows takes the grader category and judge scale from run.graders:

    exporter.export_scores(run, comparison)   # no lookups needed

    grader_types and judge_scales still override it, and are how a run written before this release - whose map is empty - publishes correctly. grader_lookups is unchanged.

Upgrading: nothing to do. Passing the lookups still works and still wins.