~~We don’t need any hybrid phase for {T185709}, so we can probably just exchange the `CachingResultsBuilder` implementation for one that reads and writes `CheckResult` serializations instead (with a separate cache key format… `v2.2` I guess).~~
The transition is complicated enough that it’s split up across several patches. Essentially, were replacing `ResultsBuilder` with `ResultsSource` plus `CheckResultsRenderer`.
#patch-for-review:
- [x] [add `CachedCheckResults`](https://gerrit.wikimedia.org/r/420706) (simple wrapper object)
- [x] [`ResultsSource`, `CheckingResultsSource`](https://gerrit.wikimedia.org/r/420707) (half of `CheckingResultsBuilder`)
- [x] [`CheckResultsRenderer`](https://gerrit.wikimedia.org/r/420708) (other half of `CheckingResultsBuilder`)
- [x] [make the `"v2.1"` part of the cache key in `ResultsCache` configurable](https://gerrit.wikimedia.org/r/420719) – we need `"v2.1"` for `CachingResultsBuilder` but `"v2.2"` for `CachingResultsSource`
- [ ] [`CachingResultsSource`](https://gerrit.wikimedia.org/r/420834)
- [ ] [change `CheckConstraints` API to use `ResultsSource`+`CheckResultsRenderer` instead of `ResultsBuilder`](https://gerrit.wikimedia.org/r/420835)
- [ ] remove `ResultsBuilder` and implementations
- [ ] [update API help message of `status` parameter](https://gerrit.wikimedia.org/r/421873)