MGS7003: symbol index not current
The conformance checks in magus diff read the symbol index. Before they run,
magus brings every index of every project the change touched up to date, by
running each index's op (scip, or the op its indexer declares, such as scip-buzz) through
the run scheduler and the cache: an index that is already current replays, and a
stale one rebuilds only itself. An index whose indexer is not installed is left
out while another index of the same project has its indexer, so a missing
scip-buzz does not cost the Go index its review.
This code fires when that could not happen for one or more projects. The review
still lists every file, its role, reach and ownership, but the conformance
checks do not run, and each of these says so in their place: the magus diff
report, magus diff --thread, the console, and the conformance section of the pull
request comment, which fails its step rather than reading as a change with
nothing to report.
Why
A stale index answers questions about a tree that no longer exists. A new function missing from it has no family to be compared against, so every check would stay quiet, and quiet is exactly what a clean change looks like. The review refuses to read one rather than report that absence as a result.
Resolution
The message names each project and its cause. A cause that carries its own
code reads inline, such as go:go reports no version in /repo (MGS3035); its
page has the fix. The reason the checks did not run rides beside the message:
dim under it on a terminal, as why in -o json, and in the run log for an
agent unless it runs with -v. With cache writes off, that reason adds that
enabling them for one run publishes nothing without a signing key.
- The indexer is not installed (
scip-go,scip-typescript,scip-buzz, and so on). Install the one the message names, then runmagus graph build. - The indexer failed. Run
magus run <project>::scip(or the indexer op the message names) to see its output, fix what it reports, then rerun the review. - Cache writes are off (
cache.write.enabled: false, orMAGUS_CACHE_WRITE_ENABLED=false). The indexer ran, but the cache recorded nothing to vouch for what it wrote, so the index cannot be told apart from a stale one. Enable cache writes for the run that reviews. WithoutMAGUS_CACHE_SIGNING_KEYit still publishes nothing to a shared cache. - The cache could not be opened. Check that the cache directory is writable, then rerun.