The corpus has been measured from every angle; the code running it had not
been read once. The worst thing here was not a wrong answer but an absent
one.
A SYNTAX ERROR ANYWHERE ERASED EVERY AST FINDING. Each semantic checker
parses for itself and returns [] when that fails, so nine of them agreed
there was nothing to say and `check` printed "no checker findings" and
exited 0. A file with a real stale-compute bug reported it; the same file
with a trailing `def oops(:` reported nothing. scan_source now parses once
and returns a gap with the line number in it.
@api.depends DID NOT COVER ITS OWN PREFIX. Declaring 'line_ids.price'
registers the whole chain, so a body reading rec.line_ids needs nothing
more. Exact string matching called that stale: 42 of the rule's 104 hits
on OpenSPP, 40% of its output. Its own `correct` sample hid it by
declaring the prefix redundantly, which is why validate never saw it.
THE OTHER 25 RULES HAD NEVER BEEN FIRED AT REAL CODE. Every committed
artifact wa…
provenance: the version claims against source, and the gate gets tests
VERSION CLAIMS, FROM THE SOURCE THIS TIME
`check_sources.py` reads the documentation, and documentation has one blind
spot the corpus had already fallen into: a function Odoo shipped and never
described reads as missing. That is why float-comparison-needs-float-utils
carried a hand-written basis while every other rule rested on a page.
`--source` reads odoo/odoo itself and asks whether the API is DEFINED in that
series' module -- `def float_compare(` in odoo/tools/float_utils.py, not the
word float_compare anywhere on a page. Fetched per file rather than cloned:
three series of two branches is a gigabyte to answer a question about
eighteen symbols.
54 of 54 rule-series defined, across 16.0, 17.0 and 18.0
That closes it. No Odoo rule's range now rests on an assertion, float_compare
included -- its signature is byte-identical in all three series, which the
basis field now states as a measurement instead of a belief.
Two things worth recording that only the source could settle:
…