Files
lilleman b17106afab
Tests / vet + fmt + tests (pull_request) Successful in 4s
Tests / vet + fmt + tests (push) Successful in 4s
Record the release checklist and the later data de-duplication
2026-09-05 12:12:58 +02:00

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

  • --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.