Record the release checklist and the later data de-duplication #9
+1
-2
@@ -1,4 +1,3 @@
|
||||
.claude
|
||||
*.out
|
||||
__pycache__/
|
||||
todo.md
|
||||
__pycache__/
|
||||
@@ -0,0 +1,28 @@
|
||||
# Release checklist
|
||||
|
||||
What to settle before the first tag, then the work that follows in a later,
|
||||
data-heavy release.
|
||||
|
||||
## Before the first release — settle the record flag and API contract
|
||||
|
||||
- `--format` vocabulary — confirm `text`, `json`, `ndjson`, `csv`, `sql`; the
|
||||
`json`-as-array vs `ndjson`-as-lines split; `--table` (the SQL INSERT target);
|
||||
the `--separator` rejection on record formats; and the exit codes (misuse 2,
|
||||
runtime 1).
|
||||
- Library surface — confirm `Record`, `FakeRecord`, `NewRecordTemplate`,
|
||||
`RecordTemplate`, `Column`/`Columns()`, and the `JSON()`, `CSVHeader()`,
|
||||
`CSVLine()`, `SQLInsert()` serializers.
|
||||
- Typed scalars — columns are strings today (`"42"`, quoted SQL). Confirm that
|
||||
stays out of scope, or add a per-column `kind` before the tag.
|
||||
- Struct-filling — `fake:"..."` tags (reflection over an arbitrary struct) stay
|
||||
out of scope; `Columns()` hands the caller the values to map themselves.
|
||||
Confirm.
|
||||
- Independent reference draw — within one record every tailed reference to a
|
||||
category is one draw, with no spelling for "these columns should disagree".
|
||||
Confirm the per-record contract, or add the spelling.
|
||||
|
||||
## Later, in a data-heavy release
|
||||
|
||||
- Shipped-data de-duplication — `email.json`'s `local` is a drifted copy of
|
||||
`username.json`; fold it in when the shipped set grows and we add lots more
|
||||
data.
|
||||
Reference in New Issue
Block a user