Files
fejkdata/CHANGELOG.md
T
lilleman 85d4760cde
Tests / vet + fmt + tests (pull_request) Successful in 1m24s
Tests / Gitea release from CHANGELOG.md (pull_request) Has been skipped
Hedge the zone counts out of going stale, and name a tarball member that is no file
2026-09-18 23:26:32 +02:00

5.4 KiB

Changelog

Format: Keep a Changelog. A release's Breaking section comes first and names each rejected spelling with its replacement, and each removed path, column or flag.

[Unreleased]

Added

  • First release: the CLI, the library and the shipped data set.
  • Table categories: a category JSON naming a rows TSV beside it, with the options key, name, weight and parent; a path selects a row by key or name, misc.territory[SE], and descends to a linked table by name; linked tables draw consistently within one render and draw group. rows is an option, so no template may carry a field of that name. A name without a key resolves inside the table's parent. Refused at New: a name without a key or a parent, a name repeating inside one parent row, a name spelling another row's key, a table named like a column of any table above it, a table whose format or cell references its own family, and, within one render and draw group, a path drawing a table another path selects a row of, or two paths pinning different rows of one table.
  • New refuses a root choice of templates sharing one format and one set of string fields, naming the rows TSV to write instead.
  • misc.territory, misc.currency, misc.language, misc.httpstatus and misc.mimetype are tables. misc.territory is every ISO 3166-1 territory that has a capital, a currency and a TLD, with the columns calling-code, capital, country, currency, flag, languages, numeric and tld added, country naming the sovereign state it belongs to and itself where it is one; misc.currency the current ISO 4217 currencies with a minor unit, with decimals and numeric added, and its symbols from CLDR; misc.language every ISO 639-2 entry carrying a 639-1 code, with a code3 column holding its 639-2/T code; misc.httpstatus each code the IANA registry lists with a plain reason phrase; and misc.mimetype each type mime-db records as IANA-registered and gives a filename extension. DATA-LICENSES.md lists each source.
  • misc.timezone, misc.car and misc.useragent are tables too. misc.timezone is every zone tzdb zone.tab gives a shipped territory, with offset holding the zone's standard UTC offset and territory linking to misc.territory, so misc.territory[SE].timezone draws Europe/Stockholm; zones of a territory misc.territory does not ship, Antarctica's among them, and the constant UTC are gone. It draws from 401 zones where it drew from 27 common ones, and evenly, so a bare misc.timezone now renders a sub-zone such as America/Indiana/Knox far more often than a capital's: select inside a territory, or pin the zone. misc.useragent is the top-user-agents desktop and mobile lists with browser, device and os columns. misc.car keeps its makes and models, with misc.car.maker renamed misc.car.make.
  • geo.SE and geo.US: five linked tables per country, region, municipality, locality, postal-code and street, weighted by population and address counts and built from SCB, GeoNames, Trafikverket NVDB and the US Census Bureau, and an address record over one consistent draw of them. sv_SE.address and en_US.address read those records, so en_US.address.street no longer carries name and suffix, and a locale folder loads only beside geo.
  • {date(from,to,'layout')} and {time('layout')}: a second between two days, or within one, in a single-quoted Go layout, drawn in UTC; from may equal to. sv_SE.date, en_US.date, sv_SE.time and en_US.time render through them, so date.year, date.month, date.day, time.hour, time.minute, time.minute.t, time.sec and time.ampm are no longer paths — a part of a date is now its own {date(…,'2006')}. misc.datetime is an RFC 3339 instant.
  • sex, first-name and last-name tables in sv_SE and en_US, weighted by bearers from SCB, the SSA and the Census Bureau; first-name links to sex, and a name both sexes carry is a row under each. person reads them, so its columns are first, last, prefix and sex; person.femalefirst and person.malefirst are no longer paths — draw sex[f].first-name and sex[m].first-name instead. en_US.title links to sex as well, so en_US.person.prefix draws Mr or Ms without contradicting the record's sex; sv_SE.title is an unsexed table of the same shape.
  • sv_SE.personnummer and sv_SE.samordningsnummer, Skatteverket's test series from a sv_SE.birth-number table under sex, in place of sv_SE.ssn, whose ssn.mmdd, ssn.mmdd.m and ssn.mmdd.d go with it. en_US.ssn now draws the ranges the SSA assigns and carries the columns area, group and serial, so --format csv en_US.ssn writes a header where it used to fail; en_US.itin is new and carries the same three. person.prefix is null where a person has no title, where it used to be an empty string, so --format sql writes NULL and a string struct field reading it becomes *string.
  • ErrNoColumns is exported, so a caller can tell the one record fence a path can answer from the rest.
  • An error names a spelling that runs: a layout is named single-quoted and free of its own quotes, a row of a table with no key is named as the path that selects it, sv_SE.sex[f].first-name[Kim], and a category with no columns names the record that gives it one.