Skip to content

Where each fact lives

Each fact is edited in one place (decision 14, docs/decisions/0014-one-source-per-fact.md). Pages are rendered from their sources when the docs site is built (Zensical, mkdocs.yml), so none is committed; the few generated files other tools read are rebuilt by the pre-commit hook, which stops a commit that left one stale. The one exception is each camera's definition, editor/definitions/<model>_fw<fw>.json: only kit/schema_update.py --write (or kit/tools/build_docs.py --write-schema) writes it, for the camera the kit works on and on the machine that holds its runs, and build_docs.py --definitions its parts from data/; the hook never does.

Fact Edited in Rendered or generated into
What each record means, and its proof the proof runs in runs/<model>_fw<fw>/, and the camera's hand tables (data/<model>_fw<fw>/hand_tables_<model>_fw<fw>.json, by hand: names, value tables and facts; their proofs in the mapper's private/evidence/<model>_fw<fw>.hand.json), which the writer reads for that camera alone: every table in the ILCE-1M2's own pass, and in any other camera's plain pass the tables docs/DATA_CONTRACTS.md lists ("The hand tables file"), the rest refused there in plain words the camera's definition, editor/definitions/<model>_fw<fw>.json (with schema_update.py --write); the Status and Memory map pages; the record names (docs/formats/sony_camset_ids_<model>_fw<fw>.ksy, one per definition); the proof viewer
The camera's own facts (the file's container, tabs, colours, memories, families, the records that hold an owner's own data, wording) data/<model>_fw<fw>/camera_<model>_fw<fw>.json its definition's camera section; the kit's reader and identify.py read the container block from it; kit/tools/make_sample.py and kit/tools/check_public.py read personal_records from it
The camera's menus pass 1's runs (the page scan and the crawls), from which kit/tools/menu_tree.py writes the mapper's own private/evidence/<model>_fw<fw>/menu_tree_<model>_fw<fw>.json the definition's places (row, row_at); the proof viewer's rows
Each setting's help data/<model>_fw<fw>/help_<model>_fw<fw>.json (our own words); the camera's own text in your private/help/ (decision 18) the definition's help fields; the editor and the proof viewer show the private text when it is there
The file format the camera file's container block (file, decision 20); for people and Kaitai's tools, docs/formats/sony_camset.ksy (by hand, the ILCE-1M2's, tied to its block by a test) the editor's, the kit's and the proof viewer's readers, which read every file through its block; the Memory map's header; the Python reader a test generates from the .ksy (kit/camkit/formats/)
What the definition viewer shows (each camera's settings by name, its menu, the sample until a file is opened) each camera's definition in editor/definitions/, and the sample beside it that the definition's camera section names (<model>_fw<fw>.DAT, kit/tools/make_sample.py); the page itself, kit/tools/proof_viewer.html the definition viewer, built by kit/tools/proof_viewer.py --public from those files alone: the docs site's viewer/ (.github/workflows/docs.yml) and each release's one-file camset-viewer.html (--single); never committed
The data files' shape schemas/*.schema.json (JSON Schema) the Data files page; checked by check-jsonschema
How a camera behaves, and what was measured on it its page, docs/models/<model>_fw<fw>.md (named by its definition's layouts[].doc) the page's measured block is rendered from its definition; its entry in the site's nav (mkdocs.yml) is written by kit/tools/build_docs.py
Why things are done as they are each record in docs/decisions/ (its title, rule, date and status too) the table in docs/decisions/index.md, written by kit/tools/build_docs.py
What the kit never sends to a camera (buttons, properties) kit/camkit/safety.py kit/common/never_touch.h, which camlink and the camera helper compile in, written by kit/tools/build_docs.py
How the kit works, and why docs/KIT_PLAN.md (nothing: link to it)
The rules for mapping someone else's camera the playbook, section 1 (docs/REMAPPING_PLAYBOOK.md) (nothing: link to it)
How long things take the playbook, section 11 (nothing: link to it)
Which data files a mapping delivers, and how each is made docs/DATA_CONTRACTS.md, "What a mapping delivers" (nothing: link to it)
Which login a camera gets kit/common/camera_net.h; in words, docs/EDITOR.md, "The camera link" (nothing: link to it)
What a body's SDK support allows, and how to check it docs/CAMERA_SUPPORT.md; the table itself from one's own SDK (kit/tools/sdk_support.py --json, into private/data/) kit/tools/body_check.py reads the table
The SDK's terms, what is fine to publish, and how a release is made docs/RELEASING.md (nothing: link to it)
The commands to install and run the kit kit/setup.py (the install, one command); docs/QUICKSTART.md (the steps and the command cheat sheet); docs/PORTING.md, "Setup per OS" (the install by hand); each prover's options in the playbook, section 7 (nothing: link to it)
What a session did one's own notes, in one's own private/ (never published) (nothing)
Where the work stands (nothing: rendered) the Status page, a model page's measured block