1@README.md
2
3- **`BUCK` is generated:** edit `Cargo.toml`, `reindeer.toml` or `fixups/`,
4  then re-buckify (`reindeer --third-party-dir third-party buckify`).
5- **A crate whose build script links native code needs
6  `rustc_link_lib`/`rustc_link_search` in its fixup** (see ring), or its
7  symbols go missing at the final link.
8- **`fixups/<crate>/` holds only `fixups.toml`, one per crate;** they get no
9  README pair (a mechanical shard, see the documentation rule). `top/` gets
10  none either: it is reindeer's placeholder crate root.
11- **`reindeer.toml`'s `buckfile_imports` loads `cargo` and
12  `buildscript_run` from `pg_major.bzl`, not the prelude:** those wrappers
13  make pgrx's `pgNN` feature and bindgen's `PGRX_PG_CONFIG_PATH` follow
14  `//platforms:pgNN`. Keep that load when editing the imports.
15- **`jevcrates/` is a git submodule of jevcrates** (`jev-protocol`,
16  `jev-client`, `jev-mock`), path dependencies in `Cargo.toml`. Never edit
17  inside it here: change jevcrates, then move the gitlink
18  (`git -C third-party/jevcrates fetch && git -C third-party/jevcrates
19  checkout <rev>`, then commit the new gitlink). Its URL in `.gitmodules` is
20  the relative `../jevcrates.git`; keep it relative, or a clone from the
21  lmjtfy site points the submodule at private GitHub and fails.
22- **`nix/package.nix` parses this `BUCK` at eval.** A reindeer upgrade that
23  changes the `http_archive` block's shape fails the package build with
24  "an http_archive in third-party/BUCK has an unexpected shape"; fix the
25  match there.