5.4 KiB
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
rowsTSV beside it, with the optionskey,name,weightandparent; 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.rowsis an option, so no template may carry a field of that name. Anamewithout akeyresolves inside the table'sparent. Refused atNew: anamewithout akeyor aparent, 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. Newrefuses 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.httpstatusandmisc.mimetypeare tables.misc.territoryis every ISO 3166-1 territory that has a capital, a currency and a TLD, with the columnscalling-code,capital,country,currency,flag,languages,numericandtldadded,countrynaming the sovereign state it belongs to and itself where it is one;misc.currencythe current ISO 4217 currencies with a minor unit, withdecimalsandnumericadded, and its symbols from CLDR;misc.languageevery ISO 639-2 entry carrying a 639-1 code, with acode3column holding its 639-2/T code;misc.httpstatuseach code the IANA registry lists with a plain reason phrase; andmisc.mimetypeeach type mime-db records as IANA-registered and gives a filename extension.DATA-LICENSES.mdlists each source.misc.timezone,misc.carandmisc.useragentare tables too.misc.timezoneis every zone tzdbzone.tabgives a shipped territory, withoffsetholding the zone's standard UTC offset andterritorylinking tomisc.territory, somisc.territory[SE].timezonedrawsEurope/Stockholm; zones of a territorymisc.territorydoes not ship, Antarctica's among them, and the constantUTCare gone. It draws from 401 zones where it drew from 27 common ones, and evenly, so a baremisc.timezonenow renders a sub-zone such asAmerica/Indiana/Knoxfar more often than a capital's: select inside a territory, or pin the zone.misc.useragentis the top-user-agents desktop and mobile lists withbrowser,deviceandoscolumns.misc.carkeeps its makes and models, withmisc.car.makerrenamedmisc.car.make.geo.SEandgeo.US: five linked tables per country,region,municipality,locality,postal-codeandstreet, weighted by population and address counts and built from SCB, GeoNames, Trafikverket NVDB and the US Census Bureau, and anaddressrecord over one consistent draw of them.sv_SE.addressanden_US.addressread those records, soen_US.address.streetno longer carriesnameandsuffix, and a locale folder loads only besidegeo.{date(from,to,'layout')}and{time('layout')}: a second between two days, or within one, in a single-quoted Go layout, drawn in UTC;frommay equalto.sv_SE.date,en_US.date,sv_SE.timeanden_US.timerender through them, sodate.year,date.month,date.day,time.hour,time.minute,time.minute.t,time.secandtime.ampmare no longer paths — a part of a date is now its own{date(…,'2006')}.misc.datetimeis an RFC 3339 instant.sex,first-nameandlast-nametables insv_SEanden_US, weighted by bearers from SCB, the SSA and the Census Bureau;first-namelinks tosex, and a name both sexes carry is a row under each.personreads them, so its columns arefirst,last,prefixandsex;person.femalefirstandperson.malefirstare no longer paths — drawsex[f].first-nameandsex[m].first-nameinstead.en_US.titlelinks tosexas well, soen_US.person.prefixdrawsMrorMswithout contradicting the record'ssex;sv_SE.titleis an unsexed table of the same shape.sv_SE.personnummerandsv_SE.samordningsnummer, Skatteverket's test series from asv_SE.birth-numbertable undersex, in place ofsv_SE.ssn, whosessn.mmdd,ssn.mmdd.mandssn.mmdd.dgo with it.en_US.ssnnow draws the ranges the SSA assigns and carries the columnsarea,groupandserial, so--format csv en_US.ssnwrites a header where it used to fail;en_US.itinis new and carries the same three.person.prefixis null where a person has no title, where it used to be an empty string, so--format sqlwritesNULLand astringstruct field reading it becomes*string.ErrNoColumnsis 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.