For agents, on top of README.md, which they read first.
- The Cargo manifests are generated. Never edit a
Cargo.tomloutsidethird-party/by hand: change the BUCK file (orbuild/defs.bzl,third-party/Cargo.toml) and runbuck2 run //tools/cargo-gen:update. - A new first-party buck package must be added to
PACKAGESintools/cargo-gen/BUCK, or it gets no manifest. Buck cannot enumerate packages from inside a build, so that list is the one hand-kept input. third-party/BUCKexportsCargo.tomlthroughbuckfile_importsinthird-party/reindeer.toml; setting that key drops reindeer's defaultcargo.rule prefixes, which is why the same file sets them back.- Never fix a drift failure by editing the committed file. Run the
tool's
:update; a hand edit that happens to match will drift again on the next change.