1.3 KiB
1.3 KiB
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
--formatvocabulary — confirmtext,json,ndjson,csv,sql; thejson-as-array vsndjson-as-lines split;--table(the SQL INSERT target); the--separatorrejection on record formats; and the exit codes (misuse 2, runtime 1).- Library surface — confirm
Record,FakeRecord,NewRecordTemplate,RecordTemplate,Column/Columns(), and theJSON(),CSVHeader(),CSVLine(),SQLInsert()serializers. - Typed scalars — columns are strings today (
"42", quoted SQL). Confirm that stays out of scope, or add a per-columnkindbefore 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'slocalis a drifted copy ofusername.json; fold it in when the shipped set grows and we add lots more data.