Decisions¶
Each page records one decision about canVODpy that is hard to reverse, would surprise a reader of the code, and was a real choice between alternatives: what was decided and why. Read the ones about your change before you start; if your change contradicts one, say so in the issue or pull request rather than working around it.
New decisions are added while a change is designed
(/mattpocock-skills:grill-with-docs, see
Developing with coding agents), numbered in
order. A decision that is reversed is not deleted: it gets a status
that names the decision replacing it.
| Decision | |
|---|---|
| 0001 | Data live in versioned Icechunk stores: one GNSS store and one VOD store per site |
| 0002 | All stored epochs are GPS time |
| 0003 | The canopy and the reference receiver record the same file format |
| 0004 | Explicit over implicit: fail loudly, no hidden defaults |
| 0005 | Superseded public code is deprecated, and removed only with the next major version |
| 0006 | Preprocessing runs only when the settings ask for it |
| 0007 | What was done to stored data is recorded in the stores' log books |
| 0008 | Runs find files by their names, in any folder layout |
| 0009 | Readers and VOD calculators from other packages are plugins |
| 0010 | Each package has its own version; canvodpy pins the exact mix |
| 0011 | Only free tools |
| 0012 | Contributors develop with agents through one shared workflow |
| 0013 | Agents open pull requests; people merge |
| 0014 | A store's description lives in its repository metadata; each snapshot carries a checked copy |
| 0015 | The STAC catalog sits beside the stores; a release is a tag in each store plus a pinned catalog |
| 0016 | Each receiver-day is a day block at its own cadence; workers write forks, one commit per day |
| 0017 | The demo notebooks use only the public interface and fetch demo data by file type from Hugging Face |
| 0018 | Every run records itself in a run history, one SQLite file per machine |
| 0019 | One set of content settings per store, set by its creator; several runs may write one store |
| 0020 | A run lists the folders of the days it processes |
| 0021 | A run works in units of days, keeps its stores' state in memory, and computes VOD in a phase of its own (proposed) |
| 0022 | canvodpy stores no secrets; credentials come from the environment (proposed) |