1@README.md 2 3- **Never hand-edit `THIRD-PARTY` or `THIRD-PARTY-sidecar`.** Run 4 `buck2 run //tools/third-party-notices:update`; `:drift` fails until you 5 do. 6- **Never keep a second list of crates, urls or hashes.** The archives are 7 read through `$(query_outputs …)`, which reaches `third-party/BUCK`'s 8 private `http_archive` targets where a dep cannot (reindeer hard-codes 9 their `visibility = []`). 10- **A crate with no licence expression or no text fails the build, on 11 purpose.** Fix it with a `texts/<name>-<version>/` entry fetched from 12 upstream at that version, with a `SOURCE`; an entry for a crate linked 13 into neither binary, or one that ships its own text, fails too, so the 14 folder cannot go stale. 15- **Generate both files in one run.** One `texts/` serves both, and its 16 staleness check is against the union. 17- **`texts/` gets no README pair**: its subfolders are fetched upstream 18 texts, a mechanical shard explained here.