fix(build): judge each index by its own source fallbacks #193
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/scope-source-fallback-per-minor"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
#192 made the per-minor objects visible to their pass, and that part works: every slot now reports a populated per-minor cache where it previously reported
0 of 119053.But the cache-driven skip rate stayed near zero, and the builds kept recompiling packages that already exist. Sampling what pipeline 12027 called missing, against the live CDN:
source_servedis read from the flat slot'sPACKAGES.gzand lists the packages that index serves as CRAN source instead of a binary. It was applied to every path in the listing:A package the flat slot serves as source still has a real
4.4/<pkg>.tar.gz, so dropping that basename deleted a genuine binary from the cache.The overlap with the work list is total rather than partial, which is why the skip rate was ~0% and not merely low: the sensitive candidate list is exactly "sensitive packages with no flat binary", which is the same set this was removing. amd64/resolute listed 21212 per-minor objects and cached only 13572; the missing ~7600 are these.
What changed
PACKAGES.gzand exclude only that minor's own source fallbacks.All per-minor indexes were confirmed reachable (
4.4,4.5,4.6return 200 on the slots checked); an unreadable index falls back to keeping that scope's cache in full, which is the safe direction.Verification
Correct in both directions: the old code dropped
4.4/osmdata(a real binary) and kept4.6/broken(a real source fallback in the 4.6 index). The new code restores the first and still excludes the second.prek run -apasses.Pipelines 12025-12029 were stopped rather than left recompiling what they already have; their uploads persist, so a fresh run inherits them.