- Tests first, in their own commit; the implementation follows in the next. A re-pin of seeded output or of `testdata/shipped_shape.txt` is its own commit.
- Tests first, in their own commit; the implementation follows in the next. A re-pin of seeded output or of `testdata/shipped_shape.txt` is its own commit.
- A change under `data/` or to the shape pin adds its `CHANGELOG.md` entry under `Unreleased` in the same PR, and so does a change to a flag, an exit code, an exported name, a fence, a builtin or the lowest Go; what is major is the README's Versioning table.
- A change under `data/` or to the shape pin adds its `CHANGELOG.md` entry under `Unreleased` in the same PR, and so does a change to a flag, an exit code, an exported name, a fence, a builtin or the lowest Go; what is major is the README's Versioning table.
- One-line commit messages: no ticket prefix, no repo name, no authorship trailers.
- One-line commit messages: no ticket prefix, no repo name, no authorship trailers.
- Merges are fast-forward only, which `tea pr merge` cannot spell — every style it
offers fails with "is it still open?", as does a merge whose required checks are
still pending, so read the checks before believing the style is the problem. Use
`tea api /repos/{owner}/{repo}/pulls/<n>/merge -f Do=fast-forward-only`.
- Hard tabs. No comment by default; delete a restatement, a rationale, history, or a file preamble.
- Hard tabs. No comment by default; delete a restatement, a rationale, history, or a file preamble.
- One spelling per result: reject the other at `New`, and let the error name the spelling to use.
- One spelling per result: reject the other at `New`, and let the error name the spelling to use.
- A standing choice a reader would relitigate goes under Decisions in the README, not in a comment.
- A standing choice a reader would relitigate goes under Decisions in the README, not in a comment.
- Decide whether `misc.timezone` keeps every zone tzdb names: one added recently,
2.`geo/SE` and `geo/US`, and `address` in both locales on top of them — done.
`Europe/Kyiv` among them, is rejected by a consumer resolving it against older
3. Weighted person names and valid ids in both locales; `date()` — done. Left for
tzdata, and the population weight makes that zone likelier, not rarer. Today the
later: middle names, and drawing a shipped `personnummer` inside a *selected*
README names the action a reader takes instead; narrowing what ships is the
sex, both of which want a draw group that shares its family's pins; stop the
alternative.
conflict error naming a rewrite that returns a different value where the read it
- Decide whether `misc.territory.country` is renamed `sovereign`: it holds a code, and
conflicts with sits inside another category. Give the national ids one
`country` collides with the `misc.country` path it replaced. A rename after v0.1.0
record shape in step 6, and report a struct column's draw conflict with the path
breaks a consumer, so it rides a 0.(x+1).0.
spelling a tag takes rather than the reference spelling.
- Decide whether `parent: territory` stays, given a `--data-path` override of
4.`misc` conversions and the new `misc` tables. Convert `timezone`, `car` and
`misc.territory` now fails `New` unless `misc.timezone` is overridden with it.
`useragent`, and add the new `misc` tables.
- Decide whether the shipped `url` and `email` domains are restricted to RFC 2606's
5. Give the hand-written sets a source, as goal 10 asks: read `misc.emoji` from
reserved names: 17 of the 40 distinct ones are not, sitting on `.se`, `.nu`, `.io`
the Unicode emoji-test.txt register, and `misc.car` from an international make
and `.co`, which are live ccTLDs anyone can register. Restricting them costs the
and model source, vPIC and Mobility Sweden being national and so `en_US.car`'s
locale flavour `example.se` and `.nu` were chosen for.
and `sv_SE.car`'s.
- Record why fejkdata ships no pop-culture catalogue. README Decisions states the
6. The remaining locale categories: company, phone, finance, vehicle, words.
choice with no reason, because goal 10 does not supply one: it admits a hand-written
7. Records with building-block columns across the shipped set; shape re-pin.
set where no register exists, and Wikidata, MusicBrainz and the Gutenberg catalog are
registers this plan already reads for `book`, `instrument` and `animal`.
### Release
### Release
-Rewrite `[Unreleased]` as what v0.1.0 holds, not as a diff against `main`: nothing
-Move the README's Decisions section to `docs/decisions.md`, leaving a one-line index
has shipped, so "no longer paths", "where it used to fail" and "where it used to be
of the titles in `AGENTS.md`, and drop the `AGENTS.md` line pointing decisions at the
an empty string" describe versions no reader can have installed.
README.
- Rewrite `CHANGELOG.md`'s `[Unreleased]` as what v0.1.0 holds: nothing has shipped, so
"no longer paths", "where it used to fail" and "where it used to be an empty string"
describe versions no reader can have installed.
- Ship prebuilt binaries so the CLI needs no Go: GoReleaser attaching them to the Gitea
release the tag workflow publishes, a container image, Homebrew and Scoop. A checkout
build prints `devel` for `--version`; the binaries carry the stamped tag.
- CLI without Go — investigate prebuilt binaries: GoReleaser attaching them to
## v0.2.0
the Gitea release the tag workflow publishes, a container image, Homebrew and
Scoop. A checkout build prints `devel` for `--version`; the binaries carry the stamped tag.
- Ship the full registers as packs, each a Go module with its own `embed.FS` and a zip
- Homepage — a simple page for fejkdata with an in-browser generator: the library
for `--data-path`: every US place of 10,000 and more streets per locality, built by
compiled to WebAssembly, so visitors generate as much data as they like in their
`--min-population` and `--streets-per-locality`. The default embed stays under ~1 MB
own browser.
per country and `New` under ~50 ms.
- Add the locales nb_NO, da_DK, fi_FI, de_DE, en_GB, nl_NL, fr_FR and es_ES, with
person, address, phone, national id, company and date names each, and the `geo/`
trees NO, DK, FI, NL, FR, AU, CA, ES, GB and DE their `address` reads by reference;
AU and CA get a tree with no locale of their own.
- Add `{btc()}` and `{eth()}`, which need sha256 and keccak for Base58Check and EIP-55.
- Pair a street with its exact postnummer, which needs an application to Lantmäteriet;
today a street goes to the nearest postal code centroid. It rewrites shipped rows, so
it is a major once 1.0 is cut and a minor before that.
## v0.3.0
Names no items yet, so planning it is a chunk of its own: it takes the additive work
that lands after v0.2.0, and it has to add something, since a minor only adds. Its job
is to be the release with no breaking change that v1.0.0 waits on — v0.2.0 cannot be,
because pairing a street with its exact postnummer rewrites shipped rows.
## v1.0.0
- Cut it once the shipped data is in its record shape and one full minor has shipped
with no breaking change, per the README's Versioning table. It plans no work of its
own: v0.1.0 settles the record shape and v0.3.0 is the quiet minor.
## Not release-bound
- Stop `/cache` collecting root-owned files, which today every command documented
without `--user` leaves for the next `--user` one to trip over, and which the README
answers with a chown a reader has to repeat. Put `--user` on all of them, or give the
`x-go` anchor a `user:` — that one needs a mechanism, since Compose interpolates from
the process environment and neither `UID` nor `GID` is exported there, so
`user: "${UID}:${GID}"` resolves to `":"`.
- Publish a homepage with an in-browser generator: the library compiled to WebAssembly,
so visitors generate as much data as they like in their own browser.
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.